pragma solidity 0.5.0;
interface CeloBridge {
function getVersion() public pure returns(string memory);
function getSwapData(bytes32 govId, uint dataIndex) public view returns(string memory fromChain, string memory toChain, bytes memory fromAddr, bytes memory toAddr, bytes memory token);
function getSwapDataArray(bytes32 govId, uint dataIndex) public view returns(bytes32[] memory bytes32s, uint[] memory uints, address[] memory vaList);
function getGovInfo(bytes32 govId) public view returns(uint[] memory uints, bytes32[] memory bytes32s, bytes memory comment);
function addBridgeInfo(string memory chain, address mig, uint[] memory uints, bytes32[] memory bytes32s, bytes memory comment) public;
function removeBridgeInfo(string memory chain) public;
function relaySwap() public;
function validateSwap(bytes32[] memory sigs) public returns (bool major, address[] memory vaList);
function relaySwapNFT() public;
function validateSwapNFT(bytes32[] memory sigs) public returns (bool major, address[] memory vaList);
}
All functions except the Read-Only Function of CELO Bridge Contract are executed by HubContract.