Skip to content

CreateContractParams

CreateContractParams<TName, TAbi, TAddress, TBytecode, TDeployedBytecode, TCode>: object | object

Parameters for creating a Contract instance. This type allows for two mutually exclusive ways of specifying the ABI: either as a human-readable ABI or as a JSON ABI.

Type Parameters

TName extends string | undefined | never

The name of the contract (optional)

TAbi extends readonly string[] | Abi

The ABI type (either string[] for human readable or Abi for JSON)

TAddress extends undefined | Address | never

The contract address type (optional)

TBytecode extends undefined | Hex | never

The contract creation bytecode type (optional)

TDeployedBytecode extends undefined | Hex | never

The deployed bytecode type (optional)

TCode extends undefined | Hex | never

The runtime bytecode type (optional)

See

CreateContract

Examples

Using human-readable ABI:

const params: CreateContractParams = {
name: 'ERC20',
humanReadableAbi: [
'function balanceOf(address owner) view returns (uint256)',
'function transfer(address to, uint256 amount) returns (bool)',
],
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
}

Using JSON ABI:

const params: CreateContractParams = {
name: 'ERC20',
abi: [
{
"inputs": [{"name": "owner", "type": "address"}],
"name": "balanceOf",
"outputs": [{"type": "uint256"}],
"stateMutability": "view",
"type": "function"
},
],
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
}

Defined in

CreateContractParams.ts:49