Commit Graph

160 Commits

Author SHA1 Message Date
Francisco Gindre d75d5cb3ee [WIP] shield funds PoC 2021-03-03 18:19:04 -03:00
Francisco Gindre 90cd2d0ff8 Create derive secret key for t funds 2021-03-03 18:13:09 -03:00
Francisco Gindre 4abf914f9f Issue #166 Download UTXO set 2021-03-03 18:09:13 -03:00
Francisco Gindre 6b48695744 [WIP]Get UTXOs 2021-03-03 18:09:13 -03:00
Francisco Gindre 499da66900 update proto files and compiled files 2021-03-03 18:09:13 -03:00
Francisco Gindre 78894821cf Add fee for height helper for UI purposes 2021-03-03 18:09:13 -03:00
Francisco Gindre b30e35b4a5 Fix: demo app fails to initialize 2021-03-03 18:09:13 -03:00
Francisco Gindre 204b1866b1 Fix: send fails with missing params. cargo update 2021-03-03 18:09:13 -03:00
Francisco Gindre 53a54da585 lib.rs compiles 2021-03-03 18:09:13 -03:00
Francisco Gindre 01a55a5e1e Issue #252 - blockheight progress is latest height instead of upperbound of last scanned range 2021-02-25 00:47:08 -03:00
Francisco Gindre 72c682d8a5 Key Validation protocol for DerivationTool 2021-02-24 23:59:59 -03:00
Francisco Gindre ebe45fd1c8 Add checkpoints for mainnet 2021-02-19 13:54:04 -03:00
Francisco Gindre 9a8d4c23b5 Code Cleanup, test enhancements, linting changes 2021-02-15 21:56:23 -03:00
Francisco Gindre c7efb8e80d Fix: issue #240 reorg not catched because of ARC dealloc 2021-01-05 14:50:53 -03:00
Francisco Gindre f8b406e808 adjust Mainnet default fee estimated height 2020-12-15 14:41:14 -03:00
Francisco Gindre 9f0ba6ec8f add default fee for height 2020-12-14 18:57:34 -03:00
Francisco Gindre aad4710608 fix tests 2020-12-14 18:55:51 -03:00
anton 24f6a1e489 Forcibly change the state to stopped when the handle cancels any task in OperationQueue 2020-12-07 12:37:02 +06:00
Francisco Gindre 68027af3f0 closes Issue #237 Untie SDKSynchronizer from UIApplication Events 2020-12-05 18:28:10 -03:00
Francisco Gindre d9931ff0ea Fix memory leaks on adapter operations 2020-12-05 18:26:18 -03:00
Francisco Gindre 4568b5ba05 Improve operation dependencies 2020-12-05 15:11:29 -03:00
Francisco Gindre 145c70415f revert change in ZcashOperation 2020-12-04 19:55:55 -03:00
Francisco Gindre 645ffa6734 FIX: download operation gets cancelled when apps are backgrounded 2020-12-04 11:28:14 -03:00
Francisco Gindre c17132f694 Add early cancellation to ZcashOperation 2020-12-04 11:28:14 -03:00
Francisco Gindre 126ee6f742 Name the operation queue for easier debugging 2020-12-04 11:28:14 -03:00
Francisco Gindre 697724cb49 remove isFirstAppLaunch flag 2020-12-04 11:28:14 -03:00
Francisco Gindre 879edb6236 Add ability to modify call timeout on LightWalletEndpoint 2020-11-18 16:12:15 -03:00
Francisco Gindre 737c80b87a Add checkpoints 2020-11-16 14:33:54 -03:00
Francisco Gindre 1926ea6824 Canopy Tests Successfully pass 2020-11-05 19:02:01 -03:00
Francisco Gindre 924ff6b71d Add Range to the foundTransactions notification 2020-10-28 19:31:41 -03:00
Francisco Gindre c89626d9ea double check foundTransaction return values 2020-10-27 14:46:28 -03:00
Francisco Gindre fa76c722b2 FIX - UNIQUE constraint violation when an operation failed 2020-10-26 18:57:19 -03:00
Francisco Gindre 6a762205f6 Fix sqlite crate canopy issue. Add a new checkpoint to aid testing 2020-10-24 18:25:28 -03:00
Francisco Gindre 840c76142a WIP - Expose foundTransactions notification to SDKSynchronizer# 2020-10-20 11:06:31 -03:00
Francisco Gindre 972fb08926 Issue 208 - Improve API method to request transaction history 2020-10-19 21:01:46 -03:00
Francisco Gindre e644dd7d04 add blockTimeInMilliseconds 2020-10-14 20:36:14 -03:00
Francisco Gindre b8d83adb92 remove computed property from protocol 2020-10-14 20:30:22 -03:00
Francisco Gindre 229ae3192a Issue 206 add extension function to identify inbound v. outbound txs on a client side 2020-10-14 20:23:36 -03:00
Francisco Gindre 18b8d622c2 remove SeedProvider protoco 2020-10-14 20:18:10 -03:00
Francisco Gindre 4a01865a7d Add IVK capabilities to Initializer 2020-10-14 19:50:26 -03:00
Francisco Gindre 691c129dc6 add support to viewing key initialization 2020-10-13 13:15:50 -03:00
Francisco Gindre 328a18d898 DerivationTool + tests
Fixes #204
2020-10-09 17:58:36 -03:00
Francisco Gindre f0ed01bb92 swiftlint fixes 2020-10-08 17:51:12 -03:00
Francisco Gindre 37a15bb93f add DownloadIFNeeded 2020-10-08 17:29:38 -03:00
Francisco Gindre af8ee1ef12 Add SaplingParameterDownloader 2020-10-08 17:29:38 -03:00
Francisco Gindre a2dcee2340 expose latest height on synchronizer 2020-10-08 17:29:38 -03:00
Francisco Gindre d4dfb23657 fix issue 201 Throw exception when seed can't be provided 2020-10-08 17:29:38 -03:00
Francisco Gindre b34fe121cd Fix compilation errors and update README 2020-10-08 15:38:54 -03:00
Jack Grigg 344699a6b2 rust: Handle passing Rust Vecs to Swift where len != capacity
Fixes zcash/ZcashLightClientKit#177.
2020-10-08 15:38:54 -03:00
Jack Grigg 48a601600b cbindgen 0.14 2020-10-08 15:38:54 -03:00
Francisco Gindre 9de3df84a5 add checkpoints 2020-09-24 19:06:35 -03:00
Francisco Gindre 49e3300692 Removed some warnings, added xconfig to fix pod lint issues, updated protobufs 2020-09-23 15:39:00 -03:00
Francisco Gindre 4a35ecbd68 Fix findAll transactions query 2020-09-22 19:17:31 -03:00
Francisco Gindre 8aa627ae77 new checkpoints for mainnet 2020-09-10 20:27:17 -03:00
Francisco Gindre deed240a6a
update version and checkpoints (#174) 2020-08-13 14:33:28 -03:00
Francisco Gindre 251b4c7aa3
Error handling refactor (#170)
* Improve error handling on processor and service

* Error Refactoring

* fix XCode12 issue

* Fix Compilation errors and test

* bump MIDDLE version
2020-08-10 19:19:59 -03:00
Francisco Gindre 647072ce26
Pending tx wont clear (#168)
* Created test to reproduce issue

* fix test

* Add Fixme message

* Fix reorg Tests
2020-07-22 16:32:07 -03:00
Francisco Gindre 74dfc38ace
enhance pending transaction handling (#160) 2020-07-20 14:38:26 -03:00
Kevin Gorham a45f056242
Enable heartwood. (#138)
* Enable heartwood.

We might want to make further adjustments to conditionally enable this only on testnet.

* add consensus branch Id code

* better address validation

Co-authored-by: Francisco Gindre <francisco.gindre@gmail.com>
2020-06-09 21:23:46 -03:00
Francisco Gindre cc77d9705e
Issue 136 Null bytes in strings effectively truncate the string from … (#140)
* Issue 136 Null bytes in strings effectively truncate the string from librustzcash's point of view

* Code clean up

* Fix from PR review
2020-06-08 17:07:48 -03:00
Francisco Gindre 3f130ebebf
Fixes issue 136 - expiry height -1 on pending transactions (#139) 2020-06-04 18:36:25 -03:00
Francisco Gindre f8f8be30a4
Advanced Re Org tests + Balance tests (#137)
* Stub methods and internal initializers

* [WIP] Balance tests

* testVerifyBalanceAfterExpiredTransaction and testVerifyChangeTransaction

* adopt new version of darkside lightwalletd

* Balance tests with new darkside wallet proto files

* podspec and podfile

* Advanced reorg testsw

* Issue 117 - Reorg Test Case: Index of incoming tx changes

* Hooking to Darksidewalletd

* update proto files to latest

* sanity tests

* FakeChainBuilder + advanced tests

* Use new datasets

* test: outbound tx index change on reorg

* testReOrgChangesInboundTxMinedHeight test + other improvements

* testReOrgChangesInboundMinedHeight

* testReOrgRemovesIncomingTxForever

* testReOrgRemovesOutboundTxAndIsNeverMined

* testReOrgRemovesOutboundTxAndIsNeverMined

* Fixes to balance tests
2020-06-03 20:18:57 -03:00
Francisco Gindre 36f2d0730a
Memo tests (#111)
* test scaffold

* Memo Tests

* emoji memo test
2020-04-24 16:50:23 -03:00
Francisco Gindre 462ce0f5d7
Decrypt transactions. Full wallet restore (#110)
* Add enhancement [WIP]

* Added enhance and decrypt transaction step

* modify logging

* Enhancement tests scaffolding
2020-04-23 14:11:03 -03:00
Francisco Gindre 174ceb1d8e
Swift grpc to NIO (#109)
* update protofiles

* update protobuf

* swift lint

* update GRPC service to NIO

* initial update [wip]

* Upgrade to SwiftGRPC NIO and Tests
2020-04-09 19:25:43 -03:00
Francisco Gindre 312a169911
Feature/reorg testing (#104)
* Add DarksideWalletD class

* darkside walletd reorg tests

* Removed hardcoded stuff from tests

* add parameters to support other kinds of reorgs

* Basic reorg test in place

* Integration to DarksideWalletD and tests

* tests improvements

* Implement reorg testing. fix error throwing
2020-04-06 12:54:31 -03:00
Dimitris Apostolou 51419010ea
Fix typos and cleanup (#103) 2020-03-26 11:27:55 -03:00
str4d 65f9d78c54
ZcashRustBackend.decryptAndStoreTransaction() (#102)
* cargo fmt

* Migrate to latest note-spending-v7

* ZcashRustBackend.decryptAndStoreTransaction()

* cargo update
2020-03-26 11:24:47 -03:00
Francisco Gindre bca093ca42 Enhance logging on compact block processor 2020-03-19 12:59:45 -03:00
Francisco Gindre 18eea3261c parameterize helper method with constant 2020-03-19 12:59:19 -03:00
Francisco Gindre d4d3f0e5cf FIX: race condition on reorgs 2020-03-16 18:23:39 -03:00
Francisco Gindre 60510edd63 ENHANCEMENT: Retry support + error management 2020-03-13 21:00:01 -03:00
Francisco Gindre 8f415d71ce FIX: processor crashes when lightwalletd has not caught up with latest height 2020-03-12 18:58:23 -03:00
Francisco Gindre 2d34615c6d Better error handing when scanning fails 2020-03-11 23:17:32 -03:00
Francisco Gindre 72c3cb59ef
Integrate logging capabilities (#93)
* Integrate logging capabilities

* Relocate file
2020-03-09 17:25:27 -03:00
Francisco Gindre 2f541d1459
Mainnet checkpoints (#88)
* Added checkpoints

* add more checkpoints
2020-03-02 14:55:20 -03:00
Francisco Gindre b867649443
Support Note Spending v7
* upgraded to note-spending-v7

* use "zip32 compliant" seed on demo app

* Fixes to initializer, added v7 methods, documented API. Fixed compact block processor not initializing correctly upon new wallets.

* documentation

* Change u8 return value to bool + tests

* add address validation functionality to Initializer

* renamed functions to a C style. Exposed deriving functions in rust backend. Added more tests

* fixed bug where compact block processor wouldn't reschedule

* Fixed capture blocks retaining references

* fixed memory cycles and leaks

* fixed memory leak and blockrange error

* fixed error on confirmed transactions and added blockheight to progress notifications
2020-02-26 13:54:48 -03:00
Francisco Gindre 09496c234d FIX: parameters path with spaces wouldn't be found 2020-02-11 21:12:36 -03:00
Francisco Gindre 1ffa64aa55 Merge branch 'master' into synchronizer-enhancements 2020-02-10 13:40:39 -03:00
Francisco Gindre 77cfb2c328 Enhancements from PR 2020-02-07 18:04:21 -03:00
Francisco Gindre 549aa25001 add functions that express the underlying errors and make variables a convenience extension 2020-01-30 02:34:03 -03:00
Francisco Gindre b3d42304a9 Fix - CompactBlock Processsor loops indefinitely on reorg 2020-01-30 00:11:40 -03:00
Francisco Gindre b33527416b Randomize POLL_INTERVAL 2020-01-17 15:39:11 -03:00
Francisco Gindre fbf45f5552 include header file to fix pod validation 2020-01-15 18:03:43 -03:00
Francisco Gindre 2f3b9e7b63
Prepare release (#65)
* lock dependency versions

* fixes to scripts

* Fix txId string extension
2020-01-15 00:33:45 -03:00
Francisco Gindre 750108252f
Feature/single pod mainnet (#60)
* Mainnet changes [WIP]

* Separate pods approach [WIP]

* Create a single podfile and scripts to build mainnet or testnet [WIP]

* Added test spec to pod with TESTNET Script [WIP]

* pod install + sample app testnet build worked

* add prefix to database names

* Fix constants in tests

* fix plist

* fix stencils

* Force environment variable

* Get config from environment variable

* Save project settings and create new DemoAppConfig settings

* Fix Template. change demoApp config port

* Add extra warning when building to see environment in logs

* New Readme! + enhanced messaging on build_librustzcash_xcode.sh

* Fix Stencil if statement

* add our domain names to the demo app endpoints

* clean up Podfile

* fix: mainnet not building properly

* improve cleanup

* fixed weird seed change

* remove duplicated file reference

* Improve error handling on LightWalletService

* Improve error handling on Latest block height. fix get address pasteboard gesture

* fix mainnet walletbirthday stencil

* fix: demo app not syncing on mainnet

* Verified Balances and Send Max Funds fixed

* Add paths to preserve when installing pod

* add Stencil to preserved paths

* Fix $ZCASH_SDK_GENERATED_SOURCES_FOLDER not writable error

* Fixes from PR Comments

* Fixed TransactionId string generation

* Fixed Test build scripts + PR comments

* fix indentation

* Changes to script_commons

* fixes per PR

* remove else from mismatch function

* Add comment to poorly named function
2020-01-14 19:25:14 -03:00
Francisco Gindre 81c4754ec0
post notification after DBs are rewound (#53) 2019-12-19 10:06:15 -03:00
Francisco Gindre 343507b565
Fix poll interval and cut it to half (#54) 2019-12-19 10:05:06 -03:00
Francisco Gindre 85ec6b1f95
propagate error (#55) 2019-12-19 10:04:50 -03:00
Francisco Gindre 5ad77abf46
Removed confirmed pending transactions (#52) 2019-12-17 18:16:26 -03:00
Francisco Gindre 97ab864cbe
Feature/notify mined tx (#51)
* add notification for mined transactions

* display a notification bubble when transaction is mined
2019-12-17 17:11:21 -03:00
Francisco Gindre 5930fbed6f
Outbound transaction reorg handling proposal (#48)
* Outbound transaction reorg handling proposal

* Add rewind distance

* include rewind on reorg notification, use it to refresh pending transactions
2019-12-17 14:12:07 -03:00
Francisco Gindre a139ffbdfe
Transaction Listing + send funds + synchronizer implementation (#47)
* Create UIKit subfolder

* add offset to transaction repository

* mock repository and tests [WIP]

* Paged transaction DAO

* Paged transaction repository by kind

* update protobuf files

* move SDKSynchronizer to UIKit folder

* created some health check test on transactions

* Build release version of librustzcash

* Add Send on main thread button for troubleshooting purposes

* fix submit method by using RawTransaction factory method

* fix transactions table mapping

* fix transactions table mapping

* fix get balance sample

* FIX: cosensus branch ID for Blossom

* SDKSynchronizer integration for Send Funds

* fix rawTransactionId mistaken by raw field

* fix testEncodeSpend

* Transaction submission failed tests

* unpaged transaction listings

* renamed method, fixed typo

* stupid xcode misplaced folders again

* add PaginatedTableView Dependency to Example and hook it up [WIP]

* fix  unit test target not being shared

* removed performance test

* fix get address, paged transactions nulled, added type of transaction

* added kind of transaction to transaction repo builder, fixed transaction builder

* Transaction Detail screen

* add transaction details to paginated transaction
2019-12-16 19:25:45 -03:00
Francisco Gindre 561ea7b620
Feature/sending ui (#39)
* [WIp} Send View Controller + Synchronizer methods to send and cancel tx +  builders

* Send Funds scaffold

* project changes

* initializer and synchronizer enhancements. removed dummy file

* fix bitcode issue, add Progress HUD

* Pending Transactions, send transactions

* create_to_address tests + sending UI
2019-12-06 09:38:47 -03:00
str4d cff6ec5505 Migrate to note-spending-v6 branch (#35)
* Migrate to note-spending-v6 branch

* Rename sendToAddress -> createToAddress

* cargo update

* Disable multicore proving temporarily

createToAddress breaks when called from a background thread if multicore
is enabled.

* Modify expectations. Single thread librustzcash needs more time
2019-12-03 14:11:23 -03:00
Francisco Gindre d8affaebd3
Transaction submission + tests (#34)
* transaction manager

* Transaction Manager Tests

* pending transactions DAO + Scaffold tests

* PendingTransactionsDao + tests

* Persistent Transaction Manager
2019-12-03 12:19:44 -03:00
Francisco Gindre c772934d3d
Transaction data access improvements + Create Spend + Get Balance Screen (#33)
* Transaction encoder implementation tests WIP

* Create Spend and Create Transaction + Test [WIP]

* New! Get Balance Screen

* Send to address
2019-11-26 19:32:20 -03:00
Francisco Gindre 908d8ac823
Received Notes and Sent Notes repository + tests (#31) 2019-11-18 17:54:23 -03:00
Francisco Gindre 2a80d705aa
Transaction Entity data access (#30)
* Account, Received & Received Notes, Transaction Protocols

* Transaction Entity fix

* TransactionRepository Implementation

* delete Carthage sample project

* (Pending|Sent|Received)Transaction Data Access

* Add findAll performance measure + test fix
2019-11-18 16:49:36 -03:00
Francisco Gindre 2c23875607
Synchronizer + Handle reorgs (#27)
* Compact Block Synchronizer first impl

* Synchronizer

* Basic Reorg logic. Moved tests to cocoapods

* Remote Carthage Support

* remove Carthage support from readme

* RustBackendMock

* RustBackend Stub for testing reorgs. Tests (fail). Download retry logic

* Simple reorgTest passed
2019-11-14 11:38:54 -03:00