HyperlaneImplementation

Introduction

This contract is used to allow Superform to send messages via Hyperlanearrow-up-right.

Core Concepts

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

Receiving Payloads

The implemented interface can be found in Hyperlane's MessageRecipient interface herearrow-up-right.

handle

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

function handle(
    uint32 origin_,
    bytes32 sender_,
    bytes calldata body_
) external override
name
description

origin_

uint32 domain id for the chain where the message came from

sender_

address of the message sender on the src chain

body_

bytes content of the message

Retrying Payloads

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

Configuration Setters

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

Other important variables, like the Mailboxarrow-up-right and InterchainGasPaymasterarrow-up-right, are set in the constructor.

setChainId

This function allows the ProtocolAdmin to map a Hyperlane chain id to Superform's chain id, the EVM id.

name
description

superChainId_

internal chain id used by Superform protocol. block.chainid casted to uint64

ambChainId_

uint16 chain id allocated to each chain by Hyperlane

setReceiver

This function allows the ProtocolAdmin to set receiver implementations on a new chain id.

name
description

chainId_

uint16 Hyperlane's chain id

authorizedImpl_

address of the Hyperlane message bridge on the respective chain

Last updated

Was this helpful?