Simple Token
Create contract with name UTSTokenShowcase
.
You need to import:
We are starting with defining contract and dependencies. As access control we are choosing Ownable and also since it is UTS Token we need to import ERC20 implementation, here we are using one by OpenZeppelin.
UTSBase
is our main contract that should be inherited by any Token or Connector.
In this implementation we also used Ownable
and ERC20
Then we need do define constructor. Since it is Token, we don't need a lot, just general UTS settings and ERC20 metadata.
We need setup _router
address, that can be found here.
_allowedChainIds
are simply whitelist of chain id's, where you are allowing to bridge tokens.
_chainConfigs
is array of settings responsible for bridge settings. We described this config here.
In constructor we need to call __UTSBase_init
function to initialize UTS Base contract. Also we need to set router and chain config.
We can skip setting router and chain configs in constructor, but before starting bridging we need to do it with relevant public functions.
After this step we need to override 3 functions: _mintTo
, _burnFrom
and _authorizeCall
.
So, here is very simple logic, in the outbounding bridge
transaction, we need to burn tokens from from
address (do not forget about ERC20 allowance check), in the inbounding redeem
transaction, we need to mint tokens to receiver to
address.
So, our contract is ready, now it can be deployed on networks and we can start bridging tokens between each chain.
You can find full code here
Last updated