Skip to main content

BridgeController

Git Source

Inherits: AccessManagedUpgradeable, MakinaContext, IBridgeController

State Variables

MAX_BPS

Full scale value in basis points

uint256 private constant MAX_BPS = 10_000;

BridgeControllerStorageLocation

bytes32 private constant BridgeControllerStorageLocation =
0x7363d524082cdf545f1ac33985598b84d2470b8b4fbcc6cb47698cc1b2a03500;

Functions

_getBridgeControllerStorage

function _getBridgeControllerStorage() internal pure returns (BridgeControllerStorage storage $);

isBridgeSupported

Bridge ID => Is bridge adapter deployed.

function isBridgeSupported(uint16 bridgeId) external view override returns (bool);

isOutTransferEnabled

Bridge ID => Is outgoing transfer enabled.

function isOutTransferEnabled(uint16 bridgeId) external view override returns (bool);

getBridgeAdapter

Bridge ID => Address of the associated bridge adapter.

function getBridgeAdapter(uint16 bridgeId) public view override returns (address);

getMaxBridgeLossBps

Bridge ID => Max allowed value loss in basis points for transfers via this bridge.

function getMaxBridgeLossBps(uint16 bridgeId) external view returns (uint256);

createBridgeAdapter

Deploys a new BridgeAdapter instance.

function createBridgeAdapter(uint16 bridgeId, uint256 initialMaxBridgeLossBps, bytes calldata initData)
external
restricted
returns (address);

Parameters

NameTypeDescription
bridgeIduint16The ID of the bridge.
initialMaxBridgeLossBpsuint256The initial maximum allowed value loss in basis points for transfers via this bridge.
initDatabytesThe optional initialization data for the bridge adapter.

Returns

NameTypeDescription
<none>addressThe address of the deployed BridgeAdapter.

_setOutTransferEnabled

function _setOutTransferEnabled(uint16 bridgeId, bool enabled) internal;

_setMaxBridgeLossBps

function _setMaxBridgeLossBps(uint16 bridgeId, uint256 maxBridgeLossBps) internal;

_isBridgeAdapter

function _isBridgeAdapter(address adapter) internal view returns (bool);

_scheduleOutBridgeTransfer

function _scheduleOutBridgeTransfer(
uint16 bridgeId,
uint256 destinationChainId,
address recipient,
address inputToken,
uint256 inputAmount,
address outputToken,
uint256 minOutputAmount
) internal;

_sendOutBridgeTransfer

function _sendOutBridgeTransfer(uint16 bridgeId, uint256 transferId, bytes calldata data) internal;

_authorizeInBridgeTransfer

function _authorizeInBridgeTransfer(uint16 bridgeId, bytes32 messageHash) internal;

_claimInBridgeTransfer

function _claimInBridgeTransfer(uint16 bridgeId, uint256 transferId) internal;

_cancelOutBridgeTransfer

function _cancelOutBridgeTransfer(uint16 bridgeId, uint256 transferId) internal;

Structs

BridgeControllerStorage

Note: storage-location: erc7201:makina.storage.BridgeController

struct BridgeControllerStorage {
uint16[] _supportedBridges;
mapping(uint16 bridgeId => address adapter) _bridgeAdapters;
mapping(uint16 bridgeId => uint256 maxBridgeLossBps) _maxBridgeLossBps;
mapping(uint16 bridgeId => bool isOutTransferEnabled) _isOutTransferEnabled;
mapping(address addr => bool isAdapter) _isBridgeAdapter;
}