Skip to content

Enrich finalized transaction activity - #77

Open
HDauven wants to merge 3 commits into
fix/72-handle-execution-errorsfrom
feat/73-finalized-transaction-enrichment
Open

Enrich finalized transaction activity#77
HDauven wants to merge 3 commits into
fix/72-handle-execution-errorsfrom
feat/73-finalized-transaction-enrichment

Conversation

@HDauven

@HDauven HDauven commented Jul 24, 2026

Copy link
Copy Markdown
Member

Closes #73

Stacked on #76. Once #76 merges, this PR can be retargeted to main.

Summary

  • record RUES execution success or failure immediately as provisional evidence, notify the user, acknowledge the watcher, and release shielded synchronization before enrichment
  • verify finality with an ordered, fail-closed Rusk protocol: capture lastBlockPair, re-read the transaction, fetch its reported block, verify exact transaction membership, and authenticate the finalized frontier hash
  • keep accepted execution reversible across reorgs; mempool and not-found observations clear orphaned block metadata, while only hash-bound finality makes a result terminal
  • make verified finality monotonic at the persistence boundary with a global whole-store mutation queue, current-state lifecycle callbacks, and a terminal-state write guard
  • route extension and local-runtime execution, removal, timeout, and reconciliation updates through the serialized mutation boundary
  • retry provisional execution durably with extension alarms and local-runtime timers
  • apply one five-second deadline across every GraphQL request, including response-body decoding
  • persist lossless decimal-string gas, actual fee, finalized block height/hash/timestamp, and finality-verification metadata
  • mark Phoenix reservations spent after finalized success or finalized failure, while provisional execution remains pending
  • distinguish provisional execution from finality in notifications, activity, details, fee labels, and status styling
  • retain manual recheck support against each transaction's persisted original node URL and explorer quick links

Test plan

  • npm run test:coverage (528 tests)
  • npm run build:chrome
  • npm run build:firefox
  • npm run build:tauri

Regression coverage includes accepted-but-non-final execution, exact-frontier and older-finalized blocks, both reorg outcomes, old-fork failure followed by canonical success, finalized failed Phoenix reservations, stalled fetches, stalled JSON bodies, absolute request deadlines, early acknowledgement/notification, large integer values, original-network rechecks, late extension and local watcher timeout/removal after finality, delayed stale reconciliation after manual finalization, and concurrent updates to different transaction hashes.

@HDauven
HDauven force-pushed the feat/73-finalized-transaction-enrichment branch from 44b287c to 80152a8 Compare July 24, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant