Skip to content

BerlinEnvelope

Tuple representing an encoded envelope for the Berlin hardfork.

StructToTupleType(BerlinTransactionEnvelope)

BerlinEnvelopeSigned

Tuple representing an encoded envelope for the Berlin hardfork with the signature.

StructToTupleType(BerlinTransactionEnvelopeSigned)

CancunEnvelope

Tuple representing an encoded envelope for the London hardfork.

StructToTupleType(CancunTransactionEnvelope)

CancunEnvelopeSigned

Tuple representing an encoded envelope for the London hardfork with the signature.

StructToTupleType(CancunTransactionEnvelopeSigned)

CancunSignedWrapper

Signed cancun transaction converted to wrapper with blobs, commitments and proofs.

Merge(StructToTupleType(CancunTransactionEnvelopeSigned), struct { []const Blob, []const KZGCommitment, []const KZGProof })

CancunWrapper

Cancun transaction converted to wrapper with blobs, commitments and proofs.

Merge(StructToTupleType(CancunTransactionEnvelope), struct { []const Blob, []const KZGCommitment, []const KZGProof })

Eip7702Envelope

Tuple representing EIP 7702 authorization envelope tuple.

StructToTupleType(Eip7702TransactionEnvelope)

Eip7702EnvelopeSigned

Tuple representing EIP 7702 authorization envelope tuple with the signature.

StructToTupleType(Eip7702TransactionEnvelopeSigned)

LegacyEnvelope

Tuple representing an encoded envelope for a legacy transaction.

StructToTupleType(Omit(LegacyTransactionEnvelope, &.{"chainId"}))

LegacyEnvelopeSigned

Tuple representing an encoded envelope for a legacy transaction with the signature.

StructToTupleType(Omit(LegacyTransactionEnvelopeSigned, &.{"chainId"}))

LondonEnvelope

Tuple representing an encoded envelope for the London hardfork.

StructToTupleType(LondonTransactionEnvelope)

LondonEnvelopeSigned

Tuple representing an encoded envelope for the London hardfork with the signature.

StructToTupleType(LondonTransactionEnvelopeSigned)

TransactionTypes

All of the transaction types.

Properties

enum {
  legacy = 0x00
  berlin = 0x01
  london = 0x02
  cancun = 0x03
  eip7702 = 0x04
  deposit = 0x7e
  _
}

TransactionEnvelope

The transaction envelope that will be serialized before getting sent to the network.

Properties

union(enum) {
  berlin: BerlinTransactionEnvelope
  cancun: CancunTransactionEnvelope
  eip7702: Eip7702TransactionEnvelope
  legacy: LegacyTransactionEnvelope
  london: LondonTransactionEnvelope
}

Eip7702TransactionEnvelope

The transaction envelope from eip7702.

Properties

struct {
  chainId: u64
  nonce: u64
  maxPriorityFeePerGas: u64
  maxFeePerGas: u64
  gas: u64
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  authorizationList: []const AuthorizationPayload
}

CancunTransactionEnvelope

The transaction envelope from the Cancun hardfork

Properties

struct {
  chainId: usize
  nonce: u64
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  gas: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  maxFeePerBlobGas: Gwei
  blobVersionedHashes: ?[]const Hash = null
}

LondonTransactionEnvelope

The transaction envelope from the London hardfork

Properties

struct {
  chainId: usize
  nonce: u64
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  gas: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
}

BerlinTransactionEnvelope

The transaction envelope from the Berlin hardfork

Properties

struct {
  chainId: usize
  nonce: u64
  gas: Gwei
  gasPrice: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
}

LegacyTransactionEnvelope

The transaction envelope from a legacy transaction

Properties

struct {
  chainId: usize = 0
  nonce: u64
  gas: Gwei
  gasPrice: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
}

AccessList

Struct representing the accessList field.

Properties

struct {
  address: Address
  storageKeys: []const Hash
}

AuthorizationPayload

EIP7702 authorization payload.

Properties

struct {
  chain_id: u64
  address: Address
  nonce: u64
  y_parity: u8
  r: u256
  s: u256
}

