Skip to content

TransactionEnvelopeEip4844.from

Converts an arbitrary transaction object into an EIP-4844 Transaction Envelope.

Imports

Named
import { TransactionEnvelopeEip4844 } from 'ox'

Examples

import { Blobs, TransactionEnvelopeEip4844, Value } from 'ox'
import { kzg } from './kzg'
 
const blobs = Blobs.from('0xdeadbeef')
const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
 
const envelope = TransactionEnvelopeEip4844.from({
  chainId: 1,
  blobVersionedHashes,
  maxFeePerBlobGas: Value.fromGwei('3'),
  maxFeePerGas: Value.fromGwei('10'),
  maxPriorityFeePerGas: Value.fromGwei('1'),
  to: '0x0000000000000000000000000000000000000000',
  value: Value.fromEther('1'),
})

Attaching Signatures

It is possible to attach a signature to the transaction envelope.

import { Blobs, Secp256k1, TransactionEnvelopeEip4844, Value } from 'ox'
import { kzg } from './kzg'
 
const blobs = Blobs.from('0xdeadbeef')
const sidecars = Blobs.toSidecars(blobs, { kzg })
const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(sidecars)
 
const envelope = TransactionEnvelopeEip4844.from({
  blobVersionedHashes,
  chainId: 1,
  maxFeePerBlobGas: Value.fromGwei('3'),
  maxFeePerGas: Value.fromGwei('10'),
  maxPriorityFeePerGas: Value.fromGwei('1'),
  to: '0x0000000000000000000000000000000000000000',
  value: Value.fromEther('1'),
})
 
const signature = Secp256k1.sign({
  payload: TransactionEnvelopeEip4844.getSignPayload(envelope),
  privateKey: '0x...',
})
 
const envelope_signed = TransactionEnvelopeEip4844.from(envelope, { 
  sidecars, 
  signature, 
})
{
blobVersionedHashes: [...],
chainId: 1,
maxFeePerBlobGas: 3000000000n,
maxFeePerGas: 10000000000n,
maxPriorityFeePerGas: 1000000000n,
to: '0x0000000000000000000000000000000000000000',
type: 'eip4844',
value: 1000000000000000000n,
r: 125...n,
s: 642...n,
yParity: 0,
}

From Serialized

It is possible to instantiate an EIP-4844 Transaction Envelope from a TransactionEnvelopeEip4844.Serialized value.

import { TransactionEnvelopeEip4844 } from 'ox'
 
const envelope = TransactionEnvelopeEip4844.from('0x03f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
{
blobVersionedHashes: [...],
chainId: 1,
maxFeePerGas: 10000000000n,
to: '0x0000000000000000000000000000000000000000',
type: 'eip4844',
value: 1000000000000000000n,
}

Definition

function from<envelope, signature>(
  envelope: envelope | UnionPartialBy<TransactionEnvelopeEip4844, 'type'> | Serialized,
  options?: from.Options<signature>,
): from.ReturnType<envelope, signature>

Source: src/core/TransactionEnvelopeEip4844.ts

Parameters

envelope

  • Type: envelope | UnionPartialBy<TransactionEnvelopeEip4844, 'type'> | Serialized

The transaction object to convert.

options

  • Type: from.Options<signature>
  • Optional

Options.

options.signature

  • Type: { r: bigint; s: bigint; yParity: number; } | signature
  • Optional

Return Type

An EIP-4844 Transaction Envelope.

from.ReturnType<envelope, signature>