Skip to content

feat: add mandatory signed gas-payment selectors to TxSeismic - #121

Merged
matthias-wright merged 3 commits into
seismicfrom
m/gas-token-registry
Oct 8, 2026
Merged

matthias-wright merged 3 commits into
seismicfrom
m/gas-token-registry

Conversation

@matthias-wright

Copy link
Copy Markdown
Contributor

Adds GasPayment (Auto / Native / Token(address)) as a mandatory field of TxSeismic, authenticated by the transaction signature and independent of calldata encryption and AAD.

  • Wire format: nested [kind, token] list immediately after gasLimit in RLP (Auto/Native carry an empty token), a nested GasPayment struct in the EIP-712 typed data (zero address for Auto/Native), and a tagged camelCase JSON representation
    (gasPayment) in requests and responses. No old-layout compatibility: pre-selector bytes are not accepted as a legacy format.
  • Validation: Token(0x0) is invalid; decoders reject malformed selectors; requests default omission to Auto before signing.
  • Requests/conversions: SeismicTransactionRequest.gas_payment with Reth and Foundry network conversions that preserve the selector through request → typed transaction → execution env → request round trips.
  • Docs: docs/gas-payment.md specifies the layout and representations; README updated.
  • Tests cover every variant across raw and EIP-712 signing, nonce and scalar boundaries, hashes, signer recovery and conversion round trips; these are the source of the shared gas-payment.json vectors consumed by the SDKs and Foundry.

@matthias-wright
matthias-wright merged commit a8f4494 into seismic Oct 8, 2026
14 of 19 checks passed
@matthias-wright
matthias-wright deleted the m/gas-token-registry branch October 8, 2026 10:12
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