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

EIP4844

Classes

TransactionEIP4844

Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:56 Factory function for creating EIP-4844 Transaction instances

Constructors

Constructor
new TransactionEIP4844(tx): TransactionEIP4844
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:56 Factory function for creating EIP-4844 Transaction instances
Parameters
tx
any
Returns
TransactionEIP4844

Properties

getBlobGasCost()
getBlobGasCost: (tx, blobBaseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:99 Calculate total blob gas cost.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
blobBaseFee
bigint Blob base fee per gas
Returns
bigint Total blob gas cost
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getBlobGasCost } from './primitives/Transaction/EIP4844/getBlobGasCost.js';
const cost = getBlobGasCost(tx, 1000000n);
getEffectiveGasPrice()
getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:97 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
baseFee
bigint Base fee per gas
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/EIP4844/getEffectiveGasPrice.js';
const price = getEffectiveGasPrice(tx, 1000000000n);
getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:93 Get sender address from signature.
Parameters
tx
TransactionEIP4844Type EIP-4844 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/EIP4844/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:91
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:90
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:88 Serialize EIP-4844 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
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/EIP4844/serialize.js';
const encoded = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:95
Parameters
tx
TransactionEIP4844Type
Returns
boolean
getBlobGasCost()
static getBlobGasCost: (tx, blobBaseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:86 Calculate total blob gas cost.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
blobBaseFee
bigint Blob base fee per gas
Returns
bigint Total blob gas cost
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getBlobGasCost } from './primitives/Transaction/EIP4844/getBlobGasCost.js';
const cost = getBlobGasCost(tx, 1000000n);
getEffectiveGasPrice()
static getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:85 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
baseFee
bigint Base fee per gas
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/EIP4844/getEffectiveGasPrice.js';
const price = getEffectiveGasPrice(tx, 1000000000n);
getSender()
static getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:83 Get sender address from signature.
Parameters
tx
TransactionEIP4844Type EIP-4844 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/EIP4844/getSender.js';
const sender = getSender(tx);
getSigningHash()
static getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:82
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
hash()
static hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:81
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
serialize()
static serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:80 Serialize EIP-4844 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
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/EIP4844/serialize.js';
const encoded = serialize(tx);
verifySignature()
static verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:84
Parameters
tx
TransactionEIP4844Type
Returns
boolean

Interfaces

TransactionEIP4844Constructor()

Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:22
TransactionEIP4844Constructor(tx): TransactionEIP4844Prototype
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:23

Parameters

tx
accessList
AccessList
blobVersionedHashes
readonly HashType[]
chainId
bigint
data
Uint8Array
gasLimit
bigint
maxFeePerBlobGas
bigint
maxFeePerGas
bigint
maxPriorityFeePerGas
bigint
nonce
bigint
r
Uint8Array
s
Uint8Array
to
AddressType
value
bigint
yParity
number

Returns

TransactionEIP4844Prototype

Properties

