Skip to content

feat: rpc capability discovery, evm lifecycle states, soroban footprint, sequence reservation - #1403

Merged
mijinummi merged 1 commit into
MDTechLabs:mainfrom
Sarietgold:issues-1323-1324-1325-1326-evm-stellar
Oct 21, 2026
Merged

mijinummi merged 1 commit into
MDTechLabs:mainfrom
Sarietgold:issues-1323-1324-1325-1326-evm-stellar

Conversation

@Sarietgold

Copy link
Copy Markdown

Description

This PR implements chain-specific RPC capability discovery, EVM transaction lifecycle state machine, Soroban authorization footprint regression tests, and Stellar account sequence reservation.

Closes #1323
Closes #1324
Closes #1325
Closes #1326

Changes Made

1. Chain-Specific RPC Capability Discovery (apps/api/src/execution/evm/rpc-capability-discovery.ts) — Closes #1323

  • Implemented ChainRpcCapabilityDiscoveryService to dynamically probe, validate, and record EVM node RPC capabilities (EIP-1559, EIP-4844, debugTrace, stateOverride, finalityTags, wsSubscriptions).
  • Added ChainIdMismatchError to strictly enforce chain boundaries and prevent cross-chain transaction replay/execution against mismatched network endpoints.
  • Implemented sanitizeEndpoint to redact secrets, tokens, API keys, basic authentication, and path-based API keys from logs, diagnostics, and metrics.
  • Added concurrency deduplication so simultaneous discovery requests to the same endpoint share in-flight promises, preventing duplicate node queries.
  • Added caching with configurable TTL and unreachable/degraded fallback handling.

2. EVM Transaction Lifecycle State Machine (apps/api/src/execution/evm/evm-transaction-lifecycle.ts) — Closes #1324

  • Implemented EvmTransactionLifecycleManager enforcing valid EVM execution states: prepared, submitted, in_mempool, mined, confirmed, replaced, reorg_detected, reverted, timed_out, cancelled.
  • Enforced optimistic versioning (LifecycleVersionConflictError) to prevent concurrent race conditions and duplicate submissions.
  • Added replacement / speedup enforcement requiring >= 10% gas price bump, preserving the nonce, and linking replacement transactions.
  • Added confirmation depth tracking advancing from mined to confirmed once target confirmations are reached.
  • Handled chain reorg detection safely transitioning invalidated mined blocks to reorg_detected.
  • Sanitized sensitive metadata fields (privateKey, secret, token, signature, mnemonic).

3. Soroban Authorization Footprint Regression Suite (apps/api/src/soroban/authorization/soroban-footprint.ts) — Closes #1325

  • Implemented SorobanFootprintValidator for Soroban contract invocations and ledger footprint validation (readOnly and readWrite sets).
  • Added concurrent footprint collision detection identifying overlapping readWrite keys across parallel transactions.
  • Enforced protocol resource budgets (cpuInstructions, memoryBytes, readBytes, writeBytes) with ResourceLimitExceededError.
  • Enforced network passphrase isolation with NetworkPassphraseMismatchError to prevent cross-network replay between Stellar Public Mainnet and Testnet.
  • Validated authorization entries, expiration ledger bounds, and nonces without using production keys or unpinned state.

4. Stellar Account Sequence Reservation (apps/api/src/stellar/sequence/stellar-sequence-reservation.ts) — Closes #1326

  • Implemented StellarSequenceReservationService to atomically allocate and manage monotonic transaction sequences for Stellar source accounts across concurrent bridge execution workers.
  • Supported idempotency per reservation ID / transaction ID.
  • Supported rollback when releasing top-of-stack sequence and gap detection (SequenceGapDetectedError) when releasing middle-of-stack sequences.
  • Added TTL expiration (expireDue()) for stale reservations.
  • Enforced active reservation bounds (SequenceReservationLimitError) to guard against runaway uncommitted sequences.

Testing & Verification

  • Comprehensive unit and regression test suites in:
    • apps/api/src/execution/evm/rpc-capability-discovery.spec.ts
    • apps/api/src/execution/evm/evm-transaction-lifecycle.spec.ts
    • apps/api/src/soroban/authorization/soroban-footprint.spec.ts
    • apps/api/src/stellar/sequence/stellar-sequence-reservation.spec.ts
  • Tested success, boundary, invalid-input, concurrency conflict, network mismatch, and failure cases.
  • All tests execute with zero external secret dependencies.

@drips-wave

drips-wave Bot commented Oct 21, 2026

Copy link
Copy Markdown

@Sarietgold Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@mijinummi
mijinummi merged commit a7176b9 into MDTechLabs:main Oct 21, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants