ethers.js/docs/api/utils/abi/README.md
2020-02-02 00:53:22 -05:00

6.4 KiB
Raw Blame History

Documentation: html

Application Binary Interface

Explain an ABI.

Formats

JSON String ABI (Solidity Output JSON)

The JSON ABI Format is the format that is output from the Solidity compiler.

A JSON serialized object is always a string, which represents an Array of Objects, where each Object has various properties describing the Fragment of the ABI.

The deserialied JSON string (which is a normal JavaScript Object) may also be passed into any function which accepts a JSON String ABI.

Humanb-Readable ABI

The Human-Readable ABI was

article

Output Formats

Each Fragment and ParamType may be output using its format method.

utils . FragmentTypes . full => string

This is a full human-readable string, including all parameter names, any optional modifiers (e.g. indexed, public, etc) and white-space to aid in human readabiliy.

utils . FragmentTypes . minimal => string

This is similar to full, except with no unnecessary whitespace or parameter names. This is useful for storing a minimal string which can still fully reconstruct the original Fragment using Fragment.from.

utils . FragmentTypes . json => string

This returns a JavaScript Object which is safe to call JSON.stringify on to create a JSON string.

utils . FragmentTypes . sighash => string

This is a minimal output format, which is used by Solidity when computing a signature hash or an event topic hash.

Note

The sighash format is insufficient to re-create the original Fragment, since it discards modifiers such as indexed, anonymous, stateMutability, etc.

Fragment

An ABI is a collection of Fragments, where each fragment specifies:

  • An Event
  • A Function
  • A Constructor

Properties

fragment . name => string

This is the name of the Event or Function. This will be null for a ConstructorFragment.

fragment . type => string

This is a string which indicates the type of the Fragment. This will be one of:

  • constructor
  • event
  • function

fragment . inputs => Array< ParamType >

This is an array of of each ParamType for the input parameters to the Constructor, Event of Function.

Methods

utils . Fragment . from ( objectOrString ) => Fragment

Returns a

utils . Fragment . isFragment ( object ) => boolean

Tra lal al

ConstructorFragment

Properties

fragment . gas => BigNumber

This is the gas limit that should be used during deployment. It may be null.

fragment . payable => boolean

This is whether the constructor may receive ether during deployment as an endowment (i.e. msg.value != 0).

fragment . stateMutability => string

This is the state mutability of the constructor. It can be any of:

  • nonpayable
  • payable

Methods

utils . ConstructorFragment . from ( objectOrString ) => ConstructorFragment

Tra la la...

utils . ConstructorFragment . isConstructorFragment ( object ) => boolean

Tra lal al

EventFragment

Properties

fragment . anonymous => boolean

This is whether the event is anonymous. An anonymous Event does not inject its topic hash as topic0 when creating a log.

Methods

utils . EventFragment . from ( objectOrString ) => EventFragment

Tra la la...

utils . EventFragment . isEventFragment ( object ) => boolean

Tra lal al

FunctionFragment

Properties

fragment . constant => boolean

This is whether the function is constant (i.e. does not change state). This is true if the state mutability is pure or view.

fragment . stateMutability => string

This is the state mutability of the constructor. It can be any of:

  • nonpayable
  • payable
  • pure
  • view

fragment . outputs => Array< ParamType >

A list of the Function output parameters.

Method

utils . FunctionFragment . from ( objectOrString ) => FunctionFragment

Tra la la...

utils . FunctionFragment . isFunctionFragment ( object ) => boolean

Tra lal al

ParamType

The following examples will represent the Solidity parameter:

string foobar

Properties

paramType . name => string

The local parameter name. This may be null for unnamed parameters. For example, the parameter definition string foobar would be foobar.

paramType . type => string

The full type of the parameter, including tuple and array symbols. This may be null for unnamed parameters. For the above example, this would be foobar.

paramType . basetype => string

The base type of the parameter. For primitive types (e.g. address, uint256, etc) this is equal to type. For arrays, it will be the string array and for a tuple, it will be the string tuple.

paramType . indexed => boolean

Whether the parameter has been marked as indexed. This only applies to parameters which are part of an EventFragment.

paramType . arrayChildren => ParamType

The type of children of the array. This is null for for any parameter wjhich is not an array.

paramType . arrayLength => number

The length of the array, or -1 for dynamic-length arrays. This is null for parameters which is not arrays.

paramType . components => Array< ParamType >

The components of a tuple. This is null for non-tuple parameters.

Methods

Tra la la...

paramType . format ( [ outputType="sighash" ] )

Tra la la...

utils . ParamType . from ( objectOrString ) => ParamType

Tra la la...

utils . ParamType . isParamType ( object ) => boolean

Tra la la...


Content Hash: cae7aa26d26d5f02ebe0f227e25759db5d2437b4104d2950b364ced87e7c83f6