Skip to content

AbiError.fromAbi

Extracts an AbiError.AbiError from an Abi.Abi given a name and optional arguments.

Imports

Named
import { AbiError } from 'ox'

Examples

Extracting by Name

ABI Errors can be extracted by their name using the name option:

import { Abi, AbiError } from 'ox'
 
const abi = Abi.from([
  'function foo()',
  'error BadSignatureV(uint8 v)',
  'function bar(string a) returns (uint256 x)',
])
 
const 
const item: { readonly name: "BadSignatureV"; readonly type: "error"; readonly inputs: readonly [...]; }
item
= AbiError.fromAbi(abi, 'BadSignatureV')

Extracting by Selector

ABI Errors can be extract by their selector when Hex.Hex is provided to name.

import { Abi, AbiError } from 'ox'
 
const abi = Abi.from([
  'function foo()',
  'error BadSignatureV(uint8 v)',
  'function bar(string a) returns (uint256 x)',
])
const 
const item: { readonly name: "BadSignatureV"; readonly type: "error"; readonly inputs: readonly [...]; } | { ...; } | { ...; }
item
= AbiError.fromAbi(abi, '0x095ea7b3')

Definition

function fromAbi<abi, name, args, allNames>(
  abi: abi | Abi.Abi | readonly unknown[],
  name: Hex.Hex | (name extends allNames ? name : never),
  options?: AbiItem.fromAbi.Options<abi, name, args, AbiItem.internal.ExtractArgs<abi, name>>,
): fromAbi.ReturnType<abi, name, args>

Source: src/AbiError.ts

Parameters

abi

  • Type: abi | Abi.Abi | readonly unknown[]

The ABI to extract from.

name

  • Type: Hex.Hex | (name extends allNames ? name : never)

The name (or selector) of the ABI item to extract.

options

  • Type: AbiItem.fromAbi.Options<abi, name, args, AbiItem.internal.ExtractArgs<abi, name>>
  • Optional

Extraction options.

options.args

  • Type: allArgs | (Widen & (args extends allArgs ? unknown : never))
  • Optional

options.prepare

  • Type: boolean
  • Optional

Whether or not to prepare the extracted item (optimization for encoding performance). When true, the hash property is computed and included in the returned value.

Return Type

The ABI item.

fromAbi.ReturnType<abi, name, args>