Abstract contract that defines an interface for executing express logic in the context of interchain token operations.
_This contract extends InterchainTokenExecutable to provide express execution capabilities. It is intended to be inherited by contracts
that implement express logic for interchain token actions. This contract will only be called by the interchain token service.
IMPORTANT: Express execute can be called by anyone willing to pay for the tokens upfront. This means the parameters passed to express execute are NOT validated by the GMP gateway. Only the token transfer itself should be considered to have value. The payload and any other metadata should NOT be used for anything critical beyond manipulating the received tokens._
bytes32 EXPRESS_EXECUTE_SUCCESS
constructor(address interchainTokenService_) internal
Creates a new InterchainTokenExpressExecutable contract.
| Name | Type | Description |
|---|---|---|
| interchainTokenService_ | address | The address of the interchain token service that will call this contract. |
function expressExecuteWithInterchainToken(bytes32 commandId, string sourceChain, bytes sourceAddress, bytes data, bytes32 tokenId, address token, uint256 amount) external virtual returns (bytes32)
Executes express logic in the context of an interchain token transfer.
Only callable by the interchain token service.
| Name | Type | Description |
|---|---|---|
| commandId | bytes32 | The unique message id. |
| sourceChain | string | The source chain of the token transfer. |
| sourceAddress | bytes | The source address of the token transfer. |
| data | bytes | The data associated with the token transfer. |
| tokenId | bytes32 | The token ID. |
| token | address | The token address. |
| amount | uint256 | The amount of tokens to be transferred. |
| Name | Type | Description |
|---|---|---|
| [0] | bytes32 | bytes32 Hash indicating success of the express execution. |