AxelarImplementation

Introduction

This contract is used to allow Superform to send messages via Axelar.

Core Concepts

Axelar builds upon AMBImplementation to formalize certain methods specific to the Axelar protocol.

Receiving Payloads

The implemented interface can be found in Axelar's IAxelarExecutable interface here.

execute

This function handles an interchain message sent via Axelar. Only the Hyperlane Mailbox may call this function.

function execute(
    bytes32 commandId,
    string calldata sourceChain,
    string calldata sourceAddress,
    bytes calldata payload
)
namedescription

commandId

bytes32 unique axelar id, given per message

sourceChain

string format of the source chain of the message

sourceAddress

string format of the source address sending the message. This is an AxelarImplementation contract on the source chain

payload

bytes content of the message

Retrying Payloads

As mentioned in the AMB Implementations section, messages can be retried by calling retryPayload with a bytes relevant data. In the case of Axelar, the data is the following:

(bytes32 txHash, uint256 logIndex)

Configuration Setters

There are some bridge related configurations to be made on the contract. These configuration functions can only be set by the PROTOCOL_ADMIN.

setAxelarConfig

This function allows the ProtocolAdmin to set the AxelarGateway on a given chain.

function setAxelarConfig(IAxelarGateway gateway_) external onlyProtocolAdmin
namedescription

gateway_

The axelar gateway address

setAxelarGasService

This function allows the ProtocolAdmin to set gas estimation relevant addresses gas addresses, related with message execution and gas amount estimation.

function setAxelarGasService(
       IAxelarGasService gasService_,
        IInterchainGasEstimation gasEstimator_) external onlyProtocolAdmin
namedescription

gasService_

Address of Axelar gas service for payments of message execution

gasEstimator_

Address of Axelar gas estimator for on chain gas estimations

Last updated