An open-source smart contracts library curated by the Suzaku team.
This library provides utility contracts for different blockchain ecosystems, notably Avalanche.
- The AvalancheICTTRouter contract is a router contract that can be used as backend for bridge UIs built on top of Avalanche ICTT.
It tracks the Home and RemoteTokenTransferrer
contracts on multiple chains to initiate transfers by only providing the token to transfer, the destination chain ID and the recipient address.
Read more
Foundry deployment scripts for Avalanche ICTT Home and Remote contracts at contracts/script/Teleporter:
- DeployERC20TokenHome.s.sol
- DeployNativeTokenHome.s.sol
- DeployERC20TokenRemote.s.sol
- DeployNativeTokenRemote.s.sol
Those scripts make use of environment variables to deploy the contracts. See HelperConfig.s.sol for more details.
- The ValidatorMessages library provides utility functions to encode and decode validator set update Warp messages.
- The ACP99Manager contract can be set as the
SubnetManager
address of a Subnet to manage its validator set. It follows the ACP-99 standard. - The IACP99Manager interface defines the functions that a contract must implement to be an
ACP99Manager
. - The IACP99SecurityModule interface defines the functions that a security module must implement to work with the
ACP99Manager
. - The ACP99PoAModule contract is an example implementation of a Proof-of-Authority security module that works with the
ACP99Manager
.
To use the library in your project, you can install it with forge
:
forge install suzaku-network/suzaku-contracts-library
cd contracts
forge install
forge build
forge test