fix(operator): wait out EVM period caps before withdraw execute #198
No reviewers
Labels
No labels
agent:implement
agent:ready
backend
bug
cannot-reproduce
confirmed
desktop
docs
documentation
duplicate
enhancement
feature
frontend
good first issue
help wanted
high-risk
in-review
invalid
mobile
needs-triage
P0-critical
P1-high
P2-medium
P3-low
qa
QA
question
ready
report
responsive
security
security-escalate
smart-contract
solana
tablet
test-pass
ux
wallet-issue
wallet:keplr
wallet:metamask
wallet:station
wallet:walletconnect
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-bridge-monorepo!198
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue/170"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
withdrawExecute*now waits until the TokenRegistry withdraw window ends on period-full, instead of retrying atWRITER_RPC_BACKOFF_MAX.RateLimitExceededPerPeriodstays retryable and is not stored as a terminal string.maxPerTx/maxPerPeriodare not sent. Permanent caps usePermanentPerTxCapExceeded/PermanentPeriodCapExceeded(terminal). On-chain limits are unchanged and there is no execute bypass.WithdrawRateLimitExceededwaits one full 24h window. In-flight execute timers are not reset when a pending row is still stored; scheduling a retry refreshes that row's cache TTL.Fixes #170.
Acceptance
withdrawExecuteMint/withdrawExecuteUnlockafter the cancel window when the payout fits the current window. A non-terminal limiter defers the send until the window ends.CancelWindowActiveand period-full stay out ofterminal_executions. Period-full retries atwindowStart + RATE_LIMIT_WINDOW(or one full window if that read fails).TokenRateLimit/ min / max change and no admin execute bypass.Validation
cargo test --bins writers::— 49 passed (execute-queue period wait, permanent cap, terminal vs retryable, decimal normalize).cargo test --bins bounded_cache::— 7 passed (stored-row update refreshes TTL).Gaps
minPerTransactionafter this binary is deployed. Below-min rows stay terminal on purpose. Redeploy and that live check remain on #172.Invariants:
docs/OPERATOR_WRITER_INVARIANTS.md(INV-OP-W11). Skill:skills/agent-operator-evm-writer-rpc.md.drain skip: no occupying job for rebase/fix-pr/CI-wait; remaining continue
drain skip: default autoland requires tip ACCEPT (#77)
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.