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

EIP2930

Classes

TransactionEIP2930

Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:52 Factory function for creating EIP-2930 Transaction instances

Constructors

Constructor
new TransactionEIP2930(tx): TransactionEIP2930
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:52 Factory function for creating EIP-2930 Transaction instances
Parameters
tx
any
Returns
TransactionEIP2930

Properties

getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:86 Get sender address from EIP-2930 transaction signature.
Parameters
tx
TransactionEIP2930Type Transaction
Returns
AddressType Sender address
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
If signature recovery fails
Example
import { getSender } from './primitives/Transaction/EIP2930/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:84
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:83
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:81 Serialize EIP-2930 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP2930Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction bytes
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP2930/serialize.js';
const bytes = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:88
Parameters
tx
TransactionEIP2930Type
Returns
boolean
getSender()
static getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:76 Get sender address from EIP-2930 transaction signature.
Parameters
tx
TransactionEIP2930Type Transaction
Returns
AddressType Sender address
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
If signature recovery fails
Example
import { getSender } from './primitives/Transaction/EIP2930/getSender.js';
const sender = getSender(tx);
getSigningHash()
static getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:75
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
hash()
static hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:74
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
prototype
static prototype: object
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:80
serialize()
static serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:73 Serialize EIP-2930 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP2930Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction bytes
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP2930/serialize.js';
const bytes = serialize(tx);
verifySignature()
static verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:77
Parameters
tx
TransactionEIP2930Type
Returns
boolean

Interfaces

TransactionEIP2930Constructor()

Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:18
TransactionEIP2930Constructor(tx): TransactionEIP2930Prototype
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:19

Parameters

tx
accessList
AccessList
chainId
bigint
data
Uint8Array
gasLimit
bigint
gasPrice
bigint
nonce
bigint
r
Uint8Array
s
Uint8Array
to
AddressType | null
value
bigint
yParity
number

Returns

TransactionEIP2930Prototype

Properties

getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:37 Get sender address from EIP-2930 transaction signature.
Parameters
tx
TransactionEIP2930Type Transaction
Returns
AddressType Sender address
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
If signature recovery fails
Example
import { getSender } from './primitives/Transaction/EIP2930/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:36
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:35
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array
prototype
prototype: TransactionEIP2930Prototype
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:32
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:34 Serialize EIP-2930 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP2930Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction bytes
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP2930/serialize.js';
const bytes = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:38
Parameters
tx
TransactionEIP2930Type
Returns
boolean

Methods

deserialize()
deserialize(bytes): TransactionEIP2930Prototype
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Constructor.ts:33
Parameters
bytes
Uint8Array
Returns
TransactionEIP2930Prototype

Type Aliases

TransactionEIP2930Type

TransactionEIP2930Type = object
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:11 EIP-2930 Transaction type (Access List Transaction)

See

https://eips.ethereum.org/EIPS/eip-2930

Since

0.0.0

Properties

[brand]
readonly [brand]: "TransactionEIP2930"
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:12
accessList
accessList: AccessList
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:21
chainId
chainId: bigint
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:14
data
data: Uint8Array
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:20
gasLimit
gasLimit: bigint
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:17
gasPrice
gasPrice: bigint
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:16
nonce
nonce: bigint
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:15
r
r: Uint8Array
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:23
s
s: Uint8Array
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:24
to
to: AddressType | null
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:18
type
type: EIP2930
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:13
value
value: bigint
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:19
yParity
yParity: number
Defined in: src/primitives/Transaction/EIP2930/TransactionEIP2930Type.ts:22

Variables

getSigningHash()

const getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:20

Parameters

tx
TransactionEIP2930Type

Returns

Uint8Array

hash()

const hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:21

Parameters

tx
TransactionEIP2930Type

Returns

Uint8Array

verifySignature()

const verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP2930/EIP2930.js:22

Parameters

tx
TransactionEIP2930Type

Returns

boolean

Functions

deserialize()

