Skip to main content

Class: CustomContract\<A>

Type Parameters​

• A extends Abi

Constructors​

new CustomContract()​

new CustomContract\<A>(address, abi, config): CustomContract\<A>

Creates a new instance of a custom contract

This is your main entry point to talk to the Colony Network Smart Contracts. From here you should be able to instantiate all the required instances for Colonies and their extensions.

Parameters​

address​

`0x${string}`

Address of the deployed contract

abi​

A

JSON ABI of the contract

config​

ContractConfig

An instance of a ContractConfig (mind: not ContractOptions!)

Returns​

CustomContract\<A>

A CustomContract instance

Properties​

address​

address: `0x${string}`


config​

config: ContractConfig

Methods​

createTxCreator()​

createTxCreator\<M, E>(method, args, eventData?, txConfig?): CustomTxCreator\<A, M, E>

Creates a new CustomTxCreator for custom, permissioned transactions or metatransactions

Type Parameters​

• M extends string

• E extends EventData

Parameters​

method​

M

The transaction method to execute on the contract

args​

{ [key in string | number | symbol]: { [key in string | number | symbol]: AbiParameterToPrimitiveType\<Extract\<Extract\<A[number], { stateMutability: AbiStateMutability; type: "function" }>, { name: M }>["inputs"][key\<key>], "inputs"> }[key] }

The arguments for the method

eventData?​

(receipt) => Promise\<E>

A function that extracts the relevant event data from the ContractReceipt

txConfig?​

TxConfig

More configuration options, like MetadataType if the event contains metadata or if methods are unsupported

Returns​

CustomTxCreator\<A, M, E>

A CustomTxCreator


read()​

read\<M>(method, args): Promise\<{ [key in string | number | symbol]: { [key in string | number | symbol]: AbiParameterToPrimitiveType\<ExtractAbiFunction\<A, M>["outputs"][key\<key>], "outputs"> }[key] }[0]>

Read a contract value

Type Parameters​

• M extends string

Parameters​

method​

M

The pure/view method to read from the contract

args​

{ [key in string | number | symbol]: { [key in string | number | symbol]: AbiParameterToPrimitiveType\<ExtractAbiFunction\<A, M>["inputs"][key\<key>], "inputs"> }[key] }

The arguments for the method

Returns​

Promise\<{ [key in string | number | symbol]: { [key in string | number | symbol]: AbiParameterToPrimitiveType\<ExtractAbiFunction\<A, M>["outputs"][key\<key>], "outputs"> }[key] }[0]>

A promise resolving into the specific type for the contract return value