This ensures that errors are logged and tracing events are generated,
but prevents debug logging in release mode. Eventually this will be
made configurable based on the SDK build type, but for now we impose
the same limits on debug builds.
Previously if `initLogs()` was called more than once, the application
would crash. `NativeLibraryLoader` already implements a singleton for
loading the Rust library, so we now hook into that for initialization.
We now always initialize the Rust logging system, along with the tracing
event hooks and anything else we add in future.
The SDK now exposes UAs primarily, with additional methods for obtaining
corresponding Sapling and transparent addresses for legacy compatibility.
The `Account` DAO is also fixed to use the migrated `accounts` table format.
The demo app now shows the current UA and the legacy Sapling and transparent
addresses.
Closeszcash/zcash-android-wallet-sdk#677.
We need the transparent account privkey in order to be able to derive
the secret key for any leaf transparent address under the ZIP 316
diversified address tree.
UnifiedViewingKey had a bug that made it incompatible with ZIP 316.
For compatibility with the current `zcash/librustzcash` revision we use
a temporary fake UFVK encoding that stores sufficient information to use
the current APIs, and a superset of the actual ZIP 316 FVK information.
- Replace int with type safe BlockHeight(Long) object
- Fix down casting bug, as BlockHeight is uint32 but Java only supports int32 or int64
- Rename WalletBirthday to Checkpoint and hide from the public API
`decrypt_and_store_transaction` internally serialized transactions, but
the previous commit only added parsing support. Fortunately we already
have the transaction bytes, so to handle this in the short term we can
just pass them through.
Once we have migrated the SDK to latest `zcash/librustzcash` the API
will return to its previous form.
Move SDK from the root gradle project to its own Gradle module
Move the demo app to be a peer of the SDK
This will simplify integration with CI on Bitrise.