Interface for the Axelar Gateway that supports cross-chain token transfers coupled with general message passing. It extends IAxelarGateway to include token-related functionality.
event TokenSent(address sender, string destinationChain, string destinationAddress, string symbol, uint256 amount)
Emitted when a token is sent to another chain.
Logs the attempt to send tokens to a recipient on another chain.
| Name | Type | Description |
|---|---|---|
| sender | address | The address of the sender who initiated the token transfer. |
| destinationChain | string | The name of the destination chain. |
| destinationAddress | string | The address of the recipient on the destination chain. |
| symbol | string | The symbol of the token being transferred. |
| amount | uint256 | The amount of the tokens being transferred. |
event ContractCallWithToken(address sender, string destinationChain, string destinationContractAddress, bytes32 payloadHash, bytes payload, string symbol, uint256 amount)
Emitted when a contract call is made through the gateway along with a token transfer.
Logs the attempt to call a contract on another chain with an associated token transfer.
| Name | Type | Description |
|---|---|---|
| sender | address | The address of the sender who initiated the contract call with token. |
| destinationChain | string | The name of the destination chain. |
| destinationContractAddress | string | The address of the contract on the destination chain. |
| payloadHash | bytes32 | The keccak256 hash of the sent payload data. |
| payload | bytes | The payload data used for the contract call. |
| symbol | string | The symbol of the token being transferred. |
| amount | uint256 | The amount of the tokens being transferred. |
event ContractCallApprovedWithMint(bytes32 commandId, string sourceChain, string sourceAddress, address contractAddress, bytes32 payloadHash, string symbol, uint256 amount, bytes32 sourceTxHash, uint256 sourceEventIndex)
Emitted when a contract call with a token minting is approved.
Logs the approval of a contract call that originated from another chain and involves a token minting process.
| Name | Type | Description |
|---|---|---|
| commandId | bytes32 | The identifier of the command to execute. |
| sourceChain | string | The name of the source chain from whence the command came. |
| sourceAddress | string | The address of the sender on the source chain. |
| contractAddress | address | The address of the contract where the call will be executed. |
| payloadHash | bytes32 | The keccak256 hash of the approved payload data. |
| symbol | string | The symbol of the token being minted. |
| amount | uint256 | The amount of the tokens being minted. |
| sourceTxHash | bytes32 | The hash of the source transaction on the source chain. |
| sourceEventIndex | uint256 | The index of the event in the source transaction logs. |
function sendToken(string destinationChain, string destinationAddress, string symbol, uint256 amount) external
Sends tokens to another chain.
Initiates a cross-chain token transfer through the gateway to the specified destination chain and recipient.
| Name | Type | Description |
|---|---|---|
| destinationChain | string | The name of the destination chain. |
| destinationAddress | string | The address of the recipient on the destination chain. |
| symbol | string | The symbol of the token being transferred. |
| amount | uint256 | The amount of the tokens being transferred. |
function callContractWithToken(string destinationChain, string contractAddress, bytes payload, string symbol, uint256 amount) external
Makes a contract call on another chain with an associated token transfer.
Initiates a cross-chain contract call through the gateway that includes a token transfer to the specified contract on the destination chain.
| Name | Type | Description |
|---|---|---|
| destinationChain | string | The name of the destination chain. |
| contractAddress | string | The address of the contract on the destination chain. |
| payload | bytes | The payload data to be used in the contract call. |
| symbol | string | The symbol of the token being transferred. |
| amount | uint256 | The amount of the tokens being transferred. |
function isContractCallAndMintApproved(bytes32 commandId, string sourceChain, string sourceAddress, address contractAddress, bytes32 payloadHash, string symbol, uint256 amount) external view returns (bool)
Checks if a contract call with token minting is approved.
Determines whether a given contract call, identified by the commandId and payloadHash, involving token minting is approved.
| Name | Type | Description |
|---|---|---|
| commandId | bytes32 | The identifier of the command to check. |
| sourceChain | string | The name of the source chain. |
| sourceAddress | string | The address of the sender on the source chain. |
| contractAddress | address | The address of the contract where the call will be executed. |
| payloadHash | bytes32 | The keccak256 hash of the payload data. |
| symbol | string | The symbol of the token associated with the minting. |
| amount | uint256 | The amount of the tokens to be minted. |
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the contract call with token minting is approved, false otherwise. |
function validateContractCallAndMint(bytes32 commandId, string sourceChain, string sourceAddress, bytes32 payloadHash, string symbol, uint256 amount) external returns (bool)
Validates and approves a contract call with token minting.
Validates the given contract call information and marks it as approved if valid. It also involves the minting of tokens.
| Name | Type | Description |
|---|---|---|
| commandId | bytes32 | The identifier of the command to validate. |
| sourceChain | string | The name of the source chain. |
| sourceAddress | string | The address of the sender on the source chain. |
| payloadHash | bytes32 | The keccak256 hash of the payload data. |
| symbol | string | The symbol of the token associated with the minting. |
| amount | uint256 | The amount of the tokens to be minted. |
| Name | Type | Description |
|---|---|---|
| [0] | bool | True if the contract call with token minting is validated and approved, false otherwise. |
function tokenAddresses(string symbol) external view returns (address)
Retrieves the address of a token given its symbol.
Gets the contract address of the token registered with the given symbol.
| Name | Type | Description |
|---|---|---|
| symbol | string | The symbol of the token to retrieve the address for. |
| Name | Type | Description |
|---|---|---|
| [0] | address | The contract address of the token corresponding to the given symbol. |