RelayBridge
Solidity API
IRelayBridge
Interface for the RelayBridge contract
Defines the bridge function for cross-chain asset transfers
bridge
Bridges an asset (ERC20 token or native currency) from the origin chain to a pool chain
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount of asset units to bridge (ERC20 tokens or native currency) |
recipient | address | Address on the pool chain to receive the bridged asset |
poolAsset | address | Address of the asset on the pool chain to bridge to |
poolGas | uint256 | Gas limit for the pool chain transaction |
extraData | bytes | Extra data passed to the bridge proxy |
Return Values
Name | Type | Description |
---|---|---|
nonce | uint256 | Unique identifier for this bridge transaction |
RelayBridge
RelayBridge contract enabling cross-chain bridging via Hyperlane
Bridges assets from an origin chain to a configured pool chain
BridgeTransaction
Internal struct capturing parameters for a bridge transaction
BridgingFailed
Error for failed bridging operations
Parameters
Name | Type | Description |
---|---|---|
nonce | uint256 | The nonce of the failed transaction |
InsufficientValue
Error for insufficient native value sent to cover fees or asset
Parameters
Name | Type | Description |
---|---|---|
received | uint256 | The amount of native currency received |
expected | uint256 | The amount of native currency expected |
FailedFeeRefund
Error when refunding leftover native value fails
Parameters
Name | Type | Description |
---|---|---|
value | uint256 | The amount of native currency that failed to refund |
transferNonce
Counter for assigning unique nonces to bridge transactions
Incremented with each bridge transaction to ensure uniqueness
ASSET
Asset address on the origin chain being bridged (address(0) for native currency)
Immutable to ensure the bridge always handles the same asset
BRIDGE_PROXY
BridgeProxy contract handling origin-chain transfer logic
Uses delegatecall to execute custom bridge logic
HYPERLANE_MAILBOX
Hyperlane Mailbox contract for cross-chain messaging
Used to dispatch messages to the pool chain
BridgeInitiated
Emitted when a bridge transaction is initiated on the origin chain
Parameters
Name | Type | Description |
---|---|---|
nonce | uint256 | Nonce of the transaction |
sender | address | Address on the origin chain that initiated the bridge |
recipient | address | Address on the pool chain to receive assets |
ASSET | address | Asset address on the origin chain (address(0) for native currency) |
poolAsset | address | Asset address on the pool chain (address(0) for native currency) |
amount | uint256 | Amount of asset units bridged |
BRIDGE_PROXY | contract BridgeProxy | BridgeProxy used |
BridgeExecuted
Emitted after a bridge transaction is executed on the pool chain
This event would be emitted by the pool chain contract
Parameters
Name | Type | Description |
---|---|---|
nonce | uint256 | Nonce of the executed transaction |
BridgeCancelled
Emitted if a bridge transaction is cancelled prior to execution
This event would be emitted if a bridge is cancelled
Parameters
Name | Type | Description |
---|---|---|
nonce | uint256 | Nonce of the cancelled transaction |
constructor
Initializes the RelayBridge with asset and infrastructure contracts
All parameters are immutable after deployment
Parameters
Name | Type | Description |
---|---|---|
asset | address | Asset address on the origin chain to bridge (0 for native currency) |
bridgeProxy | contract BridgeProxy | BridgeProxy contract for origin-chain transfers |
hyperlaneMailbox | address | Hyperlane Mailbox address for messaging |
getFee
Calculates the fee required in native currency to dispatch a cross-chain message
Uses Hyperlane’s quoteDispatch to estimate the cross-chain messaging fee
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount of asset units to bridge |
recipient | address | Address on the pool chain that will receive the bridged asset |
poolGas | uint256 | Gas limit for the pool chain transaction |
Return Values
Name | Type | Description |
---|---|---|
fee | uint256 | Required fee in native currency for dispatch |
bridge
Bridges an asset (ERC20 token or native currency) from the origin chain to a pool chain
_Executes a cross-chain bridge transaction with the following steps:
- Validates sufficient payment for fees (and asset amount if native)
- Transfers the asset from sender to this contract (if ERC20)
- Executes bridge logic via delegatecall to BRIDGE_PROXY
- Dispatches cross-chain message via Hyperlane
- Refunds any excess native currency to sender_
Parameters
Name | Type | Description |
---|---|---|
amount | uint256 | Amount of asset units to bridge (ERC20 tokens or native currency) |
recipient | address | Address on the pool chain to receive the bridged asset |
poolAsset | address | Address of the asset on the pool chain to bridge to |
poolGas | uint256 | Gas limit for the pool chain transaction |
extraData | bytes | Extra data passed to the bridge proxy |
Return Values
Name | Type | Description |
---|---|---|
nonce | uint256 | Unique identifier for this bridge transaction |