Forwarder Contract
Mayan Forwarder serves as the entry point for interacting with our set of smart contracts, providing a unified interface to all three cross-chain swap methods: WH Swap, MCTP, and Swift.
The Forwarder maintains a whitelist of protocol addresses that user can interact with to ensure safetey of user in case of receiving a comporomised quote from API.
The Forwarder smart contract is deployed on the following EVM networks with address:
0x0654874eb7F59C6f5b39931FC45dC45337c967c3
Ethereum
Arbitrum
Base
Optimism
Avalanche
Polygon
BSC
Swap From EVM
To initiate a swap with an ERC20 token as input token you should first approve the required allowance to the forwarder contract or alternatively pass permit object to the contract.
Once you approved the spending amount, you can get the complete transaction payload by using getSwapFromEvmTxPayload
from SDK and then pass it to the Forwarder contract.
If you need to build the payload manually and use Mayan Forwarder, you should choose the right method based on your input token:
forwardERC20
: Your input token is ERC20
Parameter | Type | Descrption |
---|---|---|
tokenIn | address | Input token address |
amountIn | uint256 | Input amount |
permitParams | PermitParams | Signed permission (eip-2612) Pass zero for all values if you don't want to use |
mayanProtocol | address | Address of Mayan final contract |
protocolData | bytes | Bytes data for Mayan final contract |
swapAndForwardERC20
: Similar toforwardERC20
but you also need a swap in source chain before the actual bridging.
Parameter | Type | Description |
---|---|---|
tokenIn | address | Input token address |
amountIn | uint256 | Input amount |
permitParams | PermitParams | Signed permission (eip-2612) Pass zero for all values if you don't want to use |
swapProtocol | address | Contract address of swap protocol (e.g 1inch) |
swapData | bytes | Bytes data that is needed by swap protocol |
middleToken | address | The output token of swap protocol |
minMiddleAmount | uint256 | Minimum output of swap step or the transaction will revert |
mayanProtocol | address | Address of Mayan final contract |
mayanData | bytes | Bytes data for Mayan final contract |
forwardEth
: Your input token is the native token of chain
Parameter | Type | Description |
---|---|---|
mayanProtocol | address | Address of Mayan final contract |
mayanData | bytes | Bytes data for Mayan final contract |
swapAndForwardEth
: Similar toforwardEth
but you need a swap before the actual bridging.
Parameter | Type | Description |
---|---|---|
amountIn | unit256 | Input amount of native token |
swapProtocol | address | Contract address of swap protocol (e.g 1inch) |
swapData | bytes | Data that is needed by swap protocol |
middleToken | address | The output token of swap protocol |
minMiddleAmount | uint256 | Minimum output of swap step or the transaction will revert |
mayanProtocol | address | Address of Mayan final contract |
mayanData | address | Bytes data for Mayan final contract |
Last updated