- Always simulate and log
--costbefore sending transactions. - Use RPC
getFeeStats()to set inclusion fee (p90 recommended under load).
- Distribution of resource fees per function
- Average read/write entries and bytes per function
- Event+return sizes (aim << 8 KB cap)
- Oracle call failure rates and retries
- Spike in write-bytes or write-entries
- Repeated tx failures due to under-estimated event/return size
- Inclusion fee surge vs baseline
- Per-endpoint cost over time
- Top costly calls and scenarios
- WASM size trend per release
Critical lifecycle transitions now emit indexer-friendly events via monitoring hooks under a shared topic prefix:
- Topic root:
idx_transition - Domains:
resolutiondisputepause
Hook payload fields:
domain- transition domain (Resolution,Dispute,Pause)action- action label (for examplestate_transition,created,resolved,paused,unpaused)market_id- present for resolution/dispute transitionsold_state/new_state- present for resolution state transitionsactor- present when an initiating address is knowndetails- implementation-defined detail stringtimestamp- ledger timestamp
This allows indexers to track:
- Resolution transitions such as
Ended -> Resolvedand timeout cancellations - Dispute lifecycle transitions (
created,resolved) - Pause lifecycle transitions (
paused,unpaused) from circuit breaker operations
- If costs climb due to strings: enforce length caps at API layer and/or contract validation.
- If claim/resolve costs spike: batch payouts off-chain via token escrows or staged claims.