Load ABI

You have to reference two things in the code editor to load and access a smart contract:

  • The contract address

// SYNTAX
address(name, address).

// EXAMPLE
address(hyperdapp, '0x87A852A30f778E2837283B09E49f03200110e865').
address(hyper_dapp, '0x87A852A30f778E2837283B09E49f03200110e865').
  • The contract ABI

// SYNTAX
abi(name, [...ABI_FUNCTIONS]).

// EXAMPLE
abi(hyperdapp, [...]).
abi(hyper_dapp, [...]).

The contract name must be:

  • in snake_case OR camelCase

  • the same for both the address()and the abi()

The dot at the end of the line is very important in Prolog. It marks the end of a statement.

The syntax for writing the ABI_FUNCTIONS is the following:

// SYNTAX
funtion_name(...input_types): output_type / state_mutability

// EXAMPLES
// View Methods
balanceOf(address, uint256): uint256 / view
name: string / view

// Pure Methods
contractType: bytes32 / pure

// Payable Method
claim(address, uint256): payable

// Non-Payable Method
setContractURI(string)

In Solidity, there are three different stateMutability for a function: pure/view/payable/nonpayable. With HyperDapp, you need to reference it only when it is pure/view/payable.

https://docs.soliditylang.org/en/v0.8.13/abi-spec.html#json

If the function name is not camelCase, it must be surrounded by single quotes:

'DEFAULT_ADMIN_ROLE': bytes32 / view

Load Multiple ABIs

You can load multiple ABIs by using the same syntax as described above. You just need to choose unique smart contract names.

address(hyperdapp, '0x87A852A30f778E2837283B09E49f03200110e865').
abi(hyperdapp, [...]).

address(weth, '0xc778417E063141139Fce010982780140Aa0cD5Ab').
abi(weth, [...]).

Last updated