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

EIP7702

Classes

TransactionEIP7702

Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:54 Factory function for creating EIP-7702 Transaction instances

Constructors

Constructor
new TransactionEIP7702(tx): TransactionEIP7702
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:54 Factory function for creating EIP-7702 Transaction instances
Parameters
tx
any
Returns
TransactionEIP7702

Properties

getEffectiveGasPrice()
getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:95 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP7702Type Transaction
baseFee
bigint Current block base fee
Returns
bigint Effective gas price
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getEffectiveGasPrice } from './primitives/Transaction/EIP7702/getEffectiveGasPrice.js';
const effectivePrice = getEffectiveGasPrice(tx, 30n);
getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:91 Get sender address from signature.
Parameters
tx
TransactionEIP7702Type Transaction with signature
Returns
AddressType Recovered 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/EIP7702/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:89
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:88
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:86 Serialize EIP-7702 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP7702Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction with type prefix
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP7702/serialize.js';
const serialized = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:93
Parameters
tx
TransactionEIP7702Type
Returns
boolean
deserialize()
static deserialize: (bytes) => TransactionEIP7702Prototype
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:77
Parameters
bytes
Uint8Array
Returns
TransactionEIP7702Prototype
getEffectiveGasPrice()
static getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:83 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP7702Type Transaction
baseFee
bigint Current block base fee
Returns
bigint Effective gas price
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getEffectiveGasPrice } from './primitives/Transaction/EIP7702/getEffectiveGasPrice.js';
const effectivePrice = getEffectiveGasPrice(tx, 30n);
getSender()
static getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:81 Get sender address from signature.
Parameters
tx
TransactionEIP7702Type Transaction with signature
Returns
AddressType Recovered 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/EIP7702/getSender.js';
const sender = getSender(tx);
getSigningHash()
static getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:80
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
hash()
static hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:79
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
prototype
static prototype: object
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:74
serialize()
static serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:78 Serialize EIP-7702 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP7702Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction with type prefix
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP7702/serialize.js';
const serialized = serialize(tx);
verifySignature()
static verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:82
Parameters
tx
TransactionEIP7702Type
Returns
boolean

Interfaces

TransactionEIP7702Constructor()

Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:20
TransactionEIP7702Constructor(tx): TransactionEIP7702Prototype
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:21

Parameters

tx
accessList
AccessList
authorizationList
AuthorizationList
chainId
bigint
data
Uint8Array
gasLimit
bigint
maxFeePerGas
bigint
maxPriorityFeePerGas
bigint
nonce
bigint
r
Uint8Array
s
Uint8Array
to
AddressType | null
value
bigint
yParity
number

Returns

TransactionEIP7702Prototype

Properties

getEffectiveGasPrice()
getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:43 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP7702Type Transaction
baseFee
bigint Current block base fee
Returns
bigint Effective gas price
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getEffectiveGasPrice } from './primitives/Transaction/EIP7702/getEffectiveGasPrice.js';
const effectivePrice = getEffectiveGasPrice(tx, 30n);
getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:41 Get sender address from signature.
Parameters
tx
TransactionEIP7702Type Transaction with signature
Returns
AddressType Recovered 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/EIP7702/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:40
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:39
Parameters
tx
TransactionEIP7702Type
Returns
Uint8Array
prototype
prototype: TransactionEIP7702Prototype
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:36
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:38 Serialize EIP-7702 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP7702Type Transaction to serialize
Returns
Uint8Array<ArrayBufferLike> RLP encoded transaction with type prefix
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { serialize } from './primitives/Transaction/EIP7702/serialize.js';
const serialized = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:42
Parameters
tx
TransactionEIP7702Type
Returns
boolean

Methods

deserialize()
deserialize(bytes): TransactionEIP7702Prototype
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Constructor.ts:37
Parameters
bytes
Uint8Array
Returns
TransactionEIP7702Prototype

Type Aliases

BrandedTransactionEIP7702

