Interface - IBridge
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;
import {IMessageBus} from "../../interfaces/celer/IMessageBus.sol";
import {StargateSettings, WormholeBridgeSettings, CelerBridgeSettings} from "../../libraries/LibMagpieAggregator.sol";
import {TransferKey} from "../../libraries/LibTransferKey.sol";
import {BridgeInArgs, BridgeOutArgs, RefundArgs} from "../LibCommon.sol";
interface IBridge {
event UpdateStargateSettings(address indexed sender, StargateSettings stargateSettings);
/// @dev Allows the contract owner to update the settings required for interaction with stargate.
/// @param stargateSettings Stargate related parameters.
function updateStargateSettings(StargateSettings calldata stargateSettings) external;
event UpdateWormholeBridgeSettings(address indexed sender, WormholeBridgeSettings wormholeBridgeSettings);
/// @dev Allows the contract owner to update the settings required for interaction with wormhole
/// @param wormholeBridgeSettings Wormhole bridge related parameters.
function updateWormholeBridgeSettings(WormholeBridgeSettings calldata wormholeBridgeSettings) external;
event AddCelerChainIds(address indexed sender, uint16[] networkIds, uint64[] chainIds);
/// @dev Allows the contract owner to add Celer chain ids to the corresponding magpie network ids.
/// @param networkIds An array containing identifiers for Magpie networks.
/// @param chainIds An array containing chain identifiers corresponding to the network ids.
function addCelerChainIds(uint16[] calldata networkIds, uint64[] calldata chainIds) external;
event UpdateCelerBridgeSettings(address indexed sender, CelerBridgeSettings celerBridgeSettings);
/// @dev Allows the contract owner to updates the Celer bridge settings.
/// @param celerBridgeSettings Celer bridge related parameters.
function updateCelerBridgeSettings(CelerBridgeSettings calldata celerBridgeSettings) external;
event AddMagpieStargateBridgeAddresses(
address indexed sender,
uint16[] networkIds,
bytes32[] magpieStargateBridgeAddresses
);
/// @dev Allows the contract owner to add Magpie stargate bridge address to its corresponding network id.
/// @param networkIds An array containing identifiers for Magpie networks.
/// @param magpieStargateBridgeAddresses An array containing addresses of Magpie stargate bridge corresponding to the network ids.
function addMagpieStargateBridgeAddresses(
uint16[] calldata networkIds,
bytes32[] calldata magpieStargateBridgeAddresses
) external;
event AddMagpieStargateBridgeV2Addresses(
address indexed sender,
uint16[] networkIds,
bytes32[] magpieStargateBridgeAddresses
);
/// @dev Allows the contract owner to add Magpie stargate bridge V2 address to its corresponding network id.
/// @param networkIds An array containing identifiers for Magpie networks.
/// @param magpieStargateBridgeAddresses An array containing addresses of Magpie stargate bridge V2 corresponding to the network ids.
function addMagpieStargateBridgeV2Addresses(
uint16[] calldata networkIds,
bytes32[] calldata magpieStargateBridgeAddresses
) external;
event AddMagpieCelerBridgeAddresses(
address indexed sender,
uint16[] networkIds,
bytes32[] magpieCelerBridgeAddresses
);
/// @dev Allows the contract owner to add Magpie Celer bridge addresses.
/// @param networkIds An array containing identifiers for Magpie networks.
/// @param magpieCelerBridgeAddresses An array containing Magpie celer bridge addresses corresponding to the networks in networkIds.
function addMagpieCelerBridgeAddresses(
uint16[] calldata networkIds,
bytes32[] calldata magpieCelerBridgeAddresses
) external;
/// @dev Deposits assets to the specified bridge.
/// @param bridgeInArgs Arguments that are required for bridgeIn.
function bridgeIn(BridgeInArgs calldata bridgeInArgs) external payable;
/// @dev Withdraws assets from the specified bridge.
/// @param bridgeOutArgs Arguments that are required for bridgeOut.
function bridgeOut(BridgeOutArgs calldata bridgeOutArgs) external payable returns (uint256 amount);
/// @dev Retrieves the Wormhole token sequence
/// @param tokenSequence The token sequence that is generated by Magpie protocol for the specific crosschain swap.
/// @return Value of the Wormhole token sequence.
function getWormholeTokenSequence(uint64 tokenSequence) external view returns (uint64);
}
Last updated