Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/Transaction

primitives/Transaction

Namespaces

Enumerations

Type

Defined in: src/primitives/Transaction/types.ts:7 Transaction type discriminator

Enumeration Members

EIP1559
EIP1559: 2
Defined in: src/primitives/Transaction/types.ts:10
EIP2930
EIP2930: 1
Defined in: src/primitives/Transaction/types.ts:9
EIP4844
EIP4844: 3
Defined in: src/primitives/Transaction/types.ts:11
EIP7702
EIP7702: 4
Defined in: src/primitives/Transaction/types.ts:12
Legacy
Legacy: 0
Defined in: src/primitives/Transaction/types.ts:8

Type Aliases

AccessList

AccessList = readonly AccessListItem[]
Defined in: src/primitives/Transaction/types.ts:26 Access list (array of items)

AccessListItem

AccessListItem = object
Defined in: src/primitives/Transaction/types.ts:18 Access list item for EIP-2930 and later transactions

Properties

address
address: AddressType
Defined in: src/primitives/Transaction/types.ts:19
storageKeys
storageKeys: readonly HashType[]
Defined in: src/primitives/Transaction/types.ts:20

Any

Any = Legacy | EIP2930 | EIP1559 | EIP4844 | EIP7702
Defined in: src/primitives/Transaction/types.ts:155 Any transaction type

AuthorizationList

AuthorizationList = readonly Authorization[]
Defined in: src/primitives/Transaction/types.ts:43 Authorization list (array of authorizations)

ReplaceOptions

ReplaceOptions = object
Defined in: src/primitives/Transaction/replaceWith.ts:13 Options for fee bump replacement

Properties

bumpPercentage?
optional bumpPercentage: number
Defined in: src/primitives/Transaction/replaceWith.ts:15 Increase gas price by percentage (e.g., 10 for 10% increase)
gasPrice?
optional gasPrice: bigint
Defined in: src/primitives/Transaction/replaceWith.ts:17 Explicit gas price to use (overrides bumpPercentage)
maxFeePerGas?
optional maxFeePerGas: bigint
Defined in: src/primitives/Transaction/replaceWith.ts:19 Explicit maxFeePerGas (EIP-1559+)
maxPriorityFeePerGas?
optional maxPriorityFeePerGas: bigint
Defined in: src/primitives/Transaction/replaceWith.ts:21 Explicit maxPriorityFeePerGas (EIP-1559+)

Signature

Signature = object
Defined in: src/primitives/Transaction/types.ts:53 Signature components (ECDSA secp256k1)

Properties

r
r: Uint8Array
Defined in: src/primitives/Transaction/types.ts:54
s
s: Uint8Array
Defined in: src/primitives/Transaction/types.ts:55

Transaction

Transaction = Any
Defined in: src/primitives/Transaction/Transaction.ts:138

VersionedHash

VersionedHash = HashType
Defined in: src/primitives/Transaction/types.ts:48 Versioned hash for EIP-4844 blob transactions

Functions

assertSigned()

