Skip to main content

Overview

Error.encodeParams returns the full revert payload for a custom error: selector + encoded parameters. This is the same format emitted by the EVM on revert with a custom error.

Quick Start

import { Abi } from '@tevm/voltaire/Abi';
import { Hex } from '@tevm/voltaire/Hex';

const InsufficientBalance = {
  type: 'error',
  name: 'InsufficientBalance',
  inputs: [
    { type: 'uint256', name: 'balance' },
    { type: 'uint256', name: 'required' }
  ]
} as const;

const data = Abi.Error.encodeParams(InsufficientBalance, [100n, 1000n]);
const hex = Hex.fromBytes(data);
// 0x<selector><encoded params>

Use in Tests

// Simulate a revert payload
const revertData = Abi.Error.encodeParams(InsufficientBalance, [100n, 1000n]);

// Later decode it
const decoded = Abi.Error.decodeParams(InsufficientBalance, revertData);
// [100n, 1000n]

Error Handling

Invalid values throw AbiEncodingError.

See Also