- As ensuring the check should be applied is not possible for a library that depends on clients build type and their different use cases
- Stripping tested manually with different client wallets, and it works as expected
* WIP: Provide the pool type when retrieving a memo.
* Gitignore new idea file
* Let TypesafeBackend work with typesafe class
* Query and use protocol for memo obtaining
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
* CompactBlockProcessor: Remove `withDownload` parameter
* backend-lib: Migrate to latest in-progress revision of Rust crates
Includes changes to how accounts are stored and referenced. We now
need to remember and provide the seed fingerprint; for now, given
that we know we only create derived accounts from a single seed, we
search for an account with a matching ZIP 32 account index.
* backend-lib: Add `Backend.isSeedRelevantToWallet`
* Remove nullability of DownloadSuccess param
* Comment update
* Fix Detekt warnings
* backend-lib: Migrate to latest in-progress revision of Rust crates
Includes some renames, and a built-in seed relevancy API that we now
use.
* Separate tree state fetching
- Added continuable retry logic
* Integrate Orchard support
Closes Electric-Coin-Company/zcash-android-wallet-sdk#528.
Closes Electric-Coin-Company/zcash-android-wallet-sdk#761.
* Detekt warnings fix
* Fix unit tests
* Update `TxOutputsView` to use correct column names. (#1425)
* Return an error instead of a panic in the case of data corruption. (#1426)
This removes an `expect` call that risked crashing the app in the case of
database corruption, potentially hiding other bugs.
* Include `orchardSubtreeRootList` in final check
* Revert `orchardSubtreeRootList` check
Explanation comment added
* Changelog update
* Update to zcash_client_sqlite version 0.10.3 (#1428)
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
Co-authored-by: Kris Nuttycombe <kris@electriccoin.co>
* [#776] Enable ZIP 317 fees support
* Deprecate ZcashSdk.MINERS_FEE
* Replace MINERS_FEE with Proposal API in Demo app
* Changelog update
* Bump SDK to 2.0.8 to produce snapshot version
The backend now supports proposals that create multiple transactions.
It still does not generate such proposals itself, and we assert this
inside the now-deprecated APIs.
- Returns `null` when there are no funds to shield or the shielding
threshold is not met.
- Throws an exception if there are funds to shield in more than one
transparent receiver within the account.
- Has an optional parameter for specifying which transparent receiver
to shield funds from.
Part of Electric-Coin-Company/zcash-android-wallet-sdk#680.
Downloading and scanning blocks are requirements for updating sync
progress, but block deletion from the cache is not. This change moves
block deletion into "the background" alongside transaction enhancement.
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
- This ensures that the SDK supports apps switching between different lightwalletd servers
- Synchronizer.validateServerEndpoint API added
- Demo app updated to leverage this new feature
- Changelog update
- Closes#1393
* [#1385] Adopt `AccountBalance` fields in Kotlin layer
- Adds the Kotlin side changes for #1380
- Changed WalletBalance to contain these three fields: available, changePending, and valuePending, instead of total and available, and change the transparent flow to StateFlow<Zatoshi>, as we don't distinguish there.
- Related connected APIs changed
- Closes#1385
* Add WalletBalanceFixture
Placed in the public directory to be visible for clients as well
* Changelog update
* Remove `getVerifiedTransparentBalance ` API entirely
Co-authored-by: str4d <jack@electriccoin.co>
* backend-lib: Expose `AccountBalance` fields across the FFI
* Update related fixture class
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
* Migrate to `librustzcash` tag `ecc_sdk-20240130a`
This includes the fix to the empty transaction request serialization
bug, which was preventing shielding from working.
* Release zcash-android-wallet-sdk 2.0.6
* Fix ktlint warnings
* Other CBP minor/formatting changes
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
This improves performance in two ways:
- The `SdkSynchronizer` now reports balances of existing wallets and
sync progress almost immediately, instead of after the first batch
of blocks is scanned.
- In the steady state case, only a few subtree roots are downloaded,
reducing the time until the first batch of blocks is scanned.
ClosesElectric-Coin-Company/zcash-android-wallet-sdk#1310.
Previously we only showed balance updates for the default address; this
could potentially undercount transparent balance in some cases.
We also now use the total zero-conf transparent balance for both "total"
and "available", because we only allow transparent balance to be
shielded, and we use a zero-conf transaction to do so.
- Closes#1287
- This refactored out all the occurrences of LightWalletEndpointExt and its functions and variables from the SDK’s public API. It preserves it in tests, demo app, and in the PersistableWallet for backward compatibility, although it’s not available from outside of the SDK.
- Changelog updated
* [#1248] Clean up unused exceptions
Closes#1248
* Changelog update
* Suppress detekt warning
Creating these private functions is required by the compiler