Migrate to getwalletstatus RPC for syncing wallets#56
Conversation
bbdc8ac to
6489d41
Compare
79c082b to
5f84b1f
Compare
|
Picking this up and pushing a follow-up commit (721b513). Two issues surfaced when validating end-to-end against a zallet carrying zcash/wallet#367 (
Validated 10/10 green locally with the fix (was ~22% flaky before). This supersedes #106 (the bespoke
|
…s in wallet.py The getwalletstatus sync barrier indexed `wallet_tip` unconditionally, but the RPC omits that field (Option + skip_serializing_if) until the wallet has a committed tip — which happens transiently right after blocks are mined. The barrier therefore raised `KeyError: 'wallet_tip'` ~1 run in 4, exactly during the window it is meant to poll through. Treat an absent wallet_tip as "not synced yet" and keep polling, in sync_blocks, sync_mempools, and rebuild_cache. Also make wallet.py use the now wallet-aware self.sync_all() instead of an immediate read and a fixed time.sleep(1), removing the remaining flaky wallet-scan race (and the unused `import time`). This supersedes the bespoke pollers in #106. Validated 10/10 green locally against a zallet carrying zcash/wallet#367 (getwalletstatus) + zcash/wallet#455 (empty shielded tree fix). Closes #105 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
721b513 to
b0eade2
Compare
There was a problem hiding this comment.
utACK c0fd062, with utACK of zcash/wallet#367 at 7404cbf5b044500f4f5a9233e855c56a137f6feb.
We will have more visibility on the overall impact of this change when #125 will have been merged.
I approved based on the hypothesis that zcash/wallet#367 is supposed to be implemented to rely less on calls to |
c0fd062 to
4cf2be8
Compare
Closes #63.
Closes COR-1088.
Closes #105.
Depends on zcash/wallet#367 and zcash/wallet#455.