fix(wallet): recover interrupted max unshield - #524
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Reviewed commit a45cc0f3a511f5f3ca4bf01caafd4e232ecaa287. I found no high-confidence blocking correctness, reliability, security, or data-integrity issues in the changed paths.\n\nI inspected the full 12-file diff and relevant surrounding SDK/client call sites, including the fail-closed unshield lifecycle, live deposit rereads, portfolio refresh state propagation, retry UI, and verifier. Existing checks for this head are successful; I did not rerun local CI/build commands per the repository review constraints.
PullGuardRisk: 72/100 - medium The follow-up improves fail-closed behavior, but key post-unshield integration paths still bypass the promised stale and Retry state, and the verifier does not exercise them. Main concerns
Review first
|
Summary
unshieldsignature$—and expose Retry instead of showing authoritative$0.00Root cause
On the ASK-1845 preview, the second shield transaction landed, but concurrent base RPC/WebSocket failures interrupted the following unshield/portfolio refresh. No second base-layer unshield transaction landed. Legacy deposit reads converted RPC failures to
null, while an unavailable portfolio could be presented as an empty/zero wallet.Verification
cd frontend && bun run verify:max-unshield-recoverycd frontend && bun run lint(passes with existing repository warnings)cd frontend && bunx tsc --noEmit --incremental falsegit diff --checkA local frontend production build was intentionally not run because this checkout explicitly forbids it; Vercel remains the build/deploy gate.
Linear: ASK-1865
Related: ASK-1845