New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement UA-specific migrations for zcash_client_sqlite
#489
Comments
This was motivated by comments on the auto-shielding PR: |
Related to #369, which is the more general issue for non-UA-specific database migration. |
I've seen other wallets like Yoroi (cardano) that keep track of the addresses given out and if they have received funds or not. |
For Bitcoin, that's usually not a choice: wallets following BIP 44 semantics require users to receive funds in (at least some of) generated addresses before subsequent new ones are generated, otherwise they would exceed the gap limit and become unable to detect funds. We will have this issue for our transparent components, but less so: we can always detect any shielded funds received at any index within an account (due to how diversified addresses work), so we can use that to skip forward over any unused transparent receivers. |
Great, we ought to weed out what information of all this is useful to be available for end users so that we can have te proper APIs in place. |
Wrt storing the UFVK as one column per receiver vs just storing the UFVK directly in the table, both of these will require migrations:
|
Decided we'll go with a single |
This is a breaking change to the database format. We don't have support for migrations yet, so existing wallets won't work after this commit until #489 is done.
This is a breaking change to the database format. We don't have support for migrations yet, so existing wallets won't work after this commit until zcash#489 is done.
#600 implemented a migration that replaced the |
The
zcash_client_sqlite
data DB needs to be updated to account for UAs. Specifically:addresses
table for storing the derived diversified UAs within the known account(s).accounts
table should have its address-related columns removed (migrating the Sapling and transparent content into theaddresses
table), and atransparent_fvk
column added.transparent_fvk
column set toNULL
.ufvk
column that stores the encoded UFVK, and parse it from there, but storing the individual components is probably more introspectable.The text was updated successfully, but these errors were encountered: