Interface
An Interface abstracts many of the low-level details for encoding and decoding the data on the blockchain.
An ABI provides information on how to encode data to send to a Contract, how to decode the results and events and how to interpret revert errors.
The ABI can be specified by any supported format.
Constructors
new Interface()
Create a new Interface for the fragments.
Parameters
Parameter | Type | Description |
---|---|---|
fragments | InterfaceAbi | The ABI fragments. |
Returns
Source
Properties
Property | Modifier | Type | Description |
---|---|---|---|
deploy | readonly | ConstructorFragment | The Contract constructor. |
fallback | readonly | null | FallbackFragment | The Fallback method, if any. |
fragments | readonly | readonly Fragment [] | All the Contract ABI members (i.e. methods, events, errors, etc). |
receive | readonly | boolean | If receiving ether is supported. |
Methods
decodeErrorResult()
Decodes the result data
(e.g. from an quai_call
) for the specified error (see getError
for valid values for key
).
Most developers should prefer the parseCallResult | parseCallResult method instead, which will
automatically detect a CALL_EXCEPTION
and throw the corresponding error.
Parameters
Parameter | Type |
---|---|
fragment | string | ErrorFragment |
data | BytesLike |
Returns
Source
decodeFunctionData()
Decodes the data
from a transaction tx.data
for the function specified (see
getFunction for valid values for fragment
).
Most developers should prefer the parseTransaction method instead, which will automatically detect the fragment.
Parameters
Parameter | Type |
---|---|
fragment | string | FunctionFragment |
data | BytesLike |
Returns
Source
decodeFunctionResult()
Decodes the result data
(e.g. from an quai_call
) for the specified function (see
getFunction for valid values for key
).
Most developers should prefer the parseCallResult | parseCallResult method instead, which will
automatically detect a CALL_EXCEPTION
and throw the corresponding error.
Parameters
Parameter | Type |
---|---|
fragment | string | FunctionFragment |
data | BytesLike |
Returns
Source
encodeDeploy()
Encodes a tx.data
object for deploying the Contract with the values
as the constructor arguments.
Parameters
Parameter | Type |
---|---|
values ? | readonly any [] |
Returns
string
Source
encodeErrorResult()
Encodes the transaction revert data for a call result that reverted from the the Contract with the sepcified
error
(see getError for valid values for fragment
) with the values
.
This is generally not used by most developers, unless trying to mock a result from a Contract.
Parameters
Parameter | Type |
---|---|
fragment | string | ErrorFragment |
values ? | readonly any [] |
Returns
string
Source
encodeFunctionData()
Encodes the tx.data
for a transaction that calls the function specified (see
getFunction for valid values for fragment
) with the values
.
Parameters
Parameter | Type |
---|---|
fragment | string | FunctionFragment |
values ? | readonly any [] |
Returns
string
Source
encodeFunctionResult()
Encodes the result data (e.g. from an quai_call
) for the specified function (see
getFunction for valid values for fragment
) with values
.
This is generally not used by most developers, unless trying to mock a result from a Contract.
Parameters
Parameter | Type |
---|---|
fragment | string | FunctionFragment |
values ? | readonly any [] |
Returns
string
Source
forEachError()
Iterate over all errors, calling callback
, sorted by their name.
Parameters
Parameter | Type |
---|---|
callback | (func , index ) => void |
Returns
void
Source
forEachEvent()
Iterate over all events, calling callback
, sorted by their name.
Parameters
Parameter | Type |
---|---|
callback | (func , index ) => void |
Returns
void
Source
forEachFunction()
Iterate over all functions, calling callback
, sorted by their name.
Parameters
Parameter | Type |
---|---|
callback | (func , index ) => void |
Returns
void
Source
format()
Returns the entire Human-Readable ABI, as an array of signatures, optionally as minimal
strings, which removes
parameter names and unneceesary spaces.
Parameters
Parameter | Type |
---|---|
minimal ? | boolean |
Returns
string
[]
Source
formatJson()
Return the JSON-encoded ABI. This is the format Solidiy returns.
Returns
string
Source
getAbiCoder()
The ABI coder that will be used to encode and decode binary data.
Returns
Source
getError()
Get the ErroFragment for key
, which may be an error selector, error name or error
signature that belongs to the ABI.
If values
is provided, it will use the Typed API to handle ambiguous cases where multiple errors match by name.
If the key
and values
do not refine to a single error in the ABI, this will throw.
Parameters
Parameter | Type |
---|---|
key | string |
values ? | any [] |
Returns
null
| ErrorFragment
Source
getEvent()
Get the EventFragment for key
, which may be a topic hash, event name or event
signature that belongs to the ABI.
If values
is provided, it will use the Typed API to handle ambiguous cases where multiple events match by name.
If the key
and values
do not refine to a single event in the ABI, this will throw.
Parameters
Parameter | Type |
---|---|
key | string |
values ? | any [] |
Returns
null
| EventFragment
Source
getEventName()
Get the event name for key
, which may be a topic hash, event name or event signature that belongs to the ABI.
Parameters
Parameter | Type |
---|---|
key | string |
Returns
string
Source
getFunction()
Get the FunctionFragment for key
, which may be a function selector, function name
or function signature that belongs to the ABI.
If values
is provided, it will use the Typed API to handle ambiguous cases where multiple functions match by
name.
If the key
and values
do not refine to a single function in the ABI, this will throw.
Parameters
Parameter | Type |
---|---|
key | string |
values ? | any [] |
Returns
null
| FunctionFragment
Source
getFunctionName()
Get the function name for key
, which may be a function selector, function name or function signature that
belongs to the ABI.
Parameters
Parameter | Type |
---|---|
key | string |
Returns
string
Source
hasEvent()
Returns true if key
(an event topic hash, event name or event signature) is present in the ABI.
In the case of an event name, the name may be ambiguous, so accessing the EventFragment may require refinement.
Parameters
Parameter | Type |
---|---|
key | string |
Returns
boolean
Source
hasFunction()
Returns true if key
(a function selector, function name or function signature) is present in the ABI.
In the case of a function name, the name may be ambiguous, so accessing the FunctionFragment may require refinement.
Parameters
Parameter | Type |
---|---|
key | string |
Returns
boolean
Source
parseError()
Parses a revert data, finding the matching error and extracts the parameter values along with other useful error details.
If the matching error cannot be found, returns null.
Parameters
Parameter | Type |
---|---|
data | BytesLike |
Returns
null
| ErrorDescription
Source
parseLog()
Parses a receipt log, finding the matching event and extracts the parameter values along with other useful event details.
If the matching event cannot be found, returns null.
Parameters
Parameter | Type |
---|---|
log | object |
log.data | string |
log.topics | string [] |
Returns
null
| LogDescription
Source
parseTransaction()
Parses a transaction, finding the matching function and extracts the parameter values along with other useful function details.
If the matching function cannot be found, return null.
Parameters
Parameter | Type |
---|---|
tx | object |
tx.data | string |
tx.value ? | BigNumberish |
Returns
null
| TransactionDescription
Source
from()
Creates a new Interface from the ABI value
.
The value
may be provided as an existing Interface object, a JSON-encoded ABI or any
Human-Readable ABI format.
Parameters
Parameter | Type |
---|---|
value | Interface | InterfaceAbi |
Returns
Source
Was this page helpful?