BrandedTransactionEIP7702 = TransactionEIP7702Type
Defined in: src/primitives/Transaction/EIP7702/BrandedTransactionEIP7702.ts:6 Branded EIP-7702 Transaction type (alias for TransactionEIP7702Type)

TransactionEIP7702Type

TransactionEIP7702Type = object
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:8 Branded EIP-7702 Transaction type

Properties

[brand]
readonly [brand]: "TransactionEIP7702"
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:9
accessList
accessList: AccessList
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:19
authorizationList
authorizationList: AuthorizationList
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:20
chainId
chainId: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:11
data
data: Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:18
gasLimit
gasLimit: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:15
maxFeePerGas
maxFeePerGas: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:14
maxPriorityFeePerGas
maxPriorityFeePerGas: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:13
nonce
nonce: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:12
r
r: Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:22
s
s: Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:23
to
to: AddressType | null
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:16
type
type: EIP7702
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:10
value
value: bigint
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:17
yParity
yParity: number
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702Type.ts:21

Variables

getSigningHash()

const getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:21

Parameters

tx
TransactionEIP7702Type

Returns

Uint8Array

hash()

const hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:22

Parameters

tx
TransactionEIP7702Type

Returns

Uint8Array

verifySignature()

const verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP7702/TransactionEIP7702.js:23

Parameters

tx
TransactionEIP7702Type

Returns

boolean

Functions

deserialize()

deserialize(data): EIP7702
Defined in: src/primitives/Transaction/EIP7702/deserialize.js:25 Deserialize RLP encoded EIP-7702 transaction.

Parameters

data
Uint8Array<ArrayBufferLike> RLP encoded transaction bytes with type prefix

Returns

EIP7702 Deserialized transaction

See

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

Since

0.0.0

Throws

If transaction is invalid or malformed

Example

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

getEffectiveGasPrice()

getEffectiveGasPrice(tx, baseFee): bigint
Defined in: src/primitives/Transaction/EIP7702/getEffectiveGasPrice.js:16 Calculate effective gas price given base fee.

Parameters

tx
TransactionEIP7702Type Transaction
baseFee
bigint Current block base fee

Returns

bigint Effective gas price

See

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

Since

0.0.0

Throws

Never throws

Example

import { getEffectiveGasPrice } from './primitives/Transaction/EIP7702/getEffectiveGasPrice.js';
const effectivePrice = getEffectiveGasPrice(tx, 30n);

getSender()

getSender(tx): AddressType
Defined in: src/primitives/Transaction/EIP7702/getSender.js:18 Get sender address from signature.

Parameters

tx
TransactionEIP7702Type Transaction with signature

Returns

AddressType Recovered 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/EIP7702/getSender.js';
const sender = getSender(tx);

GetSigningHash()

GetSigningHash(deps): (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP7702/getSigningHash.js:31 Factory: Get signing hash.

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
TransactionEIP7702Type
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/EIP7702/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/EIP7702/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
TransactionEIP7702Type
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/EIP7702/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/EIP7702/serialize.js:24 Serialize EIP-7702 transaction to RLP encoded bytes.

Parameters

tx
TransactionEIP7702Type Transaction to serialize

Returns

Uint8Array<ArrayBufferLike> RLP encoded transaction with type prefix

See

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

Since

0.0.0

Throws

Never throws

Example

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

VerifySignature()

VerifySignature(deps): (tx) => boolean
Defined in: src/primitives/Transaction/EIP7702/verifySignature.js:38 Factory: Verify transaction signature.

Parameters

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

Returns

Function that verifies signature
(tx): boolean
Parameters
tx
TransactionEIP7702Type
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/EIP7702/verifySignature.js';
import { hash as keccak256 } from '../../../crypto/Keccak256/hash.js';
import { encode as rlpEncode } from '../../Rlp/encode.js';
import { recoverPublicKey, verify } from '../../../crypto/Secp256k1/index.js';
const verifySignature = VerifySignature({
  keccak256,
  rlpEncode,
  secp256k1RecoverPublicKey: recoverPublicKey,
  secp256k1Verify: verify
});
const isValid = verifySignature(tx);