AccessListResult

Struct representing the result of create accessList

Properties

struct {
  accessList: []const AccessList
  gasUsed: Gwei
}

TransactionEnvelopeSigned

Signed transaction envelope with the signature fields

Properties

union(enum) {
  berlin: BerlinTransactionEnvelopeSigned
  cancun: CancunTransactionEnvelopeSigned
  eip7702: Eip7702TransactionEnvelopeSigned
  legacy: LegacyTransactionEnvelopeSigned
  london: LondonTransactionEnvelopeSigned
}

Eip7702TransactionEnvelopeSigned

The transaction envelope from eip7702.

Properties

struct {
  chainId: u64
  nonce: u64
  maxPriorityFeePerGas: u64
  maxFeePerGas: u64
  gas: u64
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  authorizationList: []const AuthorizationPayload
  v: u2
  r: u256
  s: u256
}

CancunTransactionEnvelopeSigned

The transaction envelope from the London hardfork with the signature fields

Properties

struct {
  chainId: usize
  nonce: u64
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  gas: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  maxFeePerBlobGas: Gwei
  blobVersionedHashes: ?[]const Hash = null
  v: u2
  r: u256
  s: u256
}

LondonTransactionEnvelopeSigned

The transaction envelope from the London hardfork with the signature fields

Properties

struct {
  chainId: usize
  nonce: u64
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  gas: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  v: u2
  r: u256
  s: u256
}

BerlinTransactionEnvelopeSigned

The transaction envelope from the Berlin hardfork with the signature fields

Properties

struct {
  chainId: usize
  nonce: u64
  gas: Gwei
  gasPrice: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  accessList: []const AccessList
  v: u2
  r: u256
  s: u256
}

LegacyTransactionEnvelopeSigned

The transaction envelope from a legacy transaction with the signature fields

Properties

struct {
  chainId: usize = 0
  nonce: u64
  gas: Gwei
  gasPrice: Gwei
  to: ?Address = null
  value: Wei
  data: ?Hex = null
  v: usize
  r: ?u256
  s: ?u256
}

UnpreparedTransactionEnvelope

Same as Envelope but were all fields are optionals.

Properties

struct {
  type: TransactionTypes
  chainId: ?usize = null
  nonce: ?u64 = null
  maxFeePerBlobGas: ?Gwei = null
  maxPriorityFeePerGas: ?Gwei = null
  maxFeePerGas: ?Gwei = null
  gas: ?Gwei = null
  gasPrice: ?Gwei = null
  to: ?Address = null
  value: ?Wei = null
  data: ?Hex = null
  accessList: ?[]const AccessList = null
  blobVersionedHashes: ?[]const Hash = null
  authList: ?[]const AuthorizationPayload = null
}

LondonPendingTransaction

The representation of a London hardfork pending transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: u4
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  type: TransactionTypes
  accessList: []const AccessList
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  chainId: usize
  yParity: u1
}

LegacyPendingTransaction

The legacy representation of a pending transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: usize
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  type: TransactionTypes
  chainId: ?usize = null
}

L2Transaction

The Cancun hardfork representation of a transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: usize
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  sourceHash: ?Hash = null
  isSystemTx: ?bool = null
  index: u64
  l1BlockNumber: u64
  l1Timestamp: u64
  l1TxOrigin: ?Hash
  queueIndex: ?u64
  queueOrigin: []const u8
  rawTransaction: Hex
}

CancunTransaction

The Cancun hardfork representation of a transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: u4
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  sourceHash: ?Hash = null
  isSystemTx: ?bool = null
  type: TransactionTypes
  accessList: []const AccessList
  blobVersionedHashes: []const Hash
  maxFeePerBlobGas: Gwei
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  chainId: usize
  yParity: ?u1 = null
}

LondonTransaction

The London hardfork representation of a transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: u4
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  sourceHash: ?Hash = null
  isSystemTx: ?bool = null
  type: TransactionTypes
  accessList: []const AccessList
  maxPriorityFeePerGas: Gwei
  maxFeePerGas: Gwei
  chainId: usize
  yParity: ?u1 = null
}