deserialize(data): TransactionEIP2930Type
Defined in: src/primitives/Transaction/EIP2930/deserialize.js:20 Deserialize RLP encoded EIP-2930 transaction.

Parameters

data
Uint8Array<ArrayBufferLike> RLP encoded transaction bytes

Returns

TransactionEIP2930Type Deserialized transaction

See

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

Since

0.0.0

Throws

If data is invalid or malformed

Example

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

getSender()

getSender(tx): AddressType
Defined in: src/primitives/Transaction/EIP2930/getSender.js:18 Get sender address from EIP-2930 transaction signature.

Parameters

tx
TransactionEIP2930Type Transaction

Returns

AddressType Sender address

See

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

Since

0.0.0

Throws

If signature recovery fails

Example

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

GetSigningHash()

GetSigningHash(deps): (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/getSigningHash.js:30 Factory: Get signing hash for EIP-2930 transaction.

Parameters

deps
Crypto dependencies
keccak256
(data) => Uint8Array Keccak256 hash function
rlpEncode
(data) => Uint8Array RLP encode function

Returns

Function that computes signing hash
(tx): Uint8Array
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array

See

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

Since

0.0.0

Throws

Never throws

Example

import { GetSigningHash } from './primitives/Transaction/EIP2930/getSigningHash.js';
import { hash as keccak256 } from '../../../crypto/Keccak256/hash.js';
import { encode as rlpEncode } from '../../Rlp/encode.js';
const getSigningHash = GetSigningHash({ keccak256, rlpEncode });
const signingHash = getSigningHash(tx);

Hash()

Hash(deps): (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP2930/hash.js:22 Factory: Compute transaction hash.

Parameters

deps
Crypto dependencies
keccak256
(data) => Uint8Array Keccak256 hash function

Returns

Function that computes transaction hash
(tx): Uint8Array
Parameters
tx
TransactionEIP2930Type
Returns
Uint8Array

See

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

Since

0.0.0

Throws

Never throws

Example

import { Hash } from './primitives/Transaction/EIP2930/hash.js';
import { hash as keccak256 } from '../../../crypto/Keccak256/hash.js';
const hash = Hash({ keccak256 });
const txHash = hash(tx);

serialize()

serialize(tx): Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP2930/serialize.js:23 Serialize EIP-2930 transaction to RLP encoded bytes.

Parameters

tx
TransactionEIP2930Type Transaction to serialize

Returns

Uint8Array<ArrayBufferLike> RLP encoded transaction bytes

See

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

Since

0.0.0

Throws

Never throws

Example

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

VerifySignature()

VerifySignature(deps): (tx) => boolean
Defined in: src/primitives/Transaction/EIP2930/verifySignature.js:43 Factory: Verify EIP-2930 transaction signature. Verifies that the transaction signature is valid. This checks that:
  1. The signature components (r, s) are well-formed
  2. The yParity is valid
  3. A public key can be recovered from the signature
Note: This does NOT verify the transaction was signed by a specific address. It only validates the signature is cryptographically valid and can recover a sender address. To verify against an expected sender, use getSender() and compare the result.

Parameters

deps
Crypto dependencies
keccak256
(data) => Uint8Array Keccak256 hash function
rlpEncode
(data) => Uint8Array RLP encode function
secp256k1RecoverPublicKey
any secp256k1 public key recovery

Returns

Function that verifies signature
(tx): boolean
Parameters
tx
TransactionEIP2930Type
Returns
boolean

See

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

Since

0.0.0

Throws

Never throws - returns false on error

Example

import { VerifySignature } from './primitives/Transaction/EIP2930/verifySignature.js';
import { hash as keccak256 } from '../../../crypto/Keccak256/hash.js';
import { encode as rlpEncode } from '../../Rlp/encode.js';
import { recoverPublicKey } from '../../../crypto/Secp256k1/index.js';
const verifySignature = VerifySignature({
  keccak256,
  rlpEncode,
  secp256k1RecoverPublicKey: recoverPublicKey
});
const isValid = verifySignature(tx);