Recolor Helper
The Recolor Helper is a generic helper contract we deploy on each USDV-supported chain to facilitate recoloring operations. This contract is immutable and unowned for long-term security.
The Recolor Helper contracts support both local ERC20 and crosschain transfers. All transfers output USDV colored based on the _toColor argument.
EOA or contracts can interact with the Recolor Helper in the following ways:
Direct transfer USDV into the helper and send out atomically.
ERC20 approved transfer.

interface IRecolorHelper {
/// ------ local transfer function -----
/// @dev send USDV into this account and then ATOMICALLY transfer out with color
function transferWithColor(address _receiver, uint256 _amount, uint32 _toColor) external;
/// @dev it requires the caller to approve this contract to spend their USDV
function approvedTransferWithColor(address _receiver, uint256 _amount, uint32 _toColor) external;
/// ------ crosschain transfer function transfer function -----
/// @dev send USDV into this account and then ATOMICALLY send across-chain
function sendWithColor(
IOFT.SendParam calldata _param,
uint32 _toColor,
bytes calldata _extraOptions,
MessagingFee calldata _msgFee,
address payable _refundAddress,
bytes calldata _composeMsg
) external payable returns (MessagingReceipt memory);
/// @dev it requires the caller to approve this contract to spend their USDV
function approvedSendWithColor(
IOFT.SendParam calldata _param,
uint32 _toColor,
bytes calldata _extraOptions,
MessagingFee calldata _msgFee,
address payable _refundAddress,
bytes calldata _composeMsg
) external payable returns (MessagingReceipt memory);
}
Example usage:
Swap aggregator: send the swap output to the Recolor Helper and call transferWithColor with your color
Bridge: have the EOA approve the Recolor Helper and send your color of USDV crosschain.
Please visit Contract Addresses for RecolorHelper.sol addresses on each chain.
Last updated