BerlinTransaction

The Berlin hardfork representation of a transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: u8
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  sourceHash: ?Hash = null
  isSystemTx: ?bool = null
  type: TransactionTypes
  accessList: []const AccessList
  chainId: usize
  yParity: ?u1 = null
}

LegacyTransaction

The legacy representation of a transaction.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: usize
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  sourceHash: ?Hash = null
  isSystemTx: ?bool = null
  type: ?TransactionTypes = null
  chainId: ?usize = null
}

Transaction

All transactions objects that one might find whilest interaction with the JSON RPC server.

Properties

union(enum) {
  /// Legacy type transactions.
  legacy: LegacyTransaction
  /// Berlin hardfork transactions that might have the accessList.
  berlin: BerlinTransaction
  /// London hardfork transaction objects.
  london: LondonTransaction
  /// Cancun hardfork transactions.
  cancun: CancunTransaction
  /// L2 transaction objects
  l2_transaction: L2Transaction
  /// L2 Deposit transaction
  deposit: DepositTransactionSigned
}

LegacyReceipt

The london and other hardforks transaction receipt representation

Properties

struct {
  transactionHash: Hash
  transactionIndex: u64
  blockHash: Hash
  blockNumber: ?u64
  from: Address
  to: ?Address
  cumulativeGasUsed: Gwei
  effectiveGasPrice: Gwei
  gasUsed: Gwei
  contractAddress: ?Address
  logs: Logs
  logsBloom: Hex
  blobGasPrice: ?u64 = null
  type: ?TransactionTypes = null
  root: ?Hex = null
  status: ?bool = null
  deposit_nonce: ?usize = null
}

CancunReceipt

Cancun transaction receipt representation

Properties

struct {
  transactionHash: Hash
  transactionIndex: u64
  blockHash: Hash
  blockNumber: ?u64
  from: Address
  to: ?Address
  cumulativeGasUsed: Gwei
  effectiveGasPrice: Gwei
  blobGasPrice: Gwei
  blobGasUsed: Gwei
  gasUsed: Gwei
  contractAddress: ?Address
  logs: Logs
  logsBloom: Hex
  type: ?TransactionTypes = null
  root: ?Hex = null
  status: ?bool = null
  deposit_nonce: ?usize = null
}

OpstackReceipt

L2 transaction receipt representation

Properties

struct {
  transactionHash: Hash
  transactionIndex: u64
  blockHash: Hash
  blockNumber: ?u64
  from: Address
  to: ?Address
  gasUsed: Gwei
  cumulativeGasUsed: Gwei
  contractAddress: ?Address
  logs: Logs
  status: ?bool = null
  logsBloom: Hex
  type: ?TransactionTypes = null
  effectiveGasPrice: ?Gwei = null
  deposit_nonce: ?usize = null
  l1Fee: Wei
  l1GasPrice: Gwei
  l1GasUsed: Gwei
  l1FeeScalar: ?f64 = null
  root: ?Hex = null
}

DepositReceipt

L2 Deposit transaction receipt representation

Properties

struct {
  transactionHash: Hash
  transactionIndex: u64
  blockHash: Hash
  blockNumber: ?u64
  from: Address
  to: ?Address
  cumulativeGasUsed: Gwei
  gasUsed: Gwei
  contractAddress: ?Address
  logs: Logs
  status: ?bool = null
  logsBloom: Hex
  type: ?TransactionTypes = null
  effectiveGasPrice: ?Gwei = null
  deposit_nonce: ?usize = null
  depositNonce: ?u64
  depositNonceVersion: ?u64 = null
  root: ?Hex = null
}

ArbitrumReceipt

Arbitrum transaction receipt representation

Properties

struct {
  transactionHash: Hash
  blockHash: Hash
  blockNumber: ?u64
  logsBloom: Hex
  l1BlockNumber: Wei
  contractAddress: ?Address
  transactionIndex: u64
  gasUsedForL1: Gwei
  type: ?TransactionTypes = null
  gasUsed: Gwei
  cumulativeGasUsed: Gwei
  from: Address
  to: ?Address
  effectiveGasPrice: ?Gwei = null
  logs: Logs
  root: ?Hex = null
  status: ?bool = null
  deposit_nonce: ?usize = null
}

