How to integrate anyCall V7?
Mainnet AnyCall Contracts:
Available Chains: Ethereum, Optimism, BNB Chain, Fantom, Polygon, Arbitrum, Avalanche.
Contract Address: 0x8efd012977DD5C97E959b9e48c04eE5fcd604374
Testnet AnyCall Contracts:
Goerli (5): 0x965f84D915a9eFa2dD81b653e3AE736555d945f4
BNB Testnet (97): 0xcBd52F7E99eeFd9cD281Ea84f3D903906BB677EC
Fantom Testnet (4002): 0xfCea2c562844A7D385a7CB7d5a79cfEE0B673D99
Avalanche Fuji Testnet (43113): 0x461d52769884ca6235b685ef2040f47d30c94eb5
You can also lookup your tx with our explorer and api.
Requirements to be compatible with anyCall interfaces:
Sender Contract: Your sender contract needs to call the method
anyCall
on the official anyCall contract.Receiver Contract: A method named
anyExecute
needs to exist on your_to
contract address. This is needed becauseanyExec
(Our deployed anyCall Contract) will callanyExecute
on your receiver contract.Your contract needs to be payable to allow refund of excess fees.
anyCall Interfaces
anyCall (Called by Dapps)
function anyCall( address _to, bytes calldata _data, uint256 _toChainID, uint256 _flags, bytes calldata )
The destination chain would call anyExecute
function on the _to
address with _data
passed in the function. And you can customize what you do with such _data
.
Parameters
_to
address
The target contract to interact with on _toChainID
_data
bytes
The calldata supplied for the interaction with _to
anyExecute
will be run with this _data
on the receiver contract you deployed.
_toChainID
uint256
The target chain id to interact with
_flags
uint256
How dapps are paying gas fee of tx execution:
0: Gas fee paid on source chain. Fallback not allowed.
2: Gas fee paid on destination chain. Fallback not allowed.
4: Gas fee paid on source chain. Allow fallback
6: Gas fee paid on destination chain. Allow fallback
anyExecute (This exact format needs to be implemented in your dapp, what would be called on the destination chain)
function anyExecute(bytes calldata data) external override onlyExecutor returns (bool success, bytes memory result)
Parameters
data
bytes
The calldata supplied for the interaction with subsequent contracts
Returned Values
success
bool
The address to call on _fromChainID
if the cross chain interaction fails
result
bytes
The originating chain id
AnyCallExecutor
As stated above, AnyCallExecutor
will make the final execution to your destination contract as a sandbox.
The address of this executor contract is stored in the main anycall contract. It can be accessed with an interface function like below.
The executor should then be saved in your contract constructor
Last updated