fix(operator): execute dest-approved EVM withdrawals after the cancel window #171

Merged
PlasticDigits merged 1 commit from issue/170 into main 2026-09-12 02:38:12 +00:00

Summary

  • Operator withdrawExecute* now uses method-level RPC fallback for dest-approved EVM withdrawals (reads, send, receipt-by-hash) and keeps CancelWindowActive / period rate-limit retries out of terminal_executions with backoff (INV-OP-W11 / INV-OP-W12).
  • Hash Verification names EVM dest execute blockers (cancel remaining + GL-127 rate-limit banners) while dest Approved stays overall Pending until Executed.

Fixes #170.

Invariants: docs/OPERATOR_WRITER_INVARIANTS.md (INV-OP-W11–W12), docs/FRONTEND_BRIDGE_INVARIANTS.md (INV-FE-VERIFY-1). Skills: skills/agent-operator-evm-writer-rpc.md, skills/agent-frontend-hash-verify.md.

Test plan

  • cargo test --bins writers:: (47 passed)
  • cargo test --bins rpc_fallback (8 passed, including send fallback stop-on-revert / 429)
  • cargo clippy --bins -- -D warnings
  • Frontend unit: hashVerifyExecuteBlocker, HashComparisonPanel, DestHashCard, evmExecutionRateLimit (34 passed)
  • Redeploy operator; dest-approved Terra→BNB after cancel window executes without a manual contract call
  • /verify?hash= dest-approved EVM shows Pending + cancel remaining or rate-limit banner; after execute, refresh is verified / Executed
## Summary - Operator `withdrawExecute*` now uses method-level RPC fallback for dest-approved EVM withdrawals (reads, send, receipt-by-hash) and keeps `CancelWindowActive` / period rate-limit retries out of `terminal_executions` with backoff (INV-OP-W11 / INV-OP-W12). - Hash Verification names EVM dest execute blockers (cancel remaining + GL-127 rate-limit banners) while dest Approved stays overall **Pending** until Executed. Fixes #170. Invariants: [`docs/OPERATOR_WRITER_INVARIANTS.md`](docs/OPERATOR_WRITER_INVARIANTS.md) (INV-OP-W11–W12), [`docs/FRONTEND_BRIDGE_INVARIANTS.md`](docs/FRONTEND_BRIDGE_INVARIANTS.md) (**INV-FE-VERIFY-1**). Skills: [`skills/agent-operator-evm-writer-rpc.md`](skills/agent-operator-evm-writer-rpc.md), [`skills/agent-frontend-hash-verify.md`](skills/agent-frontend-hash-verify.md). ## Test plan - [x] `cargo test --bins writers::` (47 passed) - [x] `cargo test --bins rpc_fallback` (8 passed, including send fallback stop-on-revert / 429) - [x] `cargo clippy --bins -- -D warnings` - [x] Frontend unit: `hashVerifyExecuteBlocker`, `HashComparisonPanel`, `DestHashCard`, `evmExecutionRateLimit` (34 passed) - [ ] Redeploy operator; dest-approved Terra→BNB after cancel window executes without a manual contract call - [ ] `/verify?hash=` dest-approved EVM shows Pending + cancel remaining or rate-limit banner; after execute, refresh is verified / Executed
Retryable execute failures stay queued with RPC fallback and backoff; Hash
Verification names EVM cancel remaining and rate-limit blockers. Fixes #170.

Co-authored-by: Cursor <cursoragent@cursor.com>
Author
Owner

drain skip: hard-blocked (needs-human / high-risk / human topic); remaining continue

drain skip: hard-blocked (needs-human / high-risk / human topic); remaining continue
PlasticDigits deleted branch issue/170 2026-09-12 02:38:12 +00:00
Sign in to join this conversation.
No reviewers
code/maintainers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-bridge-monorepo!171
No description provided.