getBlobGasCost()
getBlobGasCost: (tx, blobBaseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:47 Calculate total blob gas cost.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
blobBaseFee
bigint Blob base fee per gas
Returns
bigint Total blob gas cost
See
https://voltaire.tevm.sh/primitives/transaction for Transaction documentation
Since
0.0.0
Throws
Never throws
Example
import { getBlobGasCost } from './primitives/Transaction/EIP4844/getBlobGasCost.js';
const cost = getBlobGasCost(tx, 1000000n);
getEffectiveGasPrice()
getEffectiveGasPrice: (tx, baseFee) => bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:46 Calculate effective gas price given base fee.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
baseFee
bigint Base fee per gas
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/EIP4844/getEffectiveGasPrice.js';
const price = getEffectiveGasPrice(tx, 1000000000n);
getSender()
getSender: (tx) => AddressType
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:44 Get sender address from signature.
Parameters
tx
TransactionEIP4844Type EIP-4844 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/EIP4844/getSender.js';
const sender = getSender(tx);
getSigningHash()
getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:43
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
hash()
hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:42
Parameters
tx
TransactionEIP4844Type
Returns
Uint8Array
prototype
prototype: TransactionEIP4844Prototype
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:39
serialize()
serialize: (tx) => Uint8Array<ArrayBufferLike>
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:41 Serialize EIP-4844 transaction to RLP encoded bytes.
Parameters
tx
TransactionEIP4844Type EIP-4844 transaction
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/EIP4844/serialize.js';
const encoded = serialize(tx);
verifySignature()
verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:45
Parameters
tx
TransactionEIP4844Type
Returns
boolean

Methods

deserialize()
deserialize(bytes): TransactionEIP4844Prototype
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Constructor.ts:40
Parameters
bytes
Uint8Array
Returns
TransactionEIP4844Prototype

Type Aliases

TransactionEIP4844Type

TransactionEIP4844Type = object
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:8 EIP-4844 Transaction type

Properties

[brand]
readonly [brand]: "TransactionEIP4844"
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:9
accessList
accessList: AccessList
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:19
blobVersionedHashes
blobVersionedHashes: readonly VersionedHash[]
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:21
chainId
chainId: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:11
data
data: Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:18
gasLimit
gasLimit: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:15
maxFeePerBlobGas
maxFeePerBlobGas: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:20
maxFeePerGas
maxFeePerGas: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:14
maxPriorityFeePerGas
maxPriorityFeePerGas: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:13
nonce
nonce: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:12
r
r: Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:23
s
s: Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:24
to
to: AddressType
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:16
type
type: EIP4844
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:10
value
value: bigint
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:17
yParity
yParity: number
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844Type.ts:22

Variables

getSigningHash()

const getSigningHash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:22

Parameters

tx
TransactionEIP4844Type

Returns

Uint8Array

hash()

const hash: (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:23

Parameters

tx
TransactionEIP4844Type

Returns

Uint8Array

verifySignature()

const verifySignature: (tx) => boolean
Defined in: src/primitives/Transaction/EIP4844/TransactionEIP4844.js:24

Parameters

tx
TransactionEIP4844Type

Returns

boolean

Functions

deserialize()

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

Parameters

data
Uint8Array<ArrayBufferLike> RLP encoded transaction with type prefix

Returns

EIP4844 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/EIP4844/deserialize.js';
const tx = deserialize(encodedData);

getBlobGasCost()

getBlobGasCost(tx, blobBaseFee): bigint
Defined in: src/primitives/Transaction/EIP4844/getBlobGasCost.js:16 Calculate total blob gas cost.

Parameters

tx
TransactionEIP4844Type EIP-4844 transaction
blobBaseFee
bigint Blob base fee per gas

Returns

bigint Total blob gas cost

See

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

Since

0.0.0

Throws

Never throws

Example

import { getBlobGasCost } from './primitives/Transaction/EIP4844/getBlobGasCost.js';
const cost = getBlobGasCost(tx, 1000000n);

getEffectiveGasPrice()

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

Parameters

tx
TransactionEIP4844Type EIP-4844 transaction
baseFee
bigint Base fee per gas

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/EIP4844/getEffectiveGasPrice.js';
const price = getEffectiveGasPrice(tx, 1000000000n);

getSender()

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

Parameters

tx
TransactionEIP4844Type EIP-4844 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/EIP4844/getSender.js';
const sender = getSender(tx);

GetSigningHash()

GetSigningHash(deps): (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/getSigningHash.js:26 Factory: Get signing hash for EIP-4844 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
TransactionEIP4844Type
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/EIP4844/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 sigHash = getSigningHash(tx);

Hash()

Hash(deps): (tx) => Uint8Array
Defined in: src/primitives/Transaction/EIP4844/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
TransactionEIP4844Type
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/EIP4844/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/EIP4844/serialize.js:19 Serialize EIP-4844 transaction to RLP encoded bytes.

Parameters

tx
TransactionEIP4844Type EIP-4844 transaction

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/EIP4844/serialize.js';
const encoded = serialize(tx);

VerifySignature()

VerifySignature(deps): (tx) => boolean
Defined in: src/primitives/Transaction/EIP4844/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
TransactionEIP4844Type
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/EIP4844/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);