RelayBridgeFactory - Relay
Solidity API
RelayBridgeFactory
Factory contract for deploying RelayBridge instances for different assets. This factory deploys new RelayBridge contracts and maintains a registry of bridges by asset address.
HYPERLANE_MAILBOX
address HYPERLANE_MAILBOX
The Hyperlane mailbox address used for cross-chain messaging. Immutable to ensure consistency across all deployed bridges.
bridgesByAsset
mapping(address => address[]) bridgesByAsset
Mapping from asset address to array of deployed bridge addresses. Multiple bridges can exist for the same asset.
BridgeDeployed
event BridgeDeployed(address bridge, address asset, contract BridgeProxy proxyBridge)
Emitted when a new bridge is deployed.
Parameters
| Name | Type | Description |
|---|---|---|
| bridge | address | The address of the newly deployed RelayBridge contract |
| asset | address | The address of the asset that the bridge will handle |
| proxyBridge | contract BridgeProxy | The BridgeProxy contract associated with this bridge |
constructor
constructor(address hMailbox) public
Initializes the factory with the Hyperlane mailbox address. The mailbox address cannot be changed after deployment.
Parameters
| Name | Type | Description |
|---|---|---|
| hMailbox | address | The address of the Hyperlane mailbox contract |
deployBridge
function deployBridge(address asset, contract BridgeProxy proxyBridge) public returns (address)
Deploys a new RelayBridge for a specific asset. Creates a new RelayBridge instance and adds it to the bridgesByAsset mapping.
Parameters
| Name | Type | Description |
|---|---|---|
| asset | address | The address of the asset (token) that the bridge will handle |
| proxyBridge | contract BridgeProxy | The BridgeProxy contract that will work with this bridge |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | address | The address of the newly deployed RelayBridge contract |