Skip to content

AbiFunction.from

Parses an arbitrary JSON ABI Function or Human Readable ABI Function into a typed AbiFunction.AbiFunction.

Imports

Named
import { AbiFunction } from 'ox'

Examples

JSON ABIs

import { AbiFunction } from 'ox'
 
const approve = AbiFunction.from({
  type: 'function',
  name: 'approve',
  stateMutability: 'nonpayable',
  inputs: [
    {
      name: 'spender',
      type: 'address',
    },
    {
      name: 'amount',
      type: 'uint256',
    },
  ],
  outputs: [{ type: 'bool' }],
})
 
const approve: { readonly type: "function"; readonly name: "approve"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "spender"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }]; readonly outputs: readonly [...]; }
approve

Human Readable ABIs

A Human Readable ABI can be parsed into a typed ABI object:

import { AbiFunction } from 'ox'
 
const approve = AbiFunction.from(
  'function approve(address spender, uint256 amount) returns (bool)'
)
 
const approve: { readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [...]; }
approve

It is possible to specify structs along with your definitions:

import { AbiFunction } from 'ox'
 
const approve = AbiFunction.from([
  'struct Foo { address spender; uint256 amount; }',
  'function approve(Foo foo) returns (bool)',
])
 
const approve: { readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "tuple"; readonly components: readonly [{ readonly type: "address"; readonly name: "spender"; }, { ...; }]; readonly name: "foo"; }]; readonly outputs: readonly [...]; }
approve

Definition

function from<abiFunction>(
  abiFunction: (abiFunction | AbiFunction | string | readonly string[]) & ((abiFunction extends string ? internal.Signature<abiFunction> : never) | (abiFunction extends readonly string[] ? internal.Signatures<abiFunction> : never) | AbiFunction),
  options?: from.Options,
): from.ReturnType<abiFunction>

Source: src/core/AbiFunction.ts

Parameters

abiFunction

  • Type: (abiFunction | AbiFunction | string | readonly string[]) & ((abiFunction extends string ? internal.Signature<abiFunction> : never) | (abiFunction extends readonly string[] ? internal.Signatures<abiFunction> : never) | AbiFunction)

The ABI Function to parse.

options

  • Type: from.Options
  • Optional

options.prepare

  • Type: boolean
  • Optional

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

Return Type

Typed ABI Function.

from.ReturnType<abiFunction>