TransactionReceipt

All possible transaction receipts

Properties

union(enum) {
  legacy: LegacyReceipt
  cancun: CancunReceipt
  op_receipt: OpstackReceipt
  arbitrum_receipt: ArbitrumReceipt
  deposit_receipt: DepositReceipt
}

EthCall

The representation of an eth_call struct.

Properties

union(enum) {
  legacy: LegacyEthCall
  london: LondonEthCall
}

LondonEthCall

The representation of an London hardfork eth_call struct where all fields are optional These are optionals so that when we stringify we can use the option ignore_null_fields

Properties

struct {
  from: ?Address = null
  maxPriorityFeePerGas: ?Gwei = null
  maxFeePerGas: ?Gwei = null
  gas: ?Gwei = null
  to: ?Address = null
  value: ?Wei = null
  data: ?Hex = null
}

LegacyEthCall

The representation of an eth_call struct where all fields are optional These are optionals so that when we stringify we can use the option ignore_null_fields

Properties

struct {
  from: ?Address = null
  gasPrice: ?Gwei = null
  gas: ?Gwei = null
  to: ?Address = null
  value: ?Wei = null
  data: ?Hex = null
}

EstimateFeeReturn

Return struct for fee estimation calculation.

Properties

union(enum) {
  london: struct {
    max_priority_fee: Gwei,
    max_fee_gas: Gwei,
}
  legacy: struct {
    gas_price: Gwei,
}
  cancun: struct {
    max_priority_fee: Gwei,
    max_fee_gas: Gwei,
    max_fee_per_blob: Gwei,
}
}

FeeHistory

Provides recent fee market data that consumers can use to determine

Properties

struct {
  /// List of each block's base fee
  baseFeePerGas: []const u256
  /// List of each block's base blob fee
  baseFeePerBlobGas: ?[]const u256 = null
  /// Ratio of gas used out of the total available limit
  gasUsedRatio: []const f64
  /// Ratio of blob gas used out of the total available limit
  blobGasUsedRatio: ?[]const f64 = null
  /// Block corresponding to first response value
  oldestBlock: u64
  /// List every txs priority fee per block
  /// Depending on the blockCount or the newestBlock this can be null
  reward: ?[]const []const u256 = null
}

DepositTransaction

Op stack deposit transaction representation.

Properties

struct {
  sourceHash: Hash
  from: Address
  to: ?Address
  mint: u256
  value: Wei
  gas: Gwei
  isSystemTx: bool
  data: ?Hex
}

DepositTransactionSigned

Op stack deposit transaction representation with the signed parameters.

Properties

struct {
  hash: Hash
  nonce: u64
  blockHash: ?Hash
  blockNumber: ?u64
  transactionIndex: ?u64
  from: Address
  to: ?Address
  value: Wei
  gasPrice: Gwei
  gas: Gwei
  input: Hex
  v: usize
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  r: u256
  /// Represented as values instead of the hash because
  /// a valid signature is not guaranteed to be 32 bits
  s: u256
  type: TransactionTypes
  sourceHash: Hex
  mint: ?u256 = null
  isSystemTx: ?bool = null
  depositReceiptVersion: ?u64 = null
}

DepositData

Op stack deposit data.

Properties

struct {
  mint: u256
  value: Wei
  gas: Gwei
  creation: bool
  data: ?Hex
}

TransactionDeposited

Op stack return type when decoding a deposit transaction from the contract.

Properties

struct {
  from: Address
  to: Address
  version: u256
  opaqueData: Hex
  logIndex: usize
  blockHash: Hash
}

DepositTransactionEnvelope

Op stack deposit envelope to be serialized.

Properties

struct {
  gas: ?Gwei = null
  mint: ?Wei = null
  value: ?Wei = null
  creation: bool = false
  data: ?Hex = null
  to: ?Address = null
}