assertSigned(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:232 Assert transaction is signed

Parameters

tx
Any

Returns

void

assertSigned_internal()

assertSigned_internal(this): void
Defined in: src/primitives/Transaction/assertSigned.ts:17 Assert transaction is signed (has non-zero signature).

Parameters

this
Any

Returns

void void

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction is not signed

Example

import { assertSigned } from './primitives/Transaction/assertSigned.js';
assertSigned.call(tx);

deserialize()

deserialize(data): Any
Defined in: src/primitives/Transaction/deserialize.ts:24 Deserialize RLP encoded transaction.

Parameters

data
Uint8Array RLP encoded transaction data

Returns

Any Deserialized transaction

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { deserialize } from './primitives/Transaction/deserialize.js';
const tx = deserialize(bytes);

detectType()

detectType(data): Type
Defined in: src/primitives/Transaction/detectType.ts:13 Detect transaction type from serialized data

Parameters

data
Uint8Array

Returns

Type

Throws

If transaction data is empty

Throws

If transaction type byte is unknown

format()

format(tx): string
Defined in: src/primitives/Transaction/Transaction.ts:197 Format transaction to human-readable string

Parameters

tx
Any

Returns

string

format_internal()

format_internal(this): string
Defined in: src/primitives/Transaction/format.ts:6 Format transaction to human-readable string

Parameters

this
Any

Returns

string

fromRpc()

fromRpc(rpc): Any
Defined in: src/primitives/Transaction/fromRpc.js:110 Parse transaction from JSON-RPC format

Parameters

rpc
RpcTransaction JSON-RPC formatted transaction

Returns

Any Parsed transaction

Example

import * as Transaction from './primitives/Transaction/index.js';
const tx = Transaction.fromRpc({
  type: '0x2',
  chainId: '0x1',
  nonce: '0x0',
  // ...
});

getAccessList()

getAccessList(tx): AccessList
Defined in: src/primitives/Transaction/Transaction.ts:218 Get access list (empty for legacy transactions)

Parameters

tx
Any

Returns

AccessList

getAccessList_internal()

getAccessList_internal(this): AccessList
Defined in: src/primitives/Transaction/getAccessList.ts:17 Get access list (empty for legacy transactions).

Parameters

this
Any

Returns

AccessList Transaction access list

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

Never throws

Example

import { getAccessList } from './primitives/Transaction/getAccessList.js';
const accessList = getAccessList.call(tx);

getAuthorizationCount()

getAuthorizationCount(tx): number
Defined in: src/primitives/Transaction/Transaction.ts:353 Get authorization count for EIP-7702 transaction

Parameters

tx
EIP7702

Returns

number

getAuthorizationCount_internal()

getAuthorizationCount_internal(this): number
Defined in: src/primitives/Transaction/getAuthorizationCount.ts:8 Get authorization count for EIP-7702 transaction

Parameters

this
EIP7702 EIP7702 transaction

Returns

number Number of authorizations

getAuthorizations()

getAuthorizations(tx): AuthorizationList
Defined in: src/primitives/Transaction/Transaction.ts:360 Get authorization list for EIP-7702 transaction

Parameters

tx
EIP7702

Returns

AuthorizationList

getAuthorizations_internal()

getAuthorizations_internal(this): AuthorizationList
Defined in: src/primitives/Transaction/getAuthorizations.ts:8 Get authorization list for EIP-7702 transaction

Parameters

this
EIP7702 EIP7702 transaction

Returns

AuthorizationList Array of authorizations

getBlobCount()

getBlobCount(tx): number
Defined in: src/primitives/Transaction/Transaction.ts:339 Get blob count for EIP-4844 transaction

Parameters

tx
EIP4844

Returns

number

getBlobCount_internal()

getBlobCount_internal(this): number
Defined in: src/primitives/Transaction/getBlobCount.ts:8 Get blob count for EIP-4844 transaction

Parameters

this
EIP4844 EIP4844 transaction

Returns

number Number of blobs

getBlobVersionedHashes()

getBlobVersionedHashes(tx): readonly HashType[]
Defined in: src/primitives/Transaction/Transaction.ts:346 Get blob versioned hashes for EIP-4844 transaction

Parameters

tx
EIP4844

Returns

readonly HashType[]

getBlobVersionedHashes_internal()

getBlobVersionedHashes_internal(this): readonly HashType[]
Defined in: src/primitives/Transaction/getBlobVersionedHashes.ts:8 Get blob versioned hashes for EIP-4844 transaction

Parameters

this
EIP4844 EIP4844 transaction

Returns

readonly HashType[] Array of versioned hashes

getChainId()

getChainId(tx): bigint | null
Defined in: src/primitives/Transaction/Transaction.ts:225 Get chain ID from transaction

Parameters

tx
Any

Returns

bigint | null

getChainId_internal()

getChainId_internal(this): bigint | null
Defined in: src/primitives/Transaction/getChainId.ts:18 Get chain ID (null for pre-EIP-155 legacy transactions).

Parameters

this
Any

Returns

bigint | null Chain ID or null for pre-EIP-155

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

Never throws

Example

import { getChainId } from './primitives/Transaction/getChainId.js';
const chainId = getChainId.call(tx);

getGasPrice()

getGasPrice(tx, baseFee?): bigint
Defined in: src/primitives/Transaction/Transaction.ts:204 Get effective gas price for transaction

Parameters

tx
Any
baseFee?
bigint

Returns

bigint

getGasPrice_internal()

getGasPrice_internal(this, baseFee?): bigint
Defined in: src/primitives/Transaction/getGasPrice.ts:32 Get transaction gas price (handles different types).

Parameters

this
Any
baseFee?
bigint Optional base fee for EIP-1559 transactions

Returns

bigint Gas price

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If baseFee is missing for EIP-1559+ transactions

Throws

If transaction type is unknown

Example

import { getGasPrice } from './primitives/Transaction/getGasPrice.js';
const gasPrice = getGasPrice.call(tx, 20n);

getRecipient()

getRecipient(tx): AddressType | null
Defined in: src/primitives/Transaction/Transaction.ts:246 Get recipient address from transaction

Parameters

tx
Any

Returns

AddressType | null

getRecipient_internal()

getRecipient_internal(this): AddressType | null
Defined in: src/primitives/Transaction/getRecipient.ts:20 Get recipient address from transaction. Returns the to field of the transaction. For contract creation transactions where to is null, this returns null.

Parameters

this
Any Transaction

Returns

AddressType | null Recipient address or null for contract creation

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Example

import { getRecipient } from './primitives/Transaction/getRecipient.js';
const recipient = getRecipient.call(tx);

getSender()

getSender(tx): AddressType
Defined in: src/primitives/Transaction/Transaction.ts:183 Get sender address from transaction signature

Parameters

tx
Any

Returns

AddressType

getSender_internal()

getSender_internal(this): AddressType
Defined in: src/primitives/Transaction/getSender.ts:23 Get sender address from transaction signature.

Parameters

this
Any

Returns

AddressType Sender address

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { getSender } from './primitives/Transaction/getSender.js';
const sender = getSender.call(tx);

getSigningHash()

getSigningHash(tx): HashType
Defined in: src/primitives/Transaction/Transaction.ts:176 Get signing hash for transaction

Parameters

tx
Any

Returns

HashType

getSigningHash_internal()

getSigningHash_internal(this): HashType
Defined in: src/primitives/Transaction/getSigningHash.ts:23 Get signing hash for transaction.

Parameters

this
Any

Returns

HashType Signing hash

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { getSigningHash } from './primitives/Transaction/getSigningHash.js';
const signingHash = getSigningHash.call(tx);

hasAccessList()

hasAccessList(tx): boolean
Defined in: src/primitives/Transaction/Transaction.ts:211 Check if transaction has access list

Parameters

tx
Any

Returns

boolean

hasAccessList_internal()

hasAccessList_internal(this): boolean
Defined in: src/primitives/Transaction/hasAccessList.ts:7 Check if transaction has access list

Parameters

this
Any

Returns

boolean

hash()

hash(tx): HashType
Defined in: src/primitives/Transaction/Transaction.ts:169 Compute transaction hash

Parameters

tx
Any

Returns

HashType

hash_internal()

hash_internal(this): HashType
Defined in: src/primitives/Transaction/hash.ts:23 Compute transaction hash.

Parameters

this
Any

Returns

HashType Transaction hash

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { hash } from './primitives/Transaction/hash.js';
const txHash = hash.call(tx);

isContractCall()

isContractCall(tx): boolean
Defined in: src/primitives/Transaction/Transaction.ts:260 Check if transaction is a contract call

Parameters

tx
Any

Returns

boolean

isContractCall_internal()

isContractCall_internal(this): boolean
Defined in: src/primitives/Transaction/isContractCall.ts:7 Check if transaction is a contract call

Parameters

this
Transaction
data
Uint8Array
to
any

Returns

boolean True if to exists and data is present

isContractCreation()

isContractCreation(tx): boolean
Defined in: src/primitives/Transaction/Transaction.ts:253 Check if transaction is a contract creation

Parameters

tx
Any

Returns

boolean

isContractCreation_internal()

isContractCreation_internal(this): boolean
Defined in: src/primitives/Transaction/isContractCreation.ts:7 Check if transaction is a contract creation

Parameters

this
Transaction
to
any

Returns

boolean True if to field is null

isEIP1559()

isEIP1559(tx): tx is EIP1559
Defined in: src/primitives/Transaction/typeGuards.ts:32 Check if transaction is EIP-1559 type

Parameters

tx
Any

Returns

tx is EIP1559

isEIP2930()

isEIP2930(tx): tx is EIP2930
Defined in: src/primitives/Transaction/typeGuards.ts:25 Check if transaction is EIP-2930 type

Parameters

tx
Any

Returns

tx is EIP2930

isEIP4844()

isEIP4844(tx): tx is EIP4844
Defined in: src/primitives/Transaction/typeGuards.ts:39 Check if transaction is EIP-4844 type

Parameters

tx
Any

Returns

tx is EIP4844

isEIP7702()

isEIP7702(tx): tx is EIP7702
Defined in: src/primitives/Transaction/typeGuards.ts:46 Check if transaction is EIP-7702 type

Parameters

tx
Any

Returns

tx is EIP7702

isLegacy()

isLegacy(tx): tx is Legacy
Defined in: src/primitives/Transaction/typeGuards.ts:18 Check if transaction is Legacy type

Parameters

tx
Any

Returns

tx is Legacy

isSigned()

isSigned(tx): boolean
Defined in: src/primitives/Transaction/Transaction.ts:239 Check if transaction is signed

Parameters

tx
Any

Returns

boolean

isSigned_internal()

isSigned_internal(this): boolean
Defined in: src/primitives/Transaction/isSigned.ts:17 Check if transaction is signed.

Parameters

this
Any

Returns

boolean True if transaction has valid signature

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

Never throws

Example

import { isSigned } from './primitives/Transaction/isSigned.js';
const signed = isSigned.call(tx);

replaceWith()

replaceWith(tx, options?): Any
Defined in: src/primitives/Transaction/Transaction.ts:332 Return new transaction with fee bump for replacement

Parameters

tx
Any
options?
ReplaceOptions

Returns

Any

replaceWith_internal()

replaceWith_internal(this, options): Any
Defined in: src/primitives/Transaction/replaceWith.ts:30 Return new transaction with fee bump for replacement

Parameters

this
Any Transaction
options
ReplaceOptions = {} Replacement options

Returns

Any New transaction with increased fees

serialize()

serialize(tx): Uint8Array
Defined in: src/primitives/Transaction/Transaction.ts:162 Serialize transaction to RLP encoded bytes

Parameters

tx
Any

Returns

Uint8Array

serialize_internal()

serialize_internal(this): Uint8Array
Defined in: src/primitives/Transaction/serialize.ts:22 Serialize transaction to RLP encoded bytes.

Parameters

this
Any

Returns

Uint8Array RLP encoded transaction

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { serialize } from './primitives/Transaction/serialize.js';
const bytes = serialize.call(tx);

toRpc()

toRpc(tx): object
Defined in: src/primitives/Transaction/toRpc.js:46 Convert transaction to JSON-RPC format

Parameters

tx
Any Transaction to convert

Returns

object JSON-RPC formatted transaction

Example

import * as Transaction from './primitives/Transaction/index.js';
const tx = Transaction.deserialize(serialized);
const rpc = Transaction.toRpc(tx);
// { type: '0x2', chainId: '0x1', nonce: '0x0', ... }

validateChainId()

validateChainId(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:295 Validate chain ID is present

Parameters

tx
Any

Returns

void

validateChainId_internal()

validateChainId_internal(this): void
Defined in: src/primitives/Transaction/validateChainId.ts:9 Validate chain ID is present

Parameters

this
Transaction EIP2930 | EIP1559 | EIP4844 | EIP7702

Returns

void

Throws

If chainId is missing or invalid

validateGasLimit()

validateGasLimit(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:274 Validate gas limit is valid

Parameters

tx
Any

Returns

void

validateGasLimit_internal()

validateGasLimit_internal(this): void
Defined in: src/primitives/Transaction/validateGasLimit.ts:8 Validate gas limit is valid

Parameters

this
Transaction
gasLimit
bigint

Returns

void

Throws

If gas limit is non-positive or exceeds maximum

validateGasPrice()

validateGasPrice(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:267 Validate gas price is reasonable

Parameters

tx
Any

Returns

void

validateGasPrice_internal()

validateGasPrice_internal(this): void
Defined in: src/primitives/Transaction/validateGasPrice.ts:9 Validate gas price is reasonable

Parameters

this
Transaction Legacy | EIP2930 | EIP1559 | EIP4844 | EIP7702

Returns

void

Throws

If gas price or fee values are invalid

validateNonce()

validateNonce(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:281 Validate nonce format

Parameters

tx
Any

Returns

void

validateNonce_internal()

validateNonce_internal(this): void
Defined in: src/primitives/Transaction/validateNonce.ts:8 Validate nonce format

Parameters

this
Transaction
nonce
bigint

Returns

void

Throws

If nonce is negative

validateValue()

validateValue(tx): void
Defined in: src/primitives/Transaction/Transaction.ts:288 Validate value is valid

Parameters

tx
Any

Returns

void

validateValue_internal()

validateValue_internal(this): void
Defined in: src/primitives/Transaction/validateValue.ts:8 Validate value is valid

Parameters

this
Transaction
value
bigint

Returns

void

Throws

If value is negative

verifySignature()

verifySignature(tx): boolean
Defined in: src/primitives/Transaction/Transaction.ts:190 Verify transaction signature

Parameters

tx
Any

Returns

boolean

verifySignature_internal()

verifySignature_internal(this): boolean
Defined in: src/primitives/Transaction/verifySignature.ts:27 Verify transaction signature.

Parameters

this
Any

Returns

boolean True if signature is valid

See

https://voltaire.tevm.sh/primitives/transaction for Transaction documentation

Since

0.0.0

Throws

If transaction type is unknown or unsupported

Example

import { verifySignature } from './primitives/Transaction/verifySignature.js';
const isValid = verifySignature.call(tx);

withData()

withData(tx, data): Any
Defined in: src/primitives/Transaction/Transaction.ts:325 Return new transaction with updated data

Parameters

tx
Any
data
Uint8Array

Returns

Any

withData_internal()

withData_internal(this, data): Any
Defined in: src/primitives/Transaction/withData.ts:9 Return new transaction with updated data

Parameters

this
Any Transaction
data
Uint8Array New data value

Returns

Any New transaction with updated data

withGasLimit()

withGasLimit(tx, gasLimit): Any
Defined in: src/primitives/Transaction/Transaction.ts:311 Return new transaction with updated gas limit

Parameters

tx
Any
gasLimit
bigint

Returns

Any

withGasLimit_internal()

withGasLimit_internal(this, gasLimit): Any
Defined in: src/primitives/Transaction/withGasLimit.ts:9 Return new transaction with updated gas limit

Parameters

this
Any Transaction
gasLimit
bigint New gas limit value

Returns

Any New transaction with updated gas limit

withGasPrice()

withGasPrice(tx, gasPrice): Any
Defined in: src/primitives/Transaction/Transaction.ts:318 Return new transaction with updated gas price

Parameters

tx
Any
gasPrice
bigint

Returns

Any

withGasPrice_internal()

withGasPrice_internal(this, gasPrice): Any
Defined in: src/primitives/Transaction/withGasPrice.ts:17 Return new transaction with updated gas price For EIP-1559+ transactions, updates maxFeePerGas

Parameters

this
Any Transaction
gasPrice
bigint New gas price value

Returns

Any New transaction with updated gas price

withNonce()

withNonce(tx, nonce): Any
Defined in: src/primitives/Transaction/Transaction.ts:304 Return new transaction with updated nonce

Parameters

tx
Any
nonce
bigint

Returns

Any

withNonce_internal()

withNonce_internal(this, nonce): Any
Defined in: src/primitives/Transaction/withNonce.ts:9 Return new transaction with updated nonce

Parameters

this
Any Transaction
nonce
bigint New nonce value

Returns

Any New transaction with updated nonce