feat(oracle-service): heartbeat same-rate refresh + confirm UpdateRate from DeliverTx wasm events #46
No reviewers
Labels
No labels
enhancement
governance
QA
testing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/ust1-window!46
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/oracle-heartbeat-event-confirm"
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
Implements ust1-window#32: two oracle-service production fixes observed on columbus-5 after
/ust1reported Oracle stale while the bot was still polling Venus.proposed ==on-chain rate, still submitUpdateRatewith this tick's multi-RPC consensus rate once INV-ORACLE-THROTTLE-001 allows (4h). Logsevent=oracle_heartbeat/tick_kind=heartbeat. Equal-rate inside the throttle window stays a cheap no-op.action=update_rate+ matchingrateonORACLE_CONTRACT. Lagged LCDStateisoracle_state_lag_after_event_ok(warn only). If wasm attrs are stripped, fall back to retriedState, then fail-closed.No contract migrate. Window
max_oracle_age_secunchanged. CheckTx / SYNC still does not count as success.Closes #32. Related: #31 (leave open until mainnet age stays inside 6h), #23, #24. DEX O2 runbook pointers are a follow-up on cl8y-dex-terraclassic#503.
Test plan
cargo test -p ust1-oracle-service(106 tests) — heartbeat routing, event-confirm vs lagged State, wrong contract, rate mismatch, throttle skip, paused, EVM disagreementcargo test -p ust1-common/ust1-oracle— same-rate after 4h is Ok; multitest advanceslast_update_secand emitsupdate_ratecargo clippy -p ust1-oracle-service -- -D warningsUpdateRate, Finder wasmaction=update_rate, windowlast_update_secadvances,/ust1stays Freshtick failedwhen events match;LIVENESS_ORACLE_NO_BROADCASTsilence resetsUST1_OPS_STRICT_STALE=1 ./scripts/check-ust1-wrap-ops-health.shPASS while healthy (DEX repo)mentioned in commit
de0e8f01camentioned in issue #32
mentioned in issue #31