ethereumjs-monorepo

@ethereumjs/tx


@ethereumjs/tx / Blob4844Tx

Class: Blob4844Tx

Defined in: 4844/tx.ts:64

Typed transaction with a new gas fee market mechanism for transactions that include “blobs” of data

This tx type has two “modes”: the plain canonical format only contains blobVersionedHashes. If blobs are passed in the tx automatically switches to “Network Wrapper” format and the networkWrapperVersion will be set or validated.

Implements

Constructors

Constructor

new Blob4844Tx(txData, opts): Blob4844Tx

Defined in: 4844/tx.ts:120

This constructor takes the values, validates them, assigns them and freezes the object.

It is not recommended to use this constructor directly. Instead use the static constructors or factory methods to assist in creating a Transaction object from varying data types.

Parameters

txData

BlobEIP4844TxData

opts

TxOptions = {}

Returns

Blob4844Tx

Properties

accessList

readonly accessList: AccessListBytes

Defined in: 4844/tx.ts:73


blobs?

optional blobs: `0x${string}`[]

Defined in: 4844/tx.ts:96


blobVersionedHashes

blobVersionedHashes: `0x${string}`[]

Defined in: 4844/tx.ts:78


cache

readonly cache: TransactionCache = {}

Defined in: 4844/tx.ts:104

Implementation of

TransactionInterface.cache


chainId

readonly chainId: bigint

Defined in: 4844/tx.ts:74


common

readonly common: Common

Defined in: 4844/tx.ts:100

Implementation of

TransactionInterface.common


data

readonly data: Uint8Array

Defined in: 4844/tx.ts:71

Implementation of

TransactionInterface.data


gasLimit

readonly gasLimit: bigint

Defined in: 4844/tx.ts:69

Implementation of

TransactionInterface.gasLimit


kzgCommitments?

optional kzgCommitments: `0x${string}`[]

Defined in: 4844/tx.ts:97


kzgProofs?

optional kzgProofs: `0x${string}`[]

Defined in: 4844/tx.ts:98


maxFeePerBlobGas

readonly maxFeePerBlobGas: bigint

Defined in: 4844/tx.ts:77


maxFeePerGas

readonly maxFeePerGas: bigint

Defined in: 4844/tx.ts:76


maxPriorityFeePerGas

readonly maxPriorityFeePerGas: bigint

Defined in: 4844/tx.ts:75


networkWrapperVersion?

optional networkWrapperVersion: NetworkWrapperType

Defined in: 4844/tx.ts:93

This property is set if the tx is in “Network Wrapper” format.

Possible values:


nonce

readonly nonce: bigint

Defined in: 4844/tx.ts:68

Implementation of

TransactionInterface.nonce


r?

readonly optional r: bigint

Defined in: 4844/tx.ts:82

Implementation of

TransactionInterface.r


s?

readonly optional s: bigint

Defined in: 4844/tx.ts:83

Implementation of

TransactionInterface.s


to?

readonly optional to: Address

Defined in: 4844/tx.ts:72

Implementation of

TransactionInterface.to


txOptions

readonly txOptions: TxOptions

Defined in: 4844/tx.ts:102

Implementation of

TransactionInterface.txOptions


type

type: 3 = TransactionType.BlobEIP4844

Defined in: 4844/tx.ts:65

Implementation of

TransactionInterface.type


v?

readonly optional v: bigint

Defined in: 4844/tx.ts:81

Implementation of

TransactionInterface.v


value

readonly value: bigint

Defined in: 4844/tx.ts:70

Implementation of

TransactionInterface.value

Methods

addSignature()

addSignature(v, r, s): Blob4844Tx

Defined in: 4844/tx.ts:532

Adds signature values (and optional network wrapper fields) and returns a new transaction.

Parameters

v

bigint

Recovery parameter

r

Signature r value

bigint Uint8Array<ArrayBufferLike>
s

Signature s value

bigint Uint8Array<ArrayBufferLike>

Returns

Blob4844Tx

New Blob4844Tx instance containing the signature

Implementation of

TransactionInterface.addSignature


errorStr()

errorStr(): string

Defined in: 4844/tx.ts:620

Return a compact error string representation of the object

Returns

string

Human-readable error summary

Implementation of

TransactionInterface.errorStr


getDataGas()

getDataGas(): bigint

Defined in: 4844/tx.ts:346

The amount of gas paid for the data in this tx

Returns

bigint

Implementation of

TransactionInterface.getDataGas


getEffectivePriorityFee()

getEffectivePriorityFee(baseFee): bigint

Defined in: 4844/tx.ts:339

Returns the minimum of calculated priority fee (from maxFeePerGas and baseFee) and maxPriorityFeePerGas

Parameters

baseFee

bigint

Base fee retrieved from block

Returns

bigint


getHashedMessageToSign()

getHashedMessageToSign(): Uint8Array

Defined in: 4844/tx.ts:475

Returns the hashed serialized unsigned tx, which can be used to sign the transaction (e.g. for sending to a hardware wallet).

Note: in contrast to the legacy tx the raw message format is already serialized and doesn’t need to be RLP encoded any more.

Returns

Uint8Array

Keccak hash of the unsigned transaction payload

Implementation of

TransactionInterface.getHashedMessageToSign


getIntrinsicGas()

getIntrinsicGas(): bigint

Defined in: 4844/tx.ts:370

The minimum gas limit which the tx to have to be valid. This covers costs as the standard fee (21000 gas), the data fee (paid for each calldata byte), the optional creation fee (if the transaction creates a contract), and if relevant the gas to be paid for access lists (EIP-2930) and authority lists (EIP-7702).

Returns

bigint

Implementation of

TransactionInterface.getIntrinsicGas


getMessageToSign()

