-
Notifications
You must be signed in to change notification settings - Fork 252
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
Bug in is_shielding state going from TRUE to FALSE after the first confirmation #1571
Comments
The root of the problem here appears to be that the received note in the shielding transaction is no longer interpreted as a change output after the transaction is mined. This is the code that is causing the transaction to be marked as not shielding: librustzcash/zcash_client_sqlite/src/wallet/db.rs Lines 854 to 855 in bf8b39a
In investigating the source of the |
Noticed along the way: the following lines don't make sense, as the
This could usefully be implemented as |
The root cause of the librustzcash/zcash_client_backend/src/scanning.rs Lines 822 to 849 in bf8b39a
To fix this, we could query the backend to augment the Remediation:
|
…ash#1571 The update to a shielding transaction causes the information that the output is considered change to be lost. This happens because the scanning process does not have access to any information about the inputs to the transaction, and so it does not recognize the output as change.
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…tly flagged when recording sent outputs. Fixes zcash#1571
…ash#1571 The update to a shielding transaction causes the information that the output is considered change to be lost. This happens because the scanning process does not have access to any information about the inputs to the transaction, and so it does not recognize the output as change.
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…tly flagged when recording sent outputs. Fixes zcash#1571
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…tly flagged when recording sent outputs. Fixes zcash#1571
…scind that determination. This is a minimal and correct but incomplete fix for zcash#1571. Additional work to distinguish change outputs is necessary to update existing wallets that have made an incorrect change determination in the past.
…tly flagged when recording sent outputs. Fixes zcash#1571
How to reproduce:
Few more observations:
when I try to restore the wallet on a different simulator while it’s still waiting on 10 confirmations and should be shielding funds but it’s sending, I see correct state restored.. so restore is able to bring the TRUE flag back but where it matters it’s broken
db export shared via Slack here: https://zcash.slack.com/archives/C02C1GZ0R6F/p1724835111523729
The text was updated successfully, but these errors were encountered: