Manage Warp Route Limits on xERC20 and FiatToken
xERC20 Deployments
Warp Routes support xERC20
tokens. Follow these steps to configure xERC20
for Warp Route usage:
- Ownership Transfer:
- Ensure that the ownership of the
xERC20
contract is transferred to a secure multisig for security purposes. This step is crucial to prevent unauthorized changes. - The
xERC20
contract uses OpenZeppelin'sOwnable
interface. Use thetransferOwnership
function to complete this step.
- Mint Limit Configuration:
- Set appropriate mint and burn limits for the Warp Route contract. This configuration must be done by the owner of the
xERC20
contract from thesetLimits
function. - Ensure limits are appropriate for the expected volume to prevent disruptions. Review and adjust the limits based on transaction volumes and expected usage patterns.
FiatToken Deployments
Warp Routes support Circle's Bridged USDC in the form of a minter for FiatToken
(See more on the repo for documentation). There are three roles that are relevant on the FiatToken
and MasterMinter
contracts:
MasterMinter
owner is the account that can set controllers and minters.MasterMinter
controller is the account that can set the mint limits for its assigned minters.MasterMinter
minter is the account that can actually callmint
onFiatToken
.
Owner and controller should be typically set to a Safe multisig for enhanced security, the minter is the warp route contract address on the local chain.
There are three actions that should be set on the MasterMinter
contract to be ready for usage:
- As the owner, remove the previous test controller via the
removeController(address _controller)
function - As the owner, you should set the controller and minter via the
configureController(address controller, address worker)
funcition. The controller can be the same as the owner, the minter should be the warp route address. - As the controller, you should set the mint limit for the minter via the
configureMinter(uint256 _newAllowance)
function. This limit is not being continuously reset, so either set it to a sufficiently large value (likecast max-uint
) or monitor the usage and adjust accordingly.