getMessageToSign(): Uint8Array

Defined in: 4844/tx.ts:463

Returns the raw serialized unsigned tx, which can be used to sign the transaction (e.g. for sending to a hardware wallet).

Note: in contrast to the legacy tx the raw message format is already serialized and doesn’t need to be RLP encoded any more.

const serializedMessage = tx.getMessageToSign() // use this for the HW wallet input

Returns

Uint8Array

Serialized unsigned transaction payload

Implementation of

TransactionInterface.getMessageToSign


getMessageToVerifySignature()

getMessageToVerifySignature(): Uint8Array

Defined in: 4844/tx.ts:494

Returns the hashed unsigned transaction that should be used for signature verification.

Returns

Uint8Array

Hash of the unsigned transaction payload

Implementation of

TransactionInterface.getMessageToVerifySignature


getSenderAddress()

getSenderAddress(): Address

Defined in: 4844/tx.ts:589

Returns the recovered sender address.

Returns

Address

Sender Address

Implementation of

TransactionInterface.getSenderAddress


getSenderPublicKey()

getSenderPublicKey(): Uint8Array

Defined in: 4844/tx.ts:502

Returns the public key of the sender

Returns

Uint8Array

Sender public key

Implementation of

TransactionInterface.getSenderPublicKey


getUpfrontCost()

getUpfrontCost(baseFee): bigint

Defined in: 4844/tx.ts:354

The up front amount that an account must have for this transaction to be valid

Parameters

baseFee

bigint = BIGINT_0

The base fee of the block (will be set to 0 if not provided)

Returns

bigint

Implementation of

TransactionInterface.getUpfrontCost


getValidationErrors()

getValidationErrors(): string[]

Defined in: 4844/tx.ts:566

Returns validation errors for this transaction, if any.

Returns

string[]

Array of validation error messages

Implementation of

TransactionInterface.getValidationErrors


hash()

hash(): Uint8Array

Defined in: 4844/tx.ts:486

Computes a sha3-256 hash of the serialized tx.

This method can only be used for signed txs (it throws otherwise). Use Blob4844Tx.getMessageToSign to get a tx hash for the purpose of signing.

Returns

Uint8Array

Hash of the serialized signed transaction

Implementation of

TransactionInterface.hash


isSigned()

isSigned(): boolean

Defined in: 4844/tx.ts:607

Indicates whether the transaction already carries signature values.

Returns

boolean

true if signature parts are present

Implementation of

TransactionInterface.isSigned


isValid()

isValid(): boolean

Defined in: 4844/tx.ts:573

Returns

boolean

true if the transaction has no validation errors

Implementation of

TransactionInterface.isValid


numBlobs()

numBlobs(): number

Defined in: 4844/tx.ts:629

Returns

number

the number of blobs included with this transaction


raw()

raw(): BlobEIP4844TxValuesArray

Defined in: 4844/tx.ts:387

Returns a Uint8Array Array of the raw Bytes of the EIP-4844 transaction, in order.

Format: [chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s]`.

Use Blob4844Tx.serialize to add a transaction to a block with createBlockFromBytesArray.

For an unsigned tx this method uses the empty Bytes values for the signature parameters v, r and s for encoding. For an EIP-155 compliant representation for external signing use Blob4844Tx.getMessageToSign.

Returns

BlobEIP4844TxValuesArray

Implementation of

TransactionInterface.raw


serialize()

serialize(): Uint8Array

Defined in: 4844/tx.ts:416

Returns the serialized encoding of the EIP-4844 transaction.

Format: 0x03 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s]).

Note that in contrast to the legacy tx serialization format this is not valid RLP any more due to the raw tx type preceding and concatenated to the RLP encoding of the values.

Returns

Uint8Array

Implementation of

TransactionInterface.serialize


serializeNetworkWrapper()

serializeNetworkWrapper(): Uint8Array

Defined in: 4844/tx.ts:425

Returns

Uint8Array

the serialized form of a blob transaction in the network wrapper format This format is used for gossipping mempool transactions over devp2p or when submitting a transaction via RPC.


sign()

sign(privateKey, extraEntropy): Blob4844Tx

Defined in: 4844/tx.ts:599

Signs the transaction with the provided private key and returns the signed instance.

Parameters

privateKey

Uint8Array

32-byte private key used for signing

extraEntropy

Optional entropy passed to the signing routine

boolean Uint8Array<ArrayBufferLike>

Returns

Blob4844Tx

Newly signed transaction

Implementation of

TransactionInterface.sign


supports()

supports(capability): boolean

Defined in: 4844/tx.ts:331

Checks if a tx type defining capability is active on a tx, for example the EIP-1559 fee market mechanism or the EIP-2930 access list feature.

Note that this is different from the tx type itself, so EIP-2930 access lists can very well be active on an EIP-1559 tx for example.

This method can be useful for feature checks if the tx type is unknown (e.g. when instantiated with the tx factory).

See Capabilities in the types module for a reference on all supported capabilities.

Parameters

capability

number

Returns

boolean

Implementation of

TransactionInterface.supports


toCreationAddress()

toCreationAddress(): never

Defined in: 4844/tx.ts:360

Blob4844Tx cannot create contracts

Returns

never

Implementation of

TransactionInterface.toCreationAddress


toJSON()

toJSON(): JSONTx

Defined in: 4844/tx.ts:510

Produces a JSON representation compliant with the execution API.

Returns

JSONTx

JSON encoding of the transaction

Implementation of

TransactionInterface.toJSON


verifySignature()

verifySignature(): boolean

Defined in: 4844/tx.ts:581

Verifies whether the attached signature is valid.

Returns

boolean

true if signature verification succeeds

Implementation of

TransactionInterface.verifySignature