- The wipe() is now resetting local in memory values of latestBlocksDataProvider. In some case this could cause a reset of CBP's state machine context sooner than it was supposed to, resulting in corrupted sync.
This removes the last direct access to the `utxos` table; all access
now goes through the Rust FFI.
`SDKSynchronizer.latestUTXOs` is removed without replacement. It was
introduced during the initial addition of shielding support, but:
- It is no longer used anywhere inside the SDK (when added, it was
used in a few other methods).
- It is not exposed in the `Synchronizer` protocol.
- It is AFAICT unused in Zashi iOS, Edge, and Unstoppable.
- It was functionally replaced by `refreshUTXOs`, which performs
best-effort UTXO updates instead of failing on any error. (It also
does not clear the `utxo`s table which makes it not equivalent.)
- plural of account balances refactor to singular
[#1369] SynchronizerState refactor
- transaprent balance removed from SynchronizerState
- all balances are now handled with AccountBalance
[#1369] SynchronizerState refactor and balances cleanup
- WalletBalance has been removed from the SDK, replaced with AccountBalance
- public APIs for individual balances (getTransparent, getShielded, getShieldedVerfied) have been removed from the SDK, replaced with getAccountBalance
- tests refactored
[#1369] SynchronizerState refactor and balances cleanup
- dark side tests refactored
[#1369] SynchronizerState refactor and balances cleanup (#1372)
- addressed comments
[#1369] SynchronizerState refactor
- ZcashError for spending key does not belong to the wallet
- new public API switchTo(endpoint:) implemented
[#1153] Allow runtime switch of lightwalletd servers
- API documented
- code cleaned up
[#1153] Allow runtime switch of lightwalletd servers
- mocks generated
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- sever validation added
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- enhanced validation of the server
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- new ZcashError.synchronizerServerSwitch that represents the state when the endpoint fails validation
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- ZcashError definition update
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- addressed comments
[#1153] Allow runtime switch of lightwalletd servers (#1373)
- changelog revert according to proposal
- new public API with returning AccountBalance
[#1363] Expose PoolBalance Zatoshi values
- accountBalances exposed into the SynchronizationState
[#1363] Expose PoolBalance Zatoshi values
- public vs. internal
[1363] Account balances in the SynchronizerState
- changelog update
- scanAction reports the initial after-scan value immediately instead of after X scans
- SynchronizerState has been refactored, we no longer call 2 rust methods to get shielded verified + total balances
- tests refactored to reflect this change
- mocks regenerated
- Sourcery version bumped
[#1363] Account balances in the SynchronizerState
- changelog typo fixed
[#1363] Account balances in the SynchronizerState
- internal vs. public
- changelog updated
- block stream errors are now handled as a special case of error, retry logic is triggered but at most 3-times in case of service being truly down
- the failure is not passed to the clients so ideally the false positive errors are reduced as well as the delay in the sync time
[#1351] Recover from block stream issues (#1352)
- typo fixed
- changelog update
- the sync time has been reduced by ~33%. The progress reporting frequency has been lowered down 5-times
- this is just first step and a quick improvement before we introduce advanced solution, covered in #1353
[#1346] Troubleshooting synchronization (#1354)
- typo fixed
- the logs are split so it's not a huge string
- the log method is async
- added a new log with balances
[#1336] Tweaks for sdk metrics
- wait a bit so the logs are sorted in time
[#1336] Tweaks for sdk metrics
- wait a bit so the logs are sorted in time
[#1336] Tweaks for sdk metrics
- wait a bit so the logs are sorted in time
[#1336] Tweaks for sdk metrics
- cleanup
[#1336] Tweaks for sdk metrics
- changelog update
[#1336] Tweaks for sdk metrics
- checkpoints updated
[#1336] Tweaks for sdk metrics
- changelog typos fixed
[#1336] Tweaks for sdk metrics
- mocks generated
- the logger has been extended to log the level as well
- there is only partial match of levels between SDK logger levels, OSLogEntryLogLevel and OSLogType so only debug, info, error are fully matched
- this is a base for the exporter on client's side
[#1325] Log metrics
- typos fixed
[#1325] Log metrics
- scan metric logs added
[#1325] Log metrics
- Scan & Enhance logs
[#1325] Log metrics
- checkpoints updated
- every CBP action is measured separately and collects the data, when the sync is done it dumps overview of the run to the logger
- next run clears out the previous data and starts to collect fresh reports for the run
[#1325] Log metrics (#1327)
- changelog update
[#1325] Log metrics (#1327)
- SDKMetrics updated to be mockable
- unit test updated
[#1325] Log metrics (#1327)
- performance tests cleaned out
[#1325] Log metrics (#1327)
- Network tests buildable again
- checkpoints updated
[#1310] Release 2-0-3
- FFI version bumped
- other dependencies bumped as well
[#1310] Release 2-0-3
- checkpoints mentioned in the changelog
- The enhance action is driven by lastEnhancedHeight value. The range is computed from it and every 1000 blocks are enhanced. The value hasn't been reseted with the new suggested ScanRanges so when some higher ranges were processed first, all lower heights were skipped
- fixed and covered with the unit test
[#1308] Enhancing seems to not process all ranges (#1309)
- changelog update
- the most simple fix for this issue is to set the number of attempts to the "infinity"
- smarter solution will require a better retry logic in general, covered in #1304
- Removed deprecated zip-313 fee of 1000 Zatoshi
- default is now 10k zatoshi, the minimum defined by zip-317
[#1294] Remove all uses of the incorrect 1000-ZAT fee
- changelog update
* Updates to `zcash-light-client-ffi 0.4.0-rc.1`
* Makes some cleanup updates to the CHANGELOG; a complete changelog will
be prepared for the 2.0.0 final release.
- concept of linear syncing fully removed from the SDK, it's fully replaced with Spend-before-Sync
- BlockDAO - table blocks is no longer used, removed from the SDK and all it's associated getLastBlocks/ScannedHeights as with it
- concept of pending transactions removed from the SDK
- unit tests refactored
- the computation of progress changed, the total range is computed, that way it works for any kind of sync algorithm
- the progress depends on finished scan action, whenever it processes some blocks, it's counted up
- the final progress is a ratio between these new values
Closes#1111
- `InternalSyncProgress` has now new disk storage implementation:
`InternalSyncProgressDiskStorage`.
- When then `UserDefaults` was used as disk storage there were no IO errors
to handle. But now the code in `InternalSyncProgressDiskStorage`
writes to files and reads from files. So there are errors to handle.
Because of this protocol `InternalSyncProgressStorage` changed a bit
and API of `InternalSyncProgress` changed a bit. Now all the functions
throws.
- It is possible to make progress storage IO errors silent but I think
that storing of the progress is very essential to the sync process. So
I think that when progress storage fails then the sync process should
fail.
- `Initializer` has new parameter `generalStorageURL`. It is directory
where `InternalSyncProgressDiskStorage` stores progress files. In
future this can be used for storing any data the SDK wants.
Changes the way unpadded bytes are turned into a UTF-8 Swift String
without using cString assuming APIs that would overflow memory and
add garbled trailing bytes.
Closes#1019
add changelog entry
Removes `PendingTransactionEntity` and all of its related components.
Pending items are still tracked and visualized by the existing APIs
but they are retrieved from the `TransactionRepository` instead by
returning `ZcashTransaction.Overview` instead.
`pendingDbURL` is removed from every place it was required. Its
deletion is responsibility of wallet developers.
`ClearedTransactions` are now just `transactions`.
`MigrationManager` is deleted. Now all migrations are in charge of
the rust welding layer.
`PendingTransactionDao.swift` is removed.
Implementation of `AccountEntity` called `Account` is now `DbAccount`
`ZcashTransaction.Overview` can be checked for "pending-ness" by calling
`.isPending(latestHeight:)` latest height must be provided so that minedHeight
can be compared with the lastest and the `defaultStaleTolerance` constant.
`TransactionRecipient` is now a public type.
protocol `PendingTransactionRepository` is removed.
`TransactionManagerError` and `PersistentTransactionManager` are deleted.
`OutboundTransactionManager` is deleted and replaced by `TransactionEncoder`
which now incorporates `submit(encoded:)` functionality
`WalletTransactionEncoder` now uses a `LightWalletService` to submit the
encoded transactions.
Add changelog changes
Delete references to PendingDb from tests and documentation.
Fixes some typos. Adds the ability to trace transaction repository
SQL queries from test
Fix rebase conflicts and generate code
[#837] Memo tests regarding transparent address
Closes#837
Add model for transaction output
Point to FFI branch
Fix issue where sync wouldn't resume after wipe. Becasue GRPC
channel would be closed
Fix Tests
Fix testPendingTransactionMinedHeightUpdated
Fix testLastStates
[#921] Fix broken SynchronizerDarksideTests
Add ZcashTransaction.Output API to Synchronizer
Changelog + comment fix
Add Assertions for transaction outputs and recipients
Point to FFI 0.3.1
Fix Demo App Compiler errors
Fix Demo App Compiler errors
fix cacheDb warnings
Fix Tests and compiler errors of rebase
build demo app
Remove `ZcashTransaction.Sent` and `.Received`. Add `.State` and tests
Fix SPM warning
PR Suggestions
Removes errors that are not used anymore
fix warnings
- `BlockDownloaderImpl` is changed. It now spawns detached Task to
download blocks. So blocks can be downloaded in parallel with scanning
process.
- `Synchronizer.stop()` is no longer async.
- Blocks cache cleaning is changed. It's not possible to drop the whole
cache now. There are some blocks pre-downloaded which weren't scanned
yet.