301 lines
13 KiB
Markdown
301 lines
13 KiB
Markdown
Change Log
|
|
==========
|
|
|
|
## Unreleased
|
|
|
|
### Added
|
|
- `cash.z.ecc.android.sdk`:
|
|
- `Synchronizer.getCurrentAddress`
|
|
- `Synchronizer.getLegacySaplingAddress`
|
|
- `Synchronizer.getLegacyTransparentAddress`
|
|
- `Synchronizer.isValidUnifiedAddr`
|
|
- `cash.z.ecc.android.sdk.model`:
|
|
- `Account`
|
|
- `FirstClassByteArray`
|
|
- `UnifiedSpendingKey`
|
|
- `cash.z.ecc.android.sdk.tool`:
|
|
- `DerivationTool.deriveUnifiedSpendingKey`
|
|
- `DerivationTool.deriveUnifiedFullViewingKey`
|
|
- `DerivationTool.deriveTransparentAccountPrivateKey`
|
|
- `DerivationTool.deriveTransparentAddressFromAccountPrivateKey`
|
|
- `DerivationTool.deriveUnifiedAddress`
|
|
- `DerivationTool.deriveUnifiedFullViewingKeys`
|
|
- `DerivationTool.validateUnifiedFullViewingKey`
|
|
- Still unimplemented.
|
|
- `cash.z.ecc.android.sdk.type`:
|
|
- `AddressType.Unified`
|
|
- `UnifiedFullViewingKey`, representing a Unified Full Viewing Key as specified in
|
|
[ZIP 316](https://zips.z.cash/zip-0316#encoding-of-unified-full-incoming-viewing-keys).
|
|
|
|
### Changed
|
|
- The following methods now take or return `UnifiedFullViewingKey` instead of
|
|
`UnifiedViewingKey`:
|
|
- `cash.z.ecc.android.sdk`:
|
|
- `Initializer.Config.addViewingKey`
|
|
- `Initializer.Config.importWallet`
|
|
- `Initializer.Config.newWallet`
|
|
- `Initializer.Config.setViewingKeys`
|
|
- `cash.z.ecc.android.sdk`:
|
|
- `Synchronizer.Companion.new` now takes a `seed` argument. A non-null value should be
|
|
provided if `Synchronizer.Companion.new` throws an error that a database migration
|
|
requires the wallet seed.
|
|
- `Synchronizer.sendToAddress` now takes a `UnifiedSpendingKey` instead of an encoded
|
|
Sapling extended spending key, and the `fromAccountIndex` argument is now implicit in
|
|
the `UnifiedSpendingKey`.
|
|
- `Synchronizer.shieldFunds` now takes a `UnifiedSpendingKey` instead of separately
|
|
encoded Sapling and transparent keys.
|
|
- `Synchronizer` methods that previously took an `Int` for account index now take an `Account` object
|
|
|
|
### Removed
|
|
- `cash.z.ecc.android.sdk`:
|
|
- `Synchronizer.getAddress` (use `Synchronizer.getCurrentAddress` instead).
|
|
- `Synchronizer.getShieldedAddress` (use `Synchronizer.getLegacySaplingAddress` instead).
|
|
- `Synchronizer.getTransparentAddress` (use `Synchronizer.getLegacyTransparentAddress` instead).
|
|
- `cash.z.ecc.android.sdk.type.UnifiedViewingKey`
|
|
- This type had a bug where the `extpub` field actually was storing a plain transparent
|
|
public key, and not the extended public key as intended. This made it incompatible
|
|
with ZIP 316.
|
|
- `cash.z.ecc.android.sdk.tool`:
|
|
- `DerivationTool.deriveSpendingKeys` (use
|
|
`DerivationTool.deriveUnifiedSpendingKey` instead).
|
|
- `DerivationTool.deriveViewingKey` (use
|
|
- `DerivationTool.deriveUnifiedFullViewingKey` instead).
|
|
- `DerivationTool.deriveTransparentAddressFromPrivateKey` (use
|
|
`DerivationTool.deriveTransparentAddressFromAccountPrivateKey` instead).
|
|
- `DerivationTool.deriveTransparentSecretKey` (use
|
|
`DerivationTool.deriveTransparentAccountPrivateKey` instead).
|
|
- `DerivationTool.deriveShieldedAddress`
|
|
- TODO: Do we still need to be able to derive Sapling shielded addresses for legacy
|
|
support? Currently removed because `UnifiedFullViewingKey` doesn't expose the
|
|
Sapling FVK on the Kotlin side (unlike the previous `UnifiedViewingKey`).
|
|
- `DerivationTool.deriveUnifiedViewingKeys`
|
|
- `DerivationTool.validateUnifiedViewingKey`
|
|
|
|
Version 1.9.0-beta05
|
|
------------------------------------
|
|
- The minimum version of Android supported is now API 21
|
|
- Fixed R8/ProGuard consumer rule, which eliminates a runtime crash for minified apps
|
|
|
|
Version 1.9.0-beta04
|
|
------------------------------------
|
|
- The SDK now stores sapling param files in `no_backup/co.electricoin.zcash` folder instead of the `cache/params`
|
|
folder. Besides that, `SaplingParamTool` also does validation of downloaded sapling param file hash and size.
|
|
**No action required from client app**.
|
|
|
|
Version 1.9.0-beta03
|
|
------------------------------------
|
|
- No changes; this release is a test of a new deployment process
|
|
|
|
Version 1.9.0-beta02
|
|
------------------------------------
|
|
- The SDK now stores database files in `no_backup/co.electricoin.zcash` folder instead of the `database` folder. **No action required from client app**.
|
|
|
|
Version 1.9.0-beta01
|
|
------------------------------------
|
|
- Split `ZcashNetwork` into `ZcashNetwork` and `LightWalletEndpoint` to decouple network and server configuration
|
|
- Gradle 7.5.1
|
|
- Updated checkpoints
|
|
|
|
Version 1.8.0-beta01
|
|
------------------------------------
|
|
- Enabled automated unit tests run on the CI server
|
|
- Added `BlockHeight` typesafe object to represent block heights
|
|
- Significantly reduced memory usage, fixing potential OutOfMemoryError during block download
|
|
- Kotlin 1.7.10
|
|
- Updated checkpoints
|
|
|
|
Version 1.7.0-beta01
|
|
------------------------------------
|
|
- Added `Zatoshi` typesafe object to represent amounts.
|
|
- Kotlin 1.7.0
|
|
|
|
Version 1.6.0-beta01
|
|
------------------------------------
|
|
- Updated checkpoints for Mainnet and Testnet
|
|
- Fix: SDK can now be used on Intel x86_64 emulators
|
|
- Prevent R8 warnings for apps consuming the SDK
|
|
|
|
Version 1.5.0-beta01
|
|
------------------------------------
|
|
- New: Transactions can be created after NU5 activation.
|
|
- New: Support for receiving v5 transactions.
|
|
- Known issues: The SDK will not run on Intel 64-bit API 31+ emulators. Workarounds include: testing on a physical device, using an older 32-bit API version Intel emulator, or using an ARM emulator.
|
|
|
|
Version 1.4.0-beta01
|
|
------------------------------------
|
|
- Main entrypoint to the SDK has changed. See [MIGRATIONS.md](MIGRATIONS.md)
|
|
- The minimum version of Android supported is now API 19
|
|
- Updated checkpoints for Mainnet and Testnet
|
|
- Internal bugfixes around concurrent access to resources, which could cause transient failures and data corruption
|
|
- Added ProGuard rules so that SDK clients can use R8 to shrink their apps
|
|
- Updated dependencies, including Kotlin 1.6.21, Coroutines 1.6.1, GRPC 1.46.0, Okio 3.1.0, NDK 23
|
|
- Known issues: The SDK will not run on Intel 64-bit API 31+ emulators. Workarounds include: testing on a physical device, using an older 32-bit API version Intel emulator, or using an ARM emulator.
|
|
|
|
Version 1.3.0-beta20
|
|
------------------------------------
|
|
- New: Updated checkpoints for Mainnet and Testnet
|
|
|
|
Version 1.3.0-beta19
|
|
------------------------------------
|
|
- New: Updated checkpoints for Mainnet and Testnet
|
|
- Fix: Repackaged internal classes to a new `internal` package name
|
|
- Fix: Testnet checkpoints have been corrected
|
|
- Updated dependencies
|
|
|
|
Version 1.3.0-beta18
|
|
------------------------------------
|
|
- Fix: Corrected logic when calculating birthdates for wallets with zero received notes.
|
|
|
|
Version 1.3.0-beta17
|
|
------------------------------------
|
|
- Fix: Autoshielding confirmation count error so funds are available after 10 confirmations.
|
|
- New: Allow developers to enable Rust logs.
|
|
- New: Accept GZIP compression from lightwalletd.
|
|
- New: Reduce the UTXO retry time.
|
|
|
|
Version 1.3.0-beta16
|
|
------------------------------------
|
|
- Fix: Gracefully handle failures while fetching UTXOs.
|
|
- New: Expose StateFlows for balances.
|
|
- New: Make it easier to subscribe to transactions.
|
|
- New: Cleanup default logs.
|
|
- New: Convenience functions for WalletBalance objects.
|
|
|
|
Version 1.3.0-beta15
|
|
------------------------------------
|
|
- Fix: Increase reconnection attempts on failed app restart.
|
|
- New: Updated checkpoints for testnet and mainnet.
|
|
|
|
Version 1.3.0-beta14
|
|
------------------------------------
|
|
- New: Add separate flows for sapling, orchard and tranparent balances.
|
|
- Fix: Continue troubleshooting and fixing server disconnects.
|
|
- Updated dependencies.
|
|
|
|
Version 1.3.0-beta12
|
|
------------------------------------
|
|
- New: Expose network height as StateFlow.
|
|
- Fix: Reconnect to lightwalletd when a service exception occurs.
|
|
|
|
Version 1.3.0-beta11
|
|
------------------------------------
|
|
- Fix: Remove unused flag that was breaking new wallet creation for some wallets.
|
|
|
|
Version 1.3.0-beta10
|
|
------------------------------------
|
|
- Fix: Make it safe to call the new prepare function more than once.
|
|
|
|
Version 1.3.0-beta09
|
|
------------------------------------
|
|
- New: Add quick rewind feature, which makes it easy to rescan blocks after an upgrade.
|
|
- Fix: Repair complex data migration bug that caused crashes on upgrades.
|
|
|
|
Version 1.3.0-beta08
|
|
------------------------------------
|
|
- Fix: Disable librustzcash logs by default.
|
|
|
|
Version 1.3.0-beta07
|
|
------------------------------------
|
|
- Fix: Address issues with key migration, allowing wallets to reset viewing keys, when needed.
|
|
|
|
Version 1.3.0-beta06
|
|
------------------------------------
|
|
- Fix: Repair publishing so that AARs work on Windows machines [issue #222].
|
|
- Fix: Incorrect BranchId on 32-bit devics [issue #224].
|
|
- Fix: Rescan should not go beyond the wallet checkpoint.
|
|
- New: Drop Android Jetifier since it is no longer used.
|
|
- Updated checkpoints, improved tests (added Test Suites) and better error messages.
|
|
|
|
Version 1.3.0-beta05
|
|
------------------------------------
|
|
- Major: Consolidate product flavors into one library for the SDK instead of two.
|
|
- Major: Integrates with latest Librustzcash including full Data Access API support.
|
|
- Major: Move off of JCenter and onto Maven Central.
|
|
- New: Adds Ktlint [Credit: @nighthawk24]
|
|
- Fix: Added SaplingParamTool and ability to clear param files from cache [Credit: @herou]
|
|
- New: Added responsible disclosure document for vulnerabilities [Credit: @zebambam]
|
|
- New: UnifiedViewingKey concept.
|
|
- New: Adds support for autoshielding, including database migrations.
|
|
- New: Adds basic support for UTXOs, including refresh during scan.
|
|
- New: Support the ability to wipe all sqlite data and rebuild from keys.
|
|
- New: Switches to ZOMG lightwalletd instances.
|
|
- Fix: Only notify subscribers when a new block is detected.
|
|
- New: Add scan metrics and callbacks for apps to measure performance.
|
|
- Fix: Improve error handling and surface critical Initialization errors.
|
|
- New: Adds cleanup and removal of failed transactions.
|
|
- New: Improved logic for determining the wallet birthday.
|
|
- New: Add the ability to rewind and rescan blocks.
|
|
- New: Better safeguards against testnet v mainnet data contamination.
|
|
- New: Improved troubleshooting of ungraceful shutdowns.
|
|
- Docs: Update README to draw attention to the demo app.
|
|
- New: Expose transaction count.
|
|
- New: Derive sapling activation height from the active network.
|
|
- New: Latest checkpoints for mainnet and testnet.
|
|
|
|
Version 1.2.1-beta04
|
|
------------------------------------
|
|
- New: Updated to latest versions of grpc, grpc-okhttp and protoc
|
|
- Fix: Addresses root issue of Android 11 crash on SSL sockets
|
|
|
|
Version 1.2.1-beta03
|
|
------------------------------------
|
|
- New: Implements ZIP-313, reducing the default fee from 10,000 to 1,000 zats.
|
|
- Fix: 80% reduction in build warnings from 90 -> 18 and improved docs [Credit: @herou].
|
|
|
|
Version 1.2.1-beta02
|
|
------------------------------------
|
|
- New: Improve birthday configuration and config functions.
|
|
- Fix: Broken layout in demo app transaction list.
|
|
|
|
Version 1.2.1-beta01
|
|
------------------------------------
|
|
- New: Added latest checkpoints for testnet and mainnet.
|
|
- New: Added display name for Canopy.
|
|
- New: Update to the latest lightwalletd service definition.
|
|
- Fix: Convert Initializer.Builder to Initializer.Config to simplify the constructors.
|
|
|
|
Version 1.2.0-beta01
|
|
------------------------------------
|
|
- New: Added ability to erase initializer data.
|
|
- Fix: Updated to latest librustzcash, fixing send functionality on Canopy.
|
|
|
|
Version 1.1.0-beta10
|
|
------------------------------------
|
|
- New: Modified visibility on a few things to facilitate partner integrations.
|
|
|
|
Version 1.1.0-beta08
|
|
------------------------------------
|
|
- Fix: Publishing has been corrected by jcenter's support team.
|
|
- New: Minor improvement to initializer
|
|
|
|
Version 1.1.0-beta05
|
|
------------------------------------
|
|
- New: Synchronizer can now be started with just a viewing key.
|
|
- New: Initializer improvements.
|
|
- New: Added tool for loading checkpoints.
|
|
- New: Added tool for deriving keys and addresses, statically.
|
|
- New: Updated and revamped the demo apps.
|
|
- New: Added a bit more (unofficial) t-addr support.
|
|
- Fix: Broken testnet demo app.
|
|
- Fix: Publishing configuration.
|
|
|
|
Version 1.1.0-beta04
|
|
------------------------------------
|
|
- New: Add support for canopy on testnet.
|
|
- New: Change the default lightwalletd server.
|
|
- New: Add lightwalletd service for fetching t-addr transactions.
|
|
- New: prove the concept of local RPC via protobufs.
|
|
- New: Iterate on the demo app.
|
|
- New: Added new checkpoints.
|
|
- Fix: Minor enhancements.
|
|
|
|
Version 1.1.0-beta03
|
|
------------------------------------
|
|
- New: Add robust support for transaction cancellation.
|
|
- New: Update to latest version of librustzcash.
|
|
- New: Expand test support.
|
|
- New: Improve and simplify intialization.
|
|
- New: Flag when rust is running in debug mode, causing a 10X slow down.
|
|
- New: Contributing guidelines.
|
|
- Fix: Minor cleanup and improvements.
|