Skip to main content
@tevm/voltaire
@tevm/voltaire / primitives/Receipt

primitives/Receipt

Classes

InvalidReceiptError

Defined in: src/primitives/Receipt/errors.js:1

Extends

  • Error

Constructors

Constructor
new InvalidReceiptError(message, details?): InvalidReceiptError
Defined in: src/primitives/Receipt/errors.js:9
Parameters
message
string
details?
context?
Record<string, unknown>
expected?
string
value?
unknown
Returns
InvalidReceiptError
Overrides
Error.constructor

Properties

details
details: { context?: Record<string, unknown>; expected?: string; value?: unknown; } | undefined
Defined in: src/primitives/Receipt/errors.js:13
name
name: string
Defined in: src/primitives/Receipt/errors.js:11
Inherited from
Error.name

Type Aliases

ReceiptType

ReceiptType = object & object
Defined in: src/primitives/Receipt/ReceiptType.ts:15 Transaction receipt

Type Declaration

blobGasPrice?
readonly optional blobGasPrice: Type
Blob gas price (EIP-4844)
blobGasUsed?
readonly optional blobGasUsed: Type
Blob gas used (EIP-4844)
blockHash
readonly blockHash: BlockHashType
Block hash
blockNumber
readonly blockNumber: BlockNumberType
Block number
contractAddress
readonly contractAddress: AddressType | null
Contract address (non-null for creation)
cumulativeGasUsed
readonly cumulativeGasUsed: Type
Cumulative gas used in block
effectiveGasPrice
readonly effectiveGasPrice: Type
Effective gas price
from
readonly from: AddressType
Sender address
gasUsed
readonly gasUsed: Type
Gas used by this transaction
logs
readonly logs: readonly EventLogType[]
Event logs
logsBloom
readonly logsBloom: Uint8Array
Logs bloom filter (256 bytes)
root?
readonly optional root: HashType
State root (pre-Byzantium only)
status?
readonly optional status: TransactionStatusType
Transaction status (post-Byzantium)
to
readonly to: AddressType | null
Recipient address (null for contract creation)
transactionHash
readonly transactionHash: TransactionHashType
Transaction hash
transactionIndex
readonly transactionIndex: TransactionIndexType
Transaction index in block
type
readonly type: "legacy" | "eip2930" | "eip1559" | "eip4844" | "eip7702"
Transaction type

Type Declaration

[brand]
readonly [brand]: "Receipt"

Variables

from()

const from: (data) => ReceiptType = _from
Defined in: src/primitives/Receipt/index.ts:10 Create Receipt from partial data

Parameters

data
Omit<ReceiptType, typeof brand>

Returns

ReceiptType

Throws


poll()

const poll: (txHash, provider, options?) => Promise<ReceiptType> = _poll
Defined in: src/primitives/Receipt/index.ts:38 Poll for a transaction receipt until confirmed

Parameters

txHash
string Transaction hash to poll for
provider
EIP-1193 provider
request
options?
Polling options (interval, timeout, confirmations)
confirmations?
number
interval?
number
timeout?
number

Returns

Promise<ReceiptType> Promise resolving to the transaction receipt

Example

import { Receipt } from '@tevm/voltaire';

const receipt = await Receipt.poll(txHash, provider, {
  timeout: 120000,
  confirmations: 3
});

Functions

_assertValid()

_assertValid(receipt): void
Defined in: src/primitives/Receipt/assertValid.js:18 Validate receipt structure (Byzantium vs pre-Byzantium)

Parameters

receipt
ReceiptType Receipt to validate

Returns

void

Throws

If receipt has both status and root, or neither

Example

import { assertValid } from './primitives/Receipt/assertValid.js';

// Post-Byzantium (has status)
assertValid({ ...receipt, status: 1 });

// Pre-Byzantium (has root)
assertValid({ ...receipt, root: stateRoot });

_isPreByzantium()

_isPreByzantium(receipt): boolean
Defined in: src/primitives/Receipt/isPreByzantium.js:18 Check if receipt is pre-Byzantium (uses state root instead of status)

Parameters

receipt
ReceiptType Receipt to check

Returns

boolean True if receipt is pre-Byzantium

Example

import { isPreByzantium } from './primitives/Receipt/isPreByzantium.js';

// Pre-Byzantium receipt (has root)
isPreByzantium({ ...receipt, root: stateRoot }); // true

// Post-Byzantium receipt (has status)
isPreByzantium({ ...receipt, status: 1 }); // false

_poll()

_poll(txHash, provider, options?): Promise<ReceiptType>
Defined in: src/primitives/Receipt/poll.js:45 Poll for a transaction receipt until it’s available Uses exponential backoff and handles transient RPC errors gracefully.

Parameters

txHash
string Transaction hash to poll for
provider
EIP-1193 provider
request
options?
PollReceiptOptions = {} Polling options

Returns

Promise<ReceiptType> Transaction receipt

Throws

If timeout is reached before receipt is available

Example

import { poll } from '@tevm/voltaire/Receipt';

// Wait for transaction confirmation
const receipt = await poll(txHash, provider);
console.log(`Status: ${receipt.status}`);

// With custom options
const receipt = await poll(txHash, provider, {
  interval: 2000,      // Poll every 2s
  timeout: 120000,     // Wait up to 2 minutes
  confirmations: 3     // Wait for 3 confirmations
});

assertValid()

assertValid(receipt): void
Defined in: src/primitives/Receipt/index.ts:12

Parameters

receipt
ReceiptType

Returns

void

isPreByzantium()

isPreByzantium(receipt): boolean
Defined in: src/primitives/Receipt/index.ts:16

Parameters

receipt
ReceiptType

Returns

boolean

References

TransactionReceiptType

Renames and re-exports ReceiptType