From 0c69a3ee927da663979a3c9a9513139001b77a21 Mon Sep 17 00:00:00 2001 From: zakir <80246097+zakir-code@users.noreply.github.com> Date: Mon, 11 Mar 2024 22:12:16 +0800 Subject: [PATCH] feat: add interface contract for FxBridgeLogic (#264) --- contract/FxBridgeLogic.go | 2488 ----------------- contract/FxBridgeLogicBSC.go | 2333 ---------------- contract/FxBridgeLogicETH.go | 2502 ------------------ contract/IFxBridgeLogic.go | 1994 ++++++++++++++ contract/IStaking.go | 1 + contract/compile.sh | 2 +- solidity/contracts/bridge/IFxBridgeLogic.sol | 203 ++ 7 files changed, 2199 insertions(+), 7324 deletions(-) delete mode 100644 contract/FxBridgeLogic.go delete mode 100644 contract/FxBridgeLogicBSC.go delete mode 100644 contract/FxBridgeLogicETH.go create mode 100644 contract/IFxBridgeLogic.go create mode 100644 solidity/contracts/bridge/IFxBridgeLogic.sol diff --git a/contract/FxBridgeLogic.go b/contract/FxBridgeLogic.go deleted file mode 100644 index b627feed9..000000000 --- a/contract/FxBridgeLogic.go +++ /dev/null @@ -1,2488 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package contract - -import ( - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription -) - -// FxBridgeLogicBridgeToken is an auto generated low-level Go binding around an user-defined struct. -type FxBridgeLogicBridgeToken struct { - Addr common.Address - Name string - Symbol string - Decimals uint8 -} - -// FxBridgeLogicABI is the input ABI used to generate the binding from. -const FxBridgeLogicABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"}],\"name\":\"AddBridgeTokenEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_dstChainId\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"BridgeCallEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"OracleSetUpdatedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"SendToFxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_batchNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"TransactionBatchExecutedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"TransferOwnerEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"activeBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isOriginated\",\"type\":\"bool\"}],\"name\":\"addBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_dstChainId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"bridgeCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bridgeTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"checkAssetStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"_theHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"}],\"name\":\"checkOracleSignatures\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"decodeType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBridgeTokenList\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"internalType\":\"structFxBridgeLogic.BridgeToken[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20Address\",\"type\":\"address\"}],\"name\":\"lastBatchNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_oracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"}],\"name\":\"makeCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"pauseBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToFx\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_fxBridgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"state_lastBatchNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastEventNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_powerThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_destinations\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_fees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_nonceArray\",\"type\":\"uint256[2]\"},{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeReceive\",\"type\":\"address\"}],\"name\":\"submitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOriginated\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_newOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_newPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_currentOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"}],\"name\":\"updateOracleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" - -// FxBridgeLogicBin is the compiled bytecode used for deploying new contracts. -var FxBridgeLogicBin = "0x608060405234801561001057600080fd5b50613ad9806100206000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806370e5a89811610104578063aa63a894116100a2578063e5a2b5d211610071578063e5a2b5d214610441578063f1099f611461044a578063f2fde38b1461045d578063f92367fd14610470576101da565b8063aa63a894146103f2578063bb83bf9614610405578063dde65aea1461040e578063df97174b14610421576101da565b806373b20547116100de57806373b20547146103bd5780638456cb59146103c65780638da5cb5b146103ce578063a36a4ab0146103df576101da565b806370e5a89814610377578063715018a6146103a257806371cbf381146103aa576101da565b80633f4ba83a1161017c5780635c975abb1161014b5780635c975abb1461033d5780636189d107146103485780636907f2e61461035b57806370a0eb941461036e576101da565b80633f4ba83a146102cd5780634157a36c146102d5578063474d561c146102f657806354fd4d5014610328576101da565b8063285a190a116101b8578063285a190a1461026f57806331678cf614610284578063332caa1f146102a75780633a08e299146102ba576101da565b8063011b2174146101df5780630acac94214610205578063283040b41461025a575b600080fd5b6101f26101ed366004612c68565b610479565b6040519081526020015b60405180910390f35b61023b610213366004612c68565b60d06020526000908152604090205460ff808216916101008104821691620100009091041683565b60408051931515845291151560208401521515908201526060016101fc565b610262610498565b6040516101fc9190613515565b61028261027d366004612ed5565b610751565b005b610297610292366004612c82565b610908565b60405190151581526020016101fc565b6102826102b5366004612d2b565b6109ba565b6102826102c8366004612fb3565b610f95565b610282611192565b6102e86102e33660046131d8565b6111ac565b6040516101fc92919061368f565b610297610304366004612c68565b6001600160a01b0316600090815260d0602052604090205462010000900460ff1690565b6103306111cc565b6040516101fc919061367c565b60975460ff16610297565b610282610356366004612cf3565b61125a565b610282610369366004613354565b61142b565b6101f260cc5481565b61038a610385366004613427565b6114c0565b6040516001600160a01b0390911681526020016101fc565b6102826114ea565b6101f26103b83660046130d9565b6114fc565b6101f260cb5481565b610282611549565b6065546001600160a01b031661038a565b6102976103ed366004612c68565b611561565b610282610400366004613165565b611677565b6101f260cd5481565b61029761041c366004612c68565b611909565b6101f261042f366004612c68565b60ce6020526000908152604090205481565b6101f260ca5481565b610297610458366004612cb4565b611a1e565b61028261046b366004612c68565b611cbe565b6101f260c95481565b6001600160a01b038116600090815260ce60205260409020545b919050565b60cf546060906000906001600160401b038111156104c657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561052e57816020015b61051b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600060ff1681525090565b8152602001906001900390816104e45790505b50905060005b60cf5481101561074b57600060cf828154811061056157634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b0316905060006040518060800160405280836001600160a01b03168152602001836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156105d657600080fd5b505afa1580156105ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261061291908101906132c2565b8152602001836001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561065057600080fd5b505afa158015610664573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068c91908101906132c2565b8152602001836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ca57600080fd5b505afa1580156106de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610702919061343f565b60ff1681525090508084848151811061072b57634e487b7160e01b600052603260045260246000fd5b60200260200101819052505050808061074390613a3f565b915050610534565b50905090565b6000805b88518110156108de5786818151811061077e57634e487b7160e01b600052603260045260246000fd5b602002602001015160ff166000146108cc576108398982815181106107b357634e487b7160e01b600052603260045260246000fd5b6020026020010151858984815181106107dc57634e487b7160e01b600052603260045260246000fd5b602002602001015189858151811061080457634e487b7160e01b600052603260045260246000fd5b602002602001015189868151811061082c57634e487b7160e01b600052603260045260246000fd5b6020026020010151611d37565b61088a5760405162461bcd60e51b815260206004820181905260248201527f4f7261636c65207369676e617475726520646f6573206e6f74206d617463682e60448201526064015b60405180910390fd5b8781815181106108aa57634e487b7160e01b600052603260045260246000fd5b6020026020010151826108bd91906139a1565b9150828211156108cc576108de565b806108d681613a3f565b915050610755565b508181116108fe5760405162461bcd60e51b815260040161088190613703565b5050505050505050565b6000610912611e01565b60405163f2fde38b60e01b81526001600160a01b03838116600483015284169063f2fde38b90602401600060405180830381600087803b15801561095557600080fd5b505af1158015610969573d6000803e3d6000fd5b5050604080516001600160a01b038088168252861660208201527fb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699935001905060405180910390a150600192915050565b6109c2611e5b565b6109ca611eb5565b6001600160a01b038316600090815260d060209081526040918290208251606081018452905460ff8082161515835261010082048116151593830193909352620100009004909116151591810182905290610a375760405162461bcd60e51b81526004016108819061384a565b8060200151610a7b5760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881dd85cc81c185d5cd95960821b6044820152606401610881565b6020808601516001600160a01b038616600090815260ce90925260409091205410610b0e5760405162461bcd60e51b815260206004820152603760248201527f4e6577206261746368206e6f6e6365206d75737420626520677265617465722060448201527f7468616e207468652063757272656e74206e6f6e63652e0000000000000000006064820152608401610881565b824310610b835760405162461bcd60e51b815260206004820152603c60248201527f42617463682074696d656f7574206d757374206265206772656174657220746860448201527f616e207468652063757272656e7420626c6f636b206865696768742e000000006064820152608401610881565b8b518d51148015610b9557508a518d51145b8015610ba2575089518d51145b8015610baf575088518d51145b610bfb5760405162461bcd60e51b815260206004820152601d60248201527f4d616c666f726d65642063757272656e74206f7261636c65207365742e0000006044820152606401610881565b60cc54610c138e8e886000602002015160c9546114fc565b14610c305760405162461bcd60e51b8152600401610881906137a2565b86518851148015610c42575085518851145b610c8e5760405162461bcd60e51b815260206004820181905260248201527f4d616c666f726d6564206261746368206f66207472616e73616374696f6e732e6044820152606401610881565b610d0f8d8d8d8d8d60c9546f0e8e4c2dce6c2c6e8d2dedc84c2e8c6d60831b8f8f8f8f600160028110610cd157634e487b7160e01b600052603260045260246000fd5b60200201518f8f8f604051602001610cf1999897969594939291906135ff565b6040516020818303038152906040528051906020012060ca54610751565b6020808601516001600160a01b038616600090815260ce9092526040822055805b8951811015610e9c57610d73888281518110610d5c57634e487b7160e01b600052603260045260246000fd5b602002602001015183611efb90919063ffffffff16565b8351909250151560011415610e1e57856001600160a01b03166340c10f19308c8481518110610db257634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401610deb9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015610e0557600080fd5b505af1158015610e19573d6000803e3d6000fd5b505050505b610e8a898281518110610e4157634e487b7160e01b600052603260045260246000fd5b60200260200101518b8381518110610e6957634e487b7160e01b600052603260045260246000fd5b6020026020010151886001600160a01b0316611f0e9092919063ffffffff16565b80610e9481613a3f565b915050610d30565b508151151560011415610f0a576040516340c10f1960e01b8152306004820152602481018290526001600160a01b038616906340c10f1990604401600060405180830381600087803b158015610ef157600080fd5b505af1158015610f05573d6000803e3d6000fd5b505050505b610f1e6001600160a01b0386168483611f0e565b505060cb54610f2e906001611efb565b60cb556001600160a01b03831684600160200201517f02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab70860cb54604051610f7691815260200190565b60405180910390a3610f8760018055565b505050505050505050505050565b610f9d611eb5565b8387116110125760405162461bcd60e51b815260206004820152603b60248201527f4e6577206f7261636c6520736574206e6f6e6365206d7573742062652067726560448201527f61746572207468616e207468652063757272656e74206e6f6e636500000000006064820152608401610881565b87518951146110635760405162461bcd60e51b815260206004820152601860248201527f4d616c666f726d6564206e6577206f7261636c652073657400000000000000006044820152606401610881565b84518651148015611075575082518651145b8015611082575081518651145b801561108f575080518651145b6110db5760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610881565b60cc546110ec87878760c9546114fc565b146111095760405162461bcd60e51b8152600401610881906137a2565b60006111198a8a8a60c9546114fc565b905061112c87878686868660ca54610751565b60cc81905560cd88905560cb54611144906001611efb565b60cb81905560405189917f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b39161117e91908e908e90613881565b60405180910390a250505050505050505050565b61119a611e01565b6111a2611f7c565b6111aa611fc5565b565b606080828060200190518101906111c391906132f4565b91509150915091565b60d180546111d990613a04565b80601f016020809104026020016040519081016040528092919081815260200182805461120590613a04565b80156112525780601f1061122757610100808354040283529160200191611252565b820191906000526020600020905b81548152906001019060200180831161123557829003601f168201915b505050505081565b611262611e5b565b61126a611eb5565b6000811161128a5760405162461bcd60e51b815260040161088190613760565b6001600160a01b038416600090815260d060209081526040918290208251606081018452905460ff80821615158352610100820481161515938301939093526201000090049091161515918101829052906112f75760405162461bcd60e51b81526004016108819061384a565b806020015161133b5760405162461bcd60e51b815260206004820152601060248201526f1d1bdad95b881dd85cc81c185d5cd95960821b6044820152606401610881565b6113506001600160a01b038616333085612017565b80511515600114156113b757604051630852cd8d60e31b8152600481018390526001600160a01b038616906342966c6890602401600060405180830381600087803b15801561139e57600080fd5b505af11580156113b2573d6000803e3d6000fd5b505050505b60cb546113c5906001611efb565b60cb819055604080518581526020810185905290810191909152849033906001600160a01b038816907f034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c9060600160405180910390a45061142560018055565b50505050565b600080611437836111ac565b9150915061144633838361204f565b60cb54611454906001611efb565b60cb556001600160a01b03878116908916336001600160a01b03167ff3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d60cb548e8e8a8d8d8c6040516114ac97969594939291906138b6565b60405180910390a450505050505050505050565b60cf81815481106114d057600080fd5b6000918252602090912001546001600160a01b0316905081565b6114f2611e01565b6111aa60006120cd565b6040516000906918da1958dadc1bda5b9d60b21b90611527908490839087908a908a906020016135bc565b604051602081830303815290604052805190602001209150505b949350505050565b611551611e01565b611559611eb5565b6111aa61211f565b600061156b611e01565b6001600160a01b038216600090815260d0602052604090205462010000900460ff1615156001146115de5760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610881565b6001600160a01b038216600090815260d0602052604090205460ff6101009091041615156001146116515760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792070617573656400000000006044820152606401610881565b506001600160a01b0316600090815260d060205260409020805461ff0019169055600190565b600054610100900460ff16158080156116975750600054600160ff909116105b806116b15750303b1580156116b1575060005460ff166001145b6117145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610881565b6000805460ff191660011790558015611737576000805461ff0019166101001790555b61173f61215c565b61174761218b565b61174f6121ba565b81518351146117a05760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610881565b6000805b8351811015611801578381815181106117cd57634e487b7160e01b600052603260045260246000fd5b6020026020010151826117e091906139a1565b9150858211156117ef57611801565b806117f981613a3f565b9150506117a4565b508481116118215760405162461bcd60e51b815260040161088190613703565b6000611830858560008a6114fc565b60c988905560ca87905560cc819055600060cd55600160cb55604080518082019091526005808252640312e302e360dc1b60209092019182529192506118799160d19190612950565b5060cd547f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b360cb5487876040516118b293929190613881565b60405180910390a250508015611902576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000611913611e01565b6001600160a01b038216600090815260d0602052604090205462010000900460ff1615156001146119865760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610881565b6001600160a01b038216600090815260d06020526040902054610100900460ff16156119f45760405162461bcd60e51b815260206004820152601c60248201527f42726964676520746f6b656e20616c72656164792061637469766564000000006044820152606401610881565b506001600160a01b0316600090815260d060205260409020805461ff001916610100179055600190565b6000611a28611e01565b6001600160a01b038416611a765760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610881565b6001600160a01b038416600090815260d0602052604090205462010000900460ff1615611ae55760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792065786973747300000000006044820152606401610881565b611b118460405180606001604052808515158152602001600115158152602001600115158152506121e9565b836001600160a01b03167f2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611b7557600080fd5b505afa158015611b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bb191908101906132c2565b866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611bea57600080fd5b505afa158015611bfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c2691908101906132c2565b876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5f57600080fd5b505afa158015611c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c97919061343f565b60cb5488604051611cac9594939291906136bd565b60405180910390a25060019392505050565b611cc6611e01565b6001600160a01b038116611d2b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610881565b611d34816120cd565b50565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018590526000908190605c0160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa158015611dd7573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b03161491505095945050505050565b6065546001600160a01b031633146111aa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610881565b60026001541415611eae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610881565b6002600155565b60975460ff16156111aa5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610881565b6000611f0782846139a1565b9392505050565b6040516001600160a01b038316602482015260448101829052611f7190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612295565b505050565b60018055565b60975460ff166111aa5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610881565b611fcd611f7c565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b03808516602483015283166044820152606481018290526114259085906323b872dd60e01b90608401611f3a565b815160208301207f8ae85d849167ff996c04040c44924fd364217285e4cad818292c7ac37c0a345b141561208c576120878382612367565b611f71565b60405162461bcd60e51b8152602060048201526016602482015275105cdcd95d081d1e5c19481b9bdd081cdd5c1c1bdc9d60521b6044820152606401610881565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612127611eb5565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ffa3390565b600054610100900460ff166121835760405162461bcd60e51b8152600401610881906137ff565b6111aa6125e9565b600054610100900460ff166121b25760405162461bcd60e51b8152600401610881906137ff565b6111aa61261c565b600054610100900460ff166121e15760405162461bcd60e51b8152600401610881906137ff565b6111aa61264c565b60cf805460018082019092557facb8d954e2cfef495862221e91bd7523613cf8808827cb33edfe4904cc51bf290180546001600160a01b0319166001600160a01b038516908117909155600090815260d0602090815260409182902084518154928601519386015160ff199093169015151761ff001916610100931515939093029290921762ff00001916620100009115159190910217905560cb5461228e91611efb565b60cb555050565b60006122ea826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126739092919063ffffffff16565b805190915015611f7157808060200190518101906123089190613149565b611f715760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610881565b60008061237383612682565b9150915060005b82518110156119025760008282815181106123a557634e487b7160e01b600052603260045260246000fd5b6020026020010151116123ca5760405162461bcd60e51b815260040161088190613760565b600060d060008584815181106123f057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528181019290925260409081016000208151606081018352905460ff808216151583526101008204811615159483019490945262010000900490921615159082018190529091506124695760405162461bcd60e51b81526004016108819061384a565b80602001516124ad5760405162461bcd60e51b815260206004820152601060248201526f1d1bdad95b881dd85cc81c185d5cd95960821b6044820152606401610881565b61251b86308585815181106124d257634e487b7160e01b600052603260045260246000fd5b60200260200101518786815181106124fa57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316612017909392919063ffffffff16565b80511515600114156125d65783828151811061254757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166342966c6884848151811061257d57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016125a391815260200190565b600060405180830381600087803b1580156125bd57600080fd5b505af11580156125d1573d6000803e3d6000fd5b505050505b50806125e181613a3f565b91505061237a565b600054610100900460ff166126105760405162461bcd60e51b8152600401610881906137ff565b6097805460ff19169055565b600054610100900460ff166126435760405162461bcd60e51b8152600401610881906137ff565b6111aa336120cd565b600054610100900460ff16611f765760405162461bcd60e51b8152600401610881906137ff565b606061154184846000856127da565b6060806000808480602001905181019061269c919061320a565b805191935091506126ae8160146139b9565b8351146126f65760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881b9bdd081b585d18da08185b5bdd5b9d60521b6044820152606401610881565b6000816001600160401b0381111561271e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612747578160200160208202803683370190505b50905060005b828110156127cd5760006127628260146139b9565b61276d9060146139a1565b905060008187015190508084848151811061279857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050505080806127c590613a3f565b91505061274d565b5094509092505050915091565b60608247101561283b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610881565b600080866001600160a01b0316858760405161285791906134f9565b60006040518083038185875af1925050503d8060008114612894576040519150601f19603f3d011682016040523d82523d6000602084013e612899565b606091505b50915091506128aa878383876128b5565b979650505050505050565b6060831561292157825161291a576001600160a01b0385163b61291a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610881565b5081611541565b61154183838151156129365781518083602001fd5b8060405162461bcd60e51b8152600401610881919061367c565b82805461295c90613a04565b90600052602060002090601f01602090048101928261297e57600085556129c4565b82601f1061299757805160ff19168380011785556129c4565b828001600101855582156129c4579182015b828111156129c45782518255916020019190600101906129a9565b506129d09291506129d4565b5090565b5b808211156129d057600081556001016129d5565b60006129fc6129f78461397a565b613927565b9050828152838383011115612a1057600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461049357600080fd5b600082601f830112612a4e578081fd5b81356020612a5e6129f783613957565b8281528181019085830183850287018401881015612a7a578586fd5b855b85811015612a9f57612a8d82612a27565b84529284019290840190600101612a7c565b5090979650505050505050565b600082601f830112612abc578081fd5b81356020612acc6129f783613957565b8281528181019085830183850287018401881015612ae8578586fd5b855b85811015612a9f57813584529284019290840190600101612aea565b600082601f830112612b16578081fd5b612b206040613927565b808385604086011115612b31578384fd5b835b6002811015612b52578135845260209384019390910190600101612b33565b509095945050505050565b600082601f830112612b6d578081fd5b81356020612b7d6129f783613957565b8281528181019085830183850287018401881015612b99578586fd5b855b85811015612a9f578135612bae81613a94565b84529284019290840190600101612b9b565b60008083601f840112612bd1578182fd5b5081356001600160401b03811115612be7578182fd5b602083019150836020828501011115612bff57600080fd5b9250929050565b600082601f830112612c16578081fd5b611f07838335602085016129e9565b600082601f830112612c35578081fd5b8151612c436129f78261397a565b818152846020838601011115612c57578283fd5b6115418260208301602087016139d8565b600060208284031215612c79578081fd5b611f0782612a27565b60008060408385031215612c94578081fd5b612c9d83612a27565b9150612cab60208401612a27565b90509250929050565b600080600060608486031215612cc8578081fd5b612cd184612a27565b9250602084013591506040840135612ce881613a86565b809150509250925092565b60008060008060808587031215612d08578182fd5b612d1185612a27565b966020860135965060408601359560600135945092505050565b6000806000806000806000806000806000806101a08d8f031215612d4d57898afd5b6001600160401b038d351115612d6157898afd5b612d6e8e8e358f01612a3e565b9b506001600160401b0360208e01351115612d8757898afd5b612d978e60208f01358f01612aac565b9a506001600160401b0360408e01351115612db057898afd5b612dc08e60408f01358f01612b5d565b99506001600160401b0360608e01351115612dd9578788fd5b612de98e60608f01358f01612aac565b98506001600160401b0360808e01351115612e02578788fd5b612e128e60808f01358f01612aac565b97506001600160401b0360a08e01351115612e2b578687fd5b612e3b8e60a08f01358f01612aac565b96506001600160401b0360c08e01351115612e54578586fd5b612e648e60c08f01358f01612a3e565b95506001600160401b0360e08e01351115612e7d578485fd5b612e8d8e60e08f01358f01612aac565b9450612e9d8e6101008f01612b06565b9350612eac6101408e01612a27565b92506101608d01359150612ec36101808e01612a27565b90509295989b509295989b509295989b565b600080600080600080600060e0888a031215612eef578081fd5b87356001600160401b0380821115612f05578283fd5b612f118b838c01612a3e565b985060208a0135915080821115612f26578283fd5b612f328b838c01612aac565b975060408a0135915080821115612f47578283fd5b612f538b838c01612b5d565b965060608a0135915080821115612f68578283fd5b612f748b838c01612aac565b955060808a0135915080821115612f89578283fd5b50612f968a828b01612aac565b93505060a0880135915060c0880135905092959891949750929550565b60008060008060008060008060006101208a8c031215612fd1578283fd5b89356001600160401b0380821115612fe7578485fd5b612ff38d838e01612a3e565b9a5060208c0135915080821115613008578485fd5b6130148d838e01612aac565b995060408c0135985060608c0135915080821115613030578485fd5b61303c8d838e01612a3e565b975060808c0135915080821115613051578485fd5b61305d8d838e01612aac565b965060a08c0135955060c08c0135915080821115613079578485fd5b6130858d838e01612b5d565b945060e08c013591508082111561309a578384fd5b6130a68d838e01612aac565b93506101008c01359150808211156130bc578283fd5b506130c98c828d01612aac565b9150509295985092959850929598565b600080600080608085870312156130ee578182fd5b84356001600160401b0380821115613104578384fd5b61311088838901612a3e565b95506020870135915080821115613125578384fd5b5061313287828801612aac565b949794965050505060408301359260600135919050565b60006020828403121561315a578081fd5b8151611f0781613a86565b6000806000806080858703121561317a578182fd5b843593506020850135925060408501356001600160401b038082111561319e578384fd5b6131aa88838901612a3e565b935060608701359150808211156131bf578283fd5b506131cc87828801612aac565b91505092959194509250565b6000602082840312156131e9578081fd5b81356001600160401b038111156131fe578182fd5b61154184828501612c06565b6000806040838503121561321c578182fd5b82516001600160401b0380821115613232578384fd5b61323e86838701612c25565b9350602091508185015181811115613254578384fd5b85019050601f81018613613266578283fd5b80516132746129f782613957565b81815283810190838501858402850186018a1015613290578687fd5b8694505b838510156132b2578051835260019490940193918501918501613294565b5080955050505050509250929050565b6000602082840312156132d3578081fd5b81516001600160401b038111156132e8578182fd5b61154184828501612c25565b60008060408385031215613306578182fd5b82516001600160401b038082111561331c578384fd5b61332886838701612c25565b9350602085015191508082111561333d578283fd5b5061334a85828601612c25565b9150509250929050565b60008060008060008060008060e0898b03121561336f578182fd5b88356001600160401b0380821115613385578384fd5b818b0191508b601f830112613398578384fd5b6133a78c8335602085016129e9565b995060208b013598506133bc60408c01612a27565b97506133ca60608c01612a27565b965060808b01359150808211156133df578384fd5b6133eb8c838d01612bc0565b909650945060a08b0135935060c08b013591508082111561340a578283fd5b506134178b828c01612c06565b9150509295985092959890939650565b600060208284031215613438578081fd5b5035919050565b600060208284031215613450578081fd5b8151611f0781613a94565b6000815180845260208085019450808401835b838110156134935781516001600160a01b03168752958201959082019060010161346e565b509495945050505050565b6000815180845260208085019450808401835b83811015613493578151875295820195908201906001016134b1565b600081518084526134e58160208601602086016139d8565b601f01601f19169290920160200192915050565b6000825161350b8184602087016139d8565b9190910192915050565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156135ae57888303603f19018552815180516001600160a01b0316845287810151608089860181905290613572828701826134cd565b915050878201518582038987015261358a82826134cd565b60609384015160ff1696909301959095525094870194925090860190600101613539565b509098975050505050505050565b600086825285602083015284604083015260a060608301526135e160a083018561345b565b82810360808401526135f3818561349e565b98975050505050505050565b60006101208b83528a602084015280604084015261361f8184018b61349e565b90508281036060840152613633818a61345b565b90508281036080840152613647818961349e565b60a084019790975250506001600160a01b0393841660c082015260e08101929092529091166101009091015295945050505050565b600060208252611f0760208301846134cd565b6000604082526136a260408301856134cd565b82810360208401526136b481856134cd565b95945050505050565b600060a082526136d060a08301886134cd565b82810360208401526136e281886134cd565b60ff9690961660408401525050606081019290925260809091015292915050565b60208082526039908201527f5375626d6974746564206f7261636c6520736574207369676e6174757265732060408201527f646f206e6f74206861766520656e6f75676820706f7765722e00000000000000606082015260800190565b60208082526022908201527f616d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252603c908201527f537570706c6965642063757272656e74206f7261636c657320616e6420706f7760408201527f65727320646f206e6f74206d6174636820636865636b706f696e742e00000000606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526019908201527f556e737570706f7274656420746f6b656e206164647265737300000000000000604082015260600190565b60008482526060602083015261389a606083018561345b565b82810360408401526138ac818561349e565b9695505050505050565b600088825260c060208301526138cf60c08301896134cd565b8760408401528660608401528281036080840152848152848660208301378160208683010152601f19601f8601168101905060208382030160a084015261391960208201856134cd565b9a9950505050505050505050565b604051601f8201601f191681016001600160401b038111828210171561394f5761394f613a70565b604052919050565b60006001600160401b0382111561397057613970613a70565b5060209081020190565b60006001600160401b0382111561399357613993613a70565b50601f01601f191660200190565b600082198211156139b4576139b4613a5a565b500190565b60008160001904831182151516156139d3576139d3613a5a565b500290565b60005b838110156139f35781810151838201526020016139db565b838111156114255750506000910152565b600281046001821680613a1857607f821691505b60208210811415613a3957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613a5357613a53613a5a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114611d3457600080fd5b60ff81168114611d3457600080fdfea26469706673582212202f33686ef4450e92c5f5f14b491cb033655e23e760c06f29115fa9e94595c69b64736f6c63430008020033" - -// DeployFxBridgeLogic deploys a new Ethereum contract, binding an instance of FxBridgeLogic to it. -func DeployFxBridgeLogic(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *FxBridgeLogic, error) { - parsed, err := abi.JSON(strings.NewReader(FxBridgeLogicABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FxBridgeLogicBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &FxBridgeLogic{FxBridgeLogicCaller: FxBridgeLogicCaller{contract: contract}, FxBridgeLogicTransactor: FxBridgeLogicTransactor{contract: contract}, FxBridgeLogicFilterer: FxBridgeLogicFilterer{contract: contract}}, nil -} - -// FxBridgeLogic is an auto generated Go binding around an Ethereum contract. -type FxBridgeLogic struct { - FxBridgeLogicCaller // Read-only binding to the contract - FxBridgeLogicTransactor // Write-only binding to the contract - FxBridgeLogicFilterer // Log filterer for contract events -} - -// FxBridgeLogicCaller is an auto generated read-only Go binding around an Ethereum contract. -type FxBridgeLogicCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicTransactor is an auto generated write-only Go binding around an Ethereum contract. -type FxBridgeLogicTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type FxBridgeLogicFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type FxBridgeLogicSession struct { - Contract *FxBridgeLogic // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type FxBridgeLogicCallerSession struct { - Contract *FxBridgeLogicCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// FxBridgeLogicTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type FxBridgeLogicTransactorSession struct { - Contract *FxBridgeLogicTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicRaw is an auto generated low-level Go binding around an Ethereum contract. -type FxBridgeLogicRaw struct { - Contract *FxBridgeLogic // Generic contract binding to access the raw methods on -} - -// FxBridgeLogicCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type FxBridgeLogicCallerRaw struct { - Contract *FxBridgeLogicCaller // Generic read-only contract binding to access the raw methods on -} - -// FxBridgeLogicTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type FxBridgeLogicTransactorRaw struct { - Contract *FxBridgeLogicTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewFxBridgeLogic creates a new instance of FxBridgeLogic, bound to a specific deployed contract. -func NewFxBridgeLogic(address common.Address, backend bind.ContractBackend) (*FxBridgeLogic, error) { - contract, err := bindFxBridgeLogic(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &FxBridgeLogic{FxBridgeLogicCaller: FxBridgeLogicCaller{contract: contract}, FxBridgeLogicTransactor: FxBridgeLogicTransactor{contract: contract}, FxBridgeLogicFilterer: FxBridgeLogicFilterer{contract: contract}}, nil -} - -// NewFxBridgeLogicCaller creates a new read-only instance of FxBridgeLogic, bound to a specific deployed contract. -func NewFxBridgeLogicCaller(address common.Address, caller bind.ContractCaller) (*FxBridgeLogicCaller, error) { - contract, err := bindFxBridgeLogic(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicCaller{contract: contract}, nil -} - -// NewFxBridgeLogicTransactor creates a new write-only instance of FxBridgeLogic, bound to a specific deployed contract. -func NewFxBridgeLogicTransactor(address common.Address, transactor bind.ContractTransactor) (*FxBridgeLogicTransactor, error) { - contract, err := bindFxBridgeLogic(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicTransactor{contract: contract}, nil -} - -// NewFxBridgeLogicFilterer creates a new log filterer instance of FxBridgeLogic, bound to a specific deployed contract. -func NewFxBridgeLogicFilterer(address common.Address, filterer bind.ContractFilterer) (*FxBridgeLogicFilterer, error) { - contract, err := bindFxBridgeLogic(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &FxBridgeLogicFilterer{contract: contract}, nil -} - -// bindFxBridgeLogic binds a generic wrapper to an already deployed contract. -func bindFxBridgeLogic(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(FxBridgeLogicABI)) - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogic *FxBridgeLogicRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogic.Contract.FxBridgeLogicCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogic *FxBridgeLogicRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.FxBridgeLogicTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogic *FxBridgeLogicRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.FxBridgeLogicTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogic *FxBridgeLogicCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogic.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogic *FxBridgeLogicTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogic *FxBridgeLogicTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.contract.Transact(opts, method, params...) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogic *FxBridgeLogicCaller) BridgeTokens(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "bridgeTokens", arg0) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogic *FxBridgeLogicSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogic.Contract.BridgeTokens(&_FxBridgeLogic.CallOpts, arg0) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogic.Contract.BridgeTokens(&_FxBridgeLogic.CallOpts, arg0) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicCaller) CheckAssetStatus(opts *bind.CallOpts, _tokenAddr common.Address) (bool, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "checkAssetStatus", _tokenAddr) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogic.Contract.CheckAssetStatus(&_FxBridgeLogic.CallOpts, _tokenAddr) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogic.Contract.CheckAssetStatus(&_FxBridgeLogic.CallOpts, _tokenAddr) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogic *FxBridgeLogicCaller) CheckOracleSignatures(opts *bind.CallOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "checkOracleSignatures", _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) - - if err != nil { - return err - } - - return err - -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogic *FxBridgeLogicSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogic.Contract.CheckOracleSignatures(&_FxBridgeLogic.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogic *FxBridgeLogicCallerSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogic.Contract.CheckOracleSignatures(&_FxBridgeLogic.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. -// -// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) -func (_FxBridgeLogic *FxBridgeLogicCaller) DecodeType(opts *bind.CallOpts, _asset []byte) (string, []byte, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "decodeType", _asset) - - if err != nil { - return *new(string), *new([]byte), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - out1 := *abi.ConvertType(out[1], new([]byte)).(*[]byte) - - return out0, out1, err - -} - -// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. -// -// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) -func (_FxBridgeLogic *FxBridgeLogicSession) DecodeType(_asset []byte) (string, []byte, error) { - return _FxBridgeLogic.Contract.DecodeType(&_FxBridgeLogic.CallOpts, _asset) -} - -// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. -// -// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) DecodeType(_asset []byte) (string, []byte, error) { - return _FxBridgeLogic.Contract.DecodeType(&_FxBridgeLogic.CallOpts, _asset) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogic *FxBridgeLogicCaller) GetBridgeTokenList(opts *bind.CallOpts) ([]FxBridgeLogicBridgeToken, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "getBridgeTokenList") - - if err != nil { - return *new([]FxBridgeLogicBridgeToken), err - } - - out0 := *abi.ConvertType(out[0], new([]FxBridgeLogicBridgeToken)).(*[]FxBridgeLogicBridgeToken) - - return out0, err - -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogic *FxBridgeLogicSession) GetBridgeTokenList() ([]FxBridgeLogicBridgeToken, error) { - return _FxBridgeLogic.Contract.GetBridgeTokenList(&_FxBridgeLogic.CallOpts) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) GetBridgeTokenList() ([]FxBridgeLogicBridgeToken, error) { - return _FxBridgeLogic.Contract.GetBridgeTokenList(&_FxBridgeLogic.CallOpts) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCaller) LastBatchNonce(opts *bind.CallOpts, _erc20Address common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "lastBatchNonce", _erc20Address) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogic.Contract.LastBatchNonce(&_FxBridgeLogic.CallOpts, _erc20Address) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogic.Contract.LastBatchNonce(&_FxBridgeLogic.CallOpts, _erc20Address) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCaller) MakeCheckpoint(opts *bind.CallOpts, _oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "makeCheckpoint", _oracles, _powers, _oracleSetNonce, _fxBridgeId) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogic.Contract.MakeCheckpoint(&_FxBridgeLogic.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogic.Contract.MakeCheckpoint(&_FxBridgeLogic.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogic *FxBridgeLogicCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogic *FxBridgeLogicSession) Owner() (common.Address, error) { - return _FxBridgeLogic.Contract.Owner(&_FxBridgeLogic.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) Owner() (common.Address, error) { - return _FxBridgeLogic.Contract.Owner(&_FxBridgeLogic.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "paused") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) Paused() (bool, error) { - return _FxBridgeLogic.Contract.Paused(&_FxBridgeLogic.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) Paused() (bool, error) { - return _FxBridgeLogic.Contract.Paused(&_FxBridgeLogic.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCaller) StateFxBridgeId(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_fxBridgeId") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogic.Contract.StateFxBridgeId(&_FxBridgeLogic.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogic.Contract.StateFxBridgeId(&_FxBridgeLogic.CallOpts) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCaller) StateLastBatchNonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_lastBatchNonces", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastBatchNonces(&_FxBridgeLogic.CallOpts, arg0) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastBatchNonces(&_FxBridgeLogic.CallOpts, arg0) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCaller) StateLastEventNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_lastEventNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastEventNonce(&_FxBridgeLogic.CallOpts) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastEventNonce(&_FxBridgeLogic.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCaller) StateLastOracleSetCheckpoint(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_lastOracleSetCheckpoint") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogic.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogic.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogic.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogic.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCaller) StateLastOracleSetNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_lastOracleSetNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastOracleSetNonce(&_FxBridgeLogic.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogic.Contract.StateLastOracleSetNonce(&_FxBridgeLogic.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCaller) StatePowerThreshold(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "state_powerThreshold") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogic.Contract.StatePowerThreshold(&_FxBridgeLogic.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogic.Contract.StatePowerThreshold(&_FxBridgeLogic.CallOpts) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogic *FxBridgeLogicCaller) TokenStatus(opts *bind.CallOpts, arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "tokenStatus", arg0) - - outstruct := new(struct { - IsOriginated bool - IsActive bool - IsExist bool - }) - if err != nil { - return *outstruct, err - } - - outstruct.IsOriginated = *abi.ConvertType(out[0], new(bool)).(*bool) - outstruct.IsActive = *abi.ConvertType(out[1], new(bool)).(*bool) - outstruct.IsExist = *abi.ConvertType(out[2], new(bool)).(*bool) - - return *outstruct, err - -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogic *FxBridgeLogicSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogic.Contract.TokenStatus(&_FxBridgeLogic.CallOpts, arg0) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogic.Contract.TokenStatus(&_FxBridgeLogic.CallOpts, arg0) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogic *FxBridgeLogicCaller) Version(opts *bind.CallOpts) (string, error) { - var out []interface{} - err := _FxBridgeLogic.contract.Call(opts, &out, "version") - - if err != nil { - return *new(string), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - - return out0, err - -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogic *FxBridgeLogicSession) Version() (string, error) { - return _FxBridgeLogic.Contract.Version(&_FxBridgeLogic.CallOpts) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogic *FxBridgeLogicCallerSession) Version() (string, error) { - return _FxBridgeLogic.Contract.Version(&_FxBridgeLogic.CallOpts) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactor) ActiveBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "activeBridgeToken", _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.ActiveBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.ActiveBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactor) AddBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "addBridgeToken", _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.AddBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.AddBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. -// -// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) BridgeCall(opts *bind.TransactOpts, _dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "bridgeCall", _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) -} - -// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. -// -// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) BridgeCall(_dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.BridgeCall(&_FxBridgeLogic.TransactOpts, _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) -} - -// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. -// -// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) BridgeCall(_dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.BridgeCall(&_FxBridgeLogic.TransactOpts, _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) Init(opts *bind.TransactOpts, _fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "init", _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Init(&_FxBridgeLogic.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Init(&_FxBridgeLogic.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogic *FxBridgeLogicSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Pause(&_FxBridgeLogic.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Pause(&_FxBridgeLogic.TransactOpts) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactor) PauseBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "pauseBridgeToken", _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.PauseBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.PauseBridgeToken(&_FxBridgeLogic.TransactOpts, _tokenAddr) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogic *FxBridgeLogicSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.RenounceOwnership(&_FxBridgeLogic.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.RenounceOwnership(&_FxBridgeLogic.TransactOpts) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) SendToFx(opts *bind.TransactOpts, _tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "sendToFx", _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.SendToFx(&_FxBridgeLogic.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.SendToFx(&_FxBridgeLogic.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) SubmitBatch(opts *bind.TransactOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "submitBatch", _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.SubmitBatch(&_FxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.SubmitBatch(&_FxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactor) TransferOwner(opts *bind.TransactOpts, _token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "transferOwner", _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.TransferOwner(&_FxBridgeLogic.TransactOpts, _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.TransferOwner(&_FxBridgeLogic.TransactOpts, _token, _newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.TransferOwnership(&_FxBridgeLogic.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.TransferOwnership(&_FxBridgeLogic.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogic *FxBridgeLogicSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Unpause(&_FxBridgeLogic.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogic.Contract.Unpause(&_FxBridgeLogic.TransactOpts) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactor) UpdateOracleSet(opts *bind.TransactOpts, _newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogic.contract.Transact(opts, "updateOracleSet", _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogic *FxBridgeLogicSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.UpdateOracleSet(&_FxBridgeLogic.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogic *FxBridgeLogicTransactorSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogic.Contract.UpdateOracleSet(&_FxBridgeLogic.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// FxBridgeLogicAddBridgeTokenEventIterator is returned from FilterAddBridgeTokenEvent and is used to iterate over the raw logs and unpacked data for AddBridgeTokenEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicAddBridgeTokenEventIterator struct { - Event *FxBridgeLogicAddBridgeTokenEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicAddBridgeTokenEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicAddBridgeTokenEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicAddBridgeTokenEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicAddBridgeTokenEvent represents a AddBridgeTokenEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicAddBridgeTokenEvent struct { - TokenContract common.Address - Name string - Symbol string - Decimals uint8 - EventNonce *big.Int - ChannelIBC [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterAddBridgeTokenEvent is a free log retrieval operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterAddBridgeTokenEvent(opts *bind.FilterOpts, _tokenContract []common.Address) (*FxBridgeLogicAddBridgeTokenEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicAddBridgeTokenEventIterator{contract: _FxBridgeLogic.contract, event: "AddBridgeTokenEvent", logs: logs, sub: sub}, nil -} - -// WatchAddBridgeTokenEvent is a free log subscription operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchAddBridgeTokenEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicAddBridgeTokenEvent, _tokenContract []common.Address) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicAddBridgeTokenEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseAddBridgeTokenEvent is a log parse operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseAddBridgeTokenEvent(log types.Log) (*FxBridgeLogicAddBridgeTokenEvent, error) { - event := new(FxBridgeLogicAddBridgeTokenEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBridgeCallEventIterator is returned from FilterBridgeCallEvent and is used to iterate over the raw logs and unpacked data for BridgeCallEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicBridgeCallEventIterator struct { - Event *FxBridgeLogicBridgeCallEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBridgeCallEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBridgeCallEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBridgeCallEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBridgeCallEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBridgeCallEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBridgeCallEvent represents a BridgeCallEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicBridgeCallEvent struct { - Sender common.Address - Receiver common.Address - To common.Address - EventNonce *big.Int - DstChainId string - GasLimit *big.Int - Value *big.Int - Message []byte - Asset []byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterBridgeCallEvent is a free log retrieval operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. -// -// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterBridgeCallEvent(opts *bind.FilterOpts, _sender []common.Address, _receiver []common.Address, _to []common.Address) (*FxBridgeLogicBridgeCallEventIterator, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _receiverRule []interface{} - for _, _receiverItem := range _receiver { - _receiverRule = append(_receiverRule, _receiverItem) - } - var _toRule []interface{} - for _, _toItem := range _to { - _toRule = append(_toRule, _toItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "BridgeCallEvent", _senderRule, _receiverRule, _toRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBridgeCallEventIterator{contract: _FxBridgeLogic.contract, event: "BridgeCallEvent", logs: logs, sub: sub}, nil -} - -// WatchBridgeCallEvent is a free log subscription operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. -// -// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchBridgeCallEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBridgeCallEvent, _sender []common.Address, _receiver []common.Address, _to []common.Address) (event.Subscription, error) { - - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _receiverRule []interface{} - for _, _receiverItem := range _receiver { - _receiverRule = append(_receiverRule, _receiverItem) - } - var _toRule []interface{} - for _, _toItem := range _to { - _toRule = append(_toRule, _toItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "BridgeCallEvent", _senderRule, _receiverRule, _toRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBridgeCallEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "BridgeCallEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseBridgeCallEvent is a log parse operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. -// -// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseBridgeCallEvent(log types.Log) (*FxBridgeLogicBridgeCallEvent, error) { - event := new(FxBridgeLogicBridgeCallEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "BridgeCallEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the FxBridgeLogic contract. -type FxBridgeLogicInitializedIterator struct { - Event *FxBridgeLogicInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicInitialized represents a Initialized event raised by the FxBridgeLogic contract. -type FxBridgeLogicInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterInitialized(opts *bind.FilterOpts) (*FxBridgeLogicInitializedIterator, error) { - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &FxBridgeLogicInitializedIterator{contract: _FxBridgeLogic.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicInitialized) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicInitialized) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseInitialized(log types.Log) (*FxBridgeLogicInitialized, error) { - event := new(FxBridgeLogicInitialized) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicOracleSetUpdatedEventIterator is returned from FilterOracleSetUpdatedEvent and is used to iterate over the raw logs and unpacked data for OracleSetUpdatedEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicOracleSetUpdatedEventIterator struct { - Event *FxBridgeLogicOracleSetUpdatedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicOracleSetUpdatedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicOracleSetUpdatedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicOracleSetUpdatedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicOracleSetUpdatedEvent represents a OracleSetUpdatedEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicOracleSetUpdatedEvent struct { - NewOracleSetNonce *big.Int - EventNonce *big.Int - Oracles []common.Address - Powers []*big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOracleSetUpdatedEvent is a free log retrieval operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterOracleSetUpdatedEvent(opts *bind.FilterOpts, _newOracleSetNonce []*big.Int) (*FxBridgeLogicOracleSetUpdatedEventIterator, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicOracleSetUpdatedEventIterator{contract: _FxBridgeLogic.contract, event: "OracleSetUpdatedEvent", logs: logs, sub: sub}, nil -} - -// WatchOracleSetUpdatedEvent is a free log subscription operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchOracleSetUpdatedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicOracleSetUpdatedEvent, _newOracleSetNonce []*big.Int) (event.Subscription, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicOracleSetUpdatedEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOracleSetUpdatedEvent is a log parse operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseOracleSetUpdatedEvent(log types.Log) (*FxBridgeLogicOracleSetUpdatedEvent, error) { - event := new(FxBridgeLogicOracleSetUpdatedEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FxBridgeLogic contract. -type FxBridgeLogicOwnershipTransferredIterator struct { - Event *FxBridgeLogicOwnershipTransferred // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicOwnershipTransferredIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicOwnershipTransferred represents a OwnershipTransferred event raised by the FxBridgeLogic contract. -type FxBridgeLogicOwnershipTransferred struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FxBridgeLogicOwnershipTransferredIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicOwnershipTransferredIterator{contract: _FxBridgeLogic.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil -} - -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicOwnershipTransferred) - if err := _FxBridgeLogic.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseOwnershipTransferred(log types.Log) (*FxBridgeLogicOwnershipTransferred, error) { - event := new(FxBridgeLogicOwnershipTransferred) - if err := _FxBridgeLogic.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the FxBridgeLogic contract. -type FxBridgeLogicPausedIterator struct { - Event *FxBridgeLogicPaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicPausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicPausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicPausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicPaused represents a Paused event raised by the FxBridgeLogic contract. -type FxBridgeLogicPaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterPaused(opts *bind.FilterOpts) (*FxBridgeLogicPausedIterator, error) { - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &FxBridgeLogicPausedIterator{contract: _FxBridgeLogic.contract, event: "Paused", logs: logs, sub: sub}, nil -} - -// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicPaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "Paused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicPaused) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Paused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParsePaused(log types.Log) (*FxBridgeLogicPaused, error) { - event := new(FxBridgeLogicPaused) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicSendToFxEventIterator is returned from FilterSendToFxEvent and is used to iterate over the raw logs and unpacked data for SendToFxEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicSendToFxEventIterator struct { - Event *FxBridgeLogicSendToFxEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicSendToFxEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicSendToFxEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicSendToFxEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicSendToFxEvent represents a SendToFxEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicSendToFxEvent struct { - TokenContract common.Address - Sender common.Address - Destination [32]byte - TargetIBC [32]byte - Amount *big.Int - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSendToFxEvent is a free log retrieval operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterSendToFxEvent(opts *bind.FilterOpts, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (*FxBridgeLogicSendToFxEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicSendToFxEventIterator{contract: _FxBridgeLogic.contract, event: "SendToFxEvent", logs: logs, sub: sub}, nil -} - -// WatchSendToFxEvent is a free log subscription operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchSendToFxEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicSendToFxEvent, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicSendToFxEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSendToFxEvent is a log parse operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseSendToFxEvent(log types.Log) (*FxBridgeLogicSendToFxEvent, error) { - event := new(FxBridgeLogicSendToFxEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicTransactionBatchExecutedEventIterator is returned from FilterTransactionBatchExecutedEvent and is used to iterate over the raw logs and unpacked data for TransactionBatchExecutedEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicTransactionBatchExecutedEventIterator struct { - Event *FxBridgeLogicTransactionBatchExecutedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicTransactionBatchExecutedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicTransactionBatchExecutedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicTransactionBatchExecutedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicTransactionBatchExecutedEvent represents a TransactionBatchExecutedEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicTransactionBatchExecutedEvent struct { - BatchNonce *big.Int - Token common.Address - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransactionBatchExecutedEvent is a free log retrieval operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterTransactionBatchExecutedEvent(opts *bind.FilterOpts, _batchNonce []*big.Int, _token []common.Address) (*FxBridgeLogicTransactionBatchExecutedEventIterator, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicTransactionBatchExecutedEventIterator{contract: _FxBridgeLogic.contract, event: "TransactionBatchExecutedEvent", logs: logs, sub: sub}, nil -} - -// WatchTransactionBatchExecutedEvent is a free log subscription operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchTransactionBatchExecutedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicTransactionBatchExecutedEvent, _batchNonce []*big.Int, _token []common.Address) (event.Subscription, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicTransactionBatchExecutedEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransactionBatchExecutedEvent is a log parse operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseTransactionBatchExecutedEvent(log types.Log) (*FxBridgeLogicTransactionBatchExecutedEvent, error) { - event := new(FxBridgeLogicTransactionBatchExecutedEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicTransferOwnerEventIterator is returned from FilterTransferOwnerEvent and is used to iterate over the raw logs and unpacked data for TransferOwnerEvent events raised by the FxBridgeLogic contract. -type FxBridgeLogicTransferOwnerEventIterator struct { - Event *FxBridgeLogicTransferOwnerEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicTransferOwnerEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicTransferOwnerEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicTransferOwnerEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicTransferOwnerEvent represents a TransferOwnerEvent event raised by the FxBridgeLogic contract. -type FxBridgeLogicTransferOwnerEvent struct { - Token common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransferOwnerEvent is a free log retrieval operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterTransferOwnerEvent(opts *bind.FilterOpts) (*FxBridgeLogicTransferOwnerEventIterator, error) { - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return &FxBridgeLogicTransferOwnerEventIterator{contract: _FxBridgeLogic.contract, event: "TransferOwnerEvent", logs: logs, sub: sub}, nil -} - -// WatchTransferOwnerEvent is a free log subscription operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchTransferOwnerEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicTransferOwnerEvent) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicTransferOwnerEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransferOwnerEvent is a log parse operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseTransferOwnerEvent(log types.Log) (*FxBridgeLogicTransferOwnerEvent, error) { - event := new(FxBridgeLogicTransferOwnerEvent) - if err := _FxBridgeLogic.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the FxBridgeLogic contract. -type FxBridgeLogicUnpausedIterator struct { - Event *FxBridgeLogicUnpaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicUnpausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicUnpaused represents a Unpaused event raised by the FxBridgeLogic contract. -type FxBridgeLogicUnpaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) FilterUnpaused(opts *bind.FilterOpts) (*FxBridgeLogicUnpausedIterator, error) { - - logs, sub, err := _FxBridgeLogic.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &FxBridgeLogicUnpausedIterator{contract: _FxBridgeLogic.contract, event: "Unpaused", logs: logs, sub: sub}, nil -} - -// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicUnpaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogic.contract.WatchLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicUnpaused) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Unpaused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogic *FxBridgeLogicFilterer) ParseUnpaused(log types.Log) (*FxBridgeLogicUnpaused, error) { - event := new(FxBridgeLogicUnpaused) - if err := _FxBridgeLogic.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/contract/FxBridgeLogicBSC.go b/contract/FxBridgeLogicBSC.go deleted file mode 100644 index d008f77cd..000000000 --- a/contract/FxBridgeLogicBSC.go +++ /dev/null @@ -1,2333 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package contract - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// FxBridgeLogicBSCBridgeToken is an auto generated low-level Go binding around an user-defined struct. -type FxBridgeLogicBSCBridgeToken struct { - Addr common.Address - Name string - Symbol string - Decimals uint8 -} - -// FxBridgeLogicBSCMetaData contains all meta data concerning the FxBridgeLogicBSC contract. -var FxBridgeLogicBSCMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"}],\"name\":\"AddBridgeTokenEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"OracleSetUpdatedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"SendToFxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_batchNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"TransactionBatchExecutedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"TransferOwnerEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"activeBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isOriginated\",\"type\":\"bool\"}],\"name\":\"addBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bridgeTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"checkAssetStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"_theHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"}],\"name\":\"checkOracleSignatures\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"convert_decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBridgeTokenList\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"internalType\":\"structFxBridgeLogicBSC.BridgeToken[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20Address\",\"type\":\"address\"}],\"name\":\"lastBatchNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_oracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"}],\"name\":\"makeCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"pauseBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToFx\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_fxBridgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"state_lastBatchNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastEventNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_powerThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_destinations\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_fees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_nonceArray\",\"type\":\"uint256[2]\"},{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeReceive\",\"type\":\"address\"}],\"name\":\"submitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOriginated\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_newOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_newPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_currentOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"}],\"name\":\"updateOracleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_to\",\"type\":\"uint8\"}],\"name\":\"updateTokenDecimalsConvert\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50613790806100206000396000f3fe6080604052600436106101cd5760003560e01c8063715018a6116100f7578063aa63a89411610095578063e5a2b5d211610064578063e5a2b5d21461058d578063f1099f61146105a3578063f2fde38b146105c3578063f92367fd146105e3576101cd565b8063aa63a8941461050a578063bb83bf961461052a578063dde65aea14610540578063df97174b14610560576101cd565b80637d9a8ea6116100d15780637d9a8ea6146104755780638456cb59146104b75780638da5cb5b146104cc578063a36a4ab0146104ea576101cd565b8063715018a61461042a57806371cbf3811461043f57806373b205471461045f576101cd565b80633f4ba83a1161016f5780635c975abb1161013e5780635c975abb146103b15780636189d107146103c957806370a0eb94146103dc57806370e5a898146103f2576101cd565b80633f4ba83a1461031b578063474d561c1461033057806354fd4d501461036f5780635ab3716c14610391576101cd565b8063285a190a116101ab578063285a190a1461028957806331678cf6146102ab578063332caa1f146102db5780633a08e299146102fb576101cd565b8063011b2174146101d25780630acac94214610205578063283040b414610267575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612ab4565b6105f9565b6040519081526020015b60405180910390f35b34801561021157600080fd5b50610248610220366004612ab4565b60d06020526000908152604090205460ff808216916101008104821691620100009091041683565b60408051931515845291151560208401521515908201526060016101fc565b34801561027357600080fd5b5061027c610618565b6040516101fc91906131d7565b34801561029557600080fd5b506102a96102a4366004612d57565b6108d1565b005b3480156102b757600080fd5b506102cb6102c6366004612ace565b610a88565b60405190151581526020016101fc565b3480156102e757600080fd5b506102a96102f6366004612bad565b610b3a565b34801561030757600080fd5b506102a9610316366004612e35565b6111e0565b34801561032757600080fd5b506102a96113dd565b34801561033c57600080fd5b506102cb61034b366004612ab4565b6001600160a01b0316600090815260d0602052604090205462010000900460ff1690565b34801561037b57600080fd5b506103846113f7565b6040516101fc919061333e565b34801561039d57600080fd5b506102cb6103ac366004612b77565b611485565b3480156103bd57600080fd5b5060975460ff166102cb565b6102a96103d7366004612b3f565b6114bf565b3480156103e857600080fd5b506101f260cc5481565b3480156103fe57600080fd5b5061041261040d3660046130e9565b61181b565b6040516001600160a01b0390911681526020016101fc565b34801561043657600080fd5b506102a9611845565b34801561044b57600080fd5b506101f261045a366004612f5b565b611857565b34801561046b57600080fd5b506101f260cb5481565b34801561048157600080fd5b506104a5610490366004612ab4565b60d16020526000908152604090205460ff1681565b60405160ff90911681526020016101fc565b3480156104c357600080fd5b506102a96118a4565b3480156104d857600080fd5b506065546001600160a01b0316610412565b3480156104f657600080fd5b506102cb610505366004612ab4565b6118bc565b34801561051657600080fd5b506102a9610525366004612fe7565b6119d2565b34801561053657600080fd5b506101f260cd5481565b34801561054c57600080fd5b506102cb61055b366004612ab4565b611c64565b34801561056c57600080fd5b506101f261057b366004612ab4565b60ce6020526000908152604090205481565b34801561059957600080fd5b506101f260ca5481565b3480156105af57600080fd5b506102cb6105be366004612b00565b611d79565b3480156105cf57600080fd5b506102a96105de366004612ab4565b612060565b3480156105ef57600080fd5b506101f260c95481565b6001600160a01b038116600090815260ce60205260409020545b919050565b60cf546060906000906001600160401b0381111561064657634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156106ae57816020015b61069b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600060ff1681525090565b8152602001906001900390816106645790505b50905060005b60cf548110156108cb57600060cf82815481106106e157634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b0316905060006040518060800160405280836001600160a01b03168152602001836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610792919081019061305a565b8152602001836001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107d057600080fd5b505afa1580156107e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261080c919081019061305a565b8152602001836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561084a57600080fd5b505afa15801561085e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108829190613101565b60ff168152509050808484815181106108ab57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505080806108c3906136f6565b9150506106b4565b50905090565b6000805b8851811015610a5e578681815181106108fe57634e487b7160e01b600052603260045260246000fd5b602002602001015160ff16600014610a4c576109b989828151811061093357634e487b7160e01b600052603260045260246000fd5b60200260200101518589848151811061095c57634e487b7160e01b600052603260045260246000fd5b602002602001015189858151811061098457634e487b7160e01b600052603260045260246000fd5b60200260200101518986815181106109ac57634e487b7160e01b600052603260045260246000fd5b60200260200101516120d9565b610a0a5760405162461bcd60e51b815260206004820181905260248201527f4f7261636c65207369676e617475726520646f6573206e6f74206d617463682e60448201526064015b60405180910390fd5b878181518110610a2a57634e487b7160e01b600052603260045260246000fd5b602002602001015182610a3d9190613524565b915082821115610a4c57610a5e565b80610a56816136f6565b9150506108d5565b50818111610a7e5760405162461bcd60e51b8152600401610a0190613397565b5050505050505050565b6000610a926121a3565b60405163f2fde38b60e01b81526001600160a01b03838116600483015284169063f2fde38b90602401600060405180830381600087803b158015610ad557600080fd5b505af1158015610ae9573d6000803e3d6000fd5b5050604080516001600160a01b038088168252861660208201527fb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699935001905060405180910390a150600192915050565b610b426121fd565b610b4a612257565b6001600160a01b038316600090815260d060209081526040918290208251606081018452905460ff8082161515835261010082048116151593830193909352620100009004909116151591810182905290610be35760405162461bcd60e51b8152602060048201526019602482015278556e737570706f7274656420746f6b656e206164647265737360381b6044820152606401610a01565b8060200151610c275760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881dd85cc81c185d5cd95960821b6044820152606401610a01565b6020808601516001600160a01b038616600090815260ce90925260409091205410610cba5760405162461bcd60e51b815260206004820152603760248201527f4e6577206261746368206e6f6e6365206d75737420626520677265617465722060448201527f7468616e207468652063757272656e74206e6f6e63652e0000000000000000006064820152608401610a01565b824310610d2f5760405162461bcd60e51b815260206004820152603c60248201527f42617463682074696d656f7574206d757374206265206772656174657220746860448201527f616e207468652063757272656e7420626c6f636b206865696768742e000000006064820152608401610a01565b8b518d51148015610d4157508a518d51145b8015610d4e575089518d51145b8015610d5b575088518d51145b610da75760405162461bcd60e51b815260206004820152601d60248201527f4d616c666f726d65642063757272656e74206f7261636c65207365742e0000006044820152606401610a01565b60cc54610dbf8e8e886000602002015160c954611857565b14610ddc5760405162461bcd60e51b8152600401610a01906133f4565b86518851148015610dee575085518851145b610e3a5760405162461bcd60e51b815260206004820181905260248201527f4d616c666f726d6564206261746368206f66207472616e73616374696f6e732e6044820152606401610a01565b610ebb8d8d8d8d8d60c9546f0e8e4c2dce6c2c6e8d2dedc84c2e8c6d60831b8f8f8f8f600160028110610e7d57634e487b7160e01b600052603260045260246000fd5b60200201518f8f8f604051602001610e9d999897969594939291906132c1565b6040516020818303038152906040528051906020012060ca546108d1565b6020808601516001600160a01b038616600090815260ce835260408082209290925560d190925281205460ff16908115610f6657856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2857600080fd5b505afa158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190613101565b60ff1690505b6000805b8b518110156110d857610fad8a8281518110610f9657634e487b7160e01b600052603260045260246000fd5b60200260200101518361229d90919063ffffffff16565b855190925015156001141561105857876001600160a01b03166340c10f19308e8481518110610fec57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b81526004016110259291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050505b6110c68b828151811061107b57634e487b7160e01b600052603260045260246000fd5b60200260200101516110b58e84815181106110a657634e487b7160e01b600052603260045260246000fd5b602002602001015187876122a9565b6001600160a01b038b1691906122e0565b806110d0816136f6565b915050610f6a565b508351151560011415611146576040516340c10f1960e01b8152306004820152602481018290526001600160a01b038816906340c10f1990604401600060405180830381600087803b15801561112d57600080fd5b505af1158015611141573d6000803e3d6000fd5b505050505b611166856111558386866122a9565b6001600160a01b038a1691906122e0565b505060cb5461117992509050600161229d565b60cb556001600160a01b03831684600160200201517f02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab70860cb546040516111c191815260200190565b60405180910390a36111d260018055565b505050505050505050505050565b6111e8612257565b83871161125d5760405162461bcd60e51b815260206004820152603b60248201527f4e6577206f7261636c6520736574206e6f6e6365206d7573742062652067726560448201527f61746572207468616e207468652063757272656e74206e6f6e636500000000006064820152608401610a01565b87518951146112ae5760405162461bcd60e51b815260206004820152601860248201527f4d616c666f726d6564206e6577206f7261636c652073657400000000000000006044820152606401610a01565b845186511480156112c0575082518651145b80156112cd575081518651145b80156112da575080518651145b6113265760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610a01565b60cc5461133787878760c954611857565b146113545760405162461bcd60e51b8152600401610a01906133f4565b60006113648a8a8a60c954611857565b905061137787878686868660ca546108d1565b60cc81905560cd88905560cb5461138f90600161229d565b60cb81905560405189917f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3916113c991908e908e9061349c565b60405180910390a250505050505050505050565b6113e56121a3565b6113ed61234e565b6113f5612397565b565b60d28054611404906136bb565b80601f0160208091040260200160405190810160405280929190818152602001828054611430906136bb565b801561147d5780601f106114525761010080835404028352916020019161147d565b820191906000526020600020905b81548152906001019060200180831161146057829003601f168201915b505050505081565b600061148f6121a3565b506001600160a01b038216600090815260d160205260409020805460ff831660ff19909116179055600192915050565b6114c76121fd565b6114cf612257565b6000811161152a5760405162461bcd60e51b815260206004820152602260248201527f616d6f756e742073686f756c642062652067726561746572207468616e207a65604482015261726f60f01b6064820152608401610a01565b6001600160a01b038416600090815260d060209081526040918290208251606081018452905460ff80821615158352610100820481161515938301939093526201000090049091161515918101829052906115c35760405162461bcd60e51b8152602060048201526019602482015278556e737570706f7274656420746f6b656e206164647265737360381b6044820152606401610a01565b80602001516116075760405162461bcd60e51b815260206004820152601060248201526f1d1bdad95b881dd85cc81c185d5cd95960821b6044820152606401610a01565b805182901515600114156116895761162a6001600160a01b0387163330866123e9565b604051630852cd8d60e31b8152600481018490526001600160a01b038716906342966c6890602401600060405180830381600087803b15801561166c57600080fd5b505af1158015611680573d6000803e3d6000fd5b505050506117a6565b6001600160a01b038616600090815260d1602052604090205460ff16801561178f576000876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e9190613101565b60ff16905061172e8582846122a9565b925061173b8383836122a9565b94506000851161178d5760405162461bcd60e51b815260206004820152601860248201527f436f6e76657274656420616d6f756e74206973207a65726f00000000000000006044820152606401610a01565b505b6117a46001600160a01b0388163330876123e9565b505b60cb546117b490600161229d565b60cb819055604080518681526020810184905290810191909152859033906001600160a01b038916907f034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c9060600160405180910390a4505061181560018055565b50505050565b60cf818154811061182b57600080fd5b6000918252602090912001546001600160a01b0316905081565b61184d6121a3565b6113f56000612421565b6040516000906918da1958dadc1bda5b9d60b21b90611882908490839087908a908a9060200161327e565b604051602081830303815290604052805190602001209150505b949350505050565b6118ac6121a3565b6118b4612257565b6113f5612473565b60006118c66121a3565b6001600160a01b038216600090815260d0602052604090205462010000900460ff1615156001146119395760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610a01565b6001600160a01b038216600090815260d0602052604090205460ff6101009091041615156001146119ac5760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792070617573656400000000006044820152606401610a01565b506001600160a01b0316600090815260d060205260409020805461ff0019169055600190565b600054610100900460ff16158080156119f25750600054600160ff909116105b80611a0c5750303b158015611a0c575060005460ff166001145b611a6f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a01565b6000805460ff191660011790558015611a92576000805461ff0019166101001790555b611a9a6124b0565b611aa26124df565b611aaa61250e565b8151835114611afb5760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610a01565b6000805b8351811015611b5c57838181518110611b2857634e487b7160e01b600052603260045260246000fd5b602002602001015182611b3b9190613524565b915085821115611b4a57611b5c565b80611b54816136f6565b915050611aff565b50848111611b7c5760405162461bcd60e51b8152600401610a0190613397565b6000611b8b858560008a611857565b60c988905560ca87905560cc819055600060cd55600160cb55604080518082019091526005808252640312e302e360dc1b6020909201918252919250611bd49160d2919061287d565b5060cd547f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b360cb548787604051611c0d9392919061349c565b60405180910390a250508015611c5d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000611c6e6121a3565b6001600160a01b038216600090815260d0602052604090205462010000900460ff161515600114611ce15760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610a01565b6001600160a01b038216600090815260d06020526040902054610100900460ff1615611d4f5760405162461bcd60e51b815260206004820152601c60248201527f42726964676520746f6b656e20616c72656164792061637469766564000000006044820152606401610a01565b506001600160a01b0316600090815260d060205260409020805461ff001916610100179055600190565b6000611d836121a3565b6001600160a01b038416611dd15760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610a01565b6001600160a01b038416600090815260d0602052604090205462010000900460ff1615611e405760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792065786973747300000000006044820152606401610a01565b611e6c84604051806060016040528085151581526020016001151581526020016001151581525061253d565b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea757600080fd5b505afa158015611ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611edf9190613101565b6001600160a01b038616600090815260d1602052604090205490915060ff1615611f2157506001600160a01b038416600090815260d1602052604090205460ff165b846001600160a01b03167f2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611f8557600080fd5b505afa158015611f99573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611fc1919081019061305a565b876001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611ffa57600080fd5b505afa15801561200e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612036919081019061305a565b60cb5460405161204b93929187918b90613351565b60405180910390a260019150505b9392505050565b6120686121a3565b6001600160a01b0381166120cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a01565b6120d681612421565b50565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018590526000908190605c0160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa158015612179573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b03161491505095945050505050565b6065546001600160a01b031633146113f55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a01565b600260015414156122505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a01565b6002600155565b60975460ff16156113f55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610a01565b60006120598284613524565b6000816122b7575082612059565b61189c6122c584600a6135a2565b6122da6122d385600a6135a2565b87906125e9565b906125f5565b6040516001600160a01b03831660248201526044810182905261234390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612601565b505050565b60018055565b60975460ff166113f55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610a01565b61239f61234e565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b03808516602483015283166044820152606481018290526118159085906323b872dd60e01b9060840161230c565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61247b612257565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123cc3390565b600054610100900460ff166124d75760405162461bcd60e51b8152600401610a0190613451565b6113f56126d3565b600054610100900460ff166125065760405162461bcd60e51b8152600401610a0190613451565b6113f5612706565b600054610100900460ff166125355760405162461bcd60e51b8152600401610a0190613451565b6113f5612736565b60cf805460018082019092557facb8d954e2cfef495862221e91bd7523613cf8808827cb33edfe4904cc51bf290180546001600160a01b0319166001600160a01b038516908117909155600090815260d0602090815260409182902084518154928601519386015160ff199093169015151761ff001916610100931515939093029290921762ff00001916620100009115159190910217905560cb546125e29161229d565b60cb555050565b60006120598284613670565b6000612059828461353c565b6000612656826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661275d9092919063ffffffff16565b80519091501561234357808060200190518101906126749190612fcb565b6123435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a01565b600054610100900460ff166126fa5760405162461bcd60e51b8152600401610a0190613451565b6097805460ff19169055565b600054610100900460ff1661272d5760405162461bcd60e51b8152600401610a0190613451565b6113f533612421565b600054610100900460ff166123485760405162461bcd60e51b8152600401610a0190613451565b606061189c848460008585600080866001600160a01b0316858760405161278491906131bb565b60006040518083038185875af1925050503d80600081146127c1576040519150601f19603f3d011682016040523d82523d6000602084013e6127c6565b606091505b50915091506127d7878383876127e2565b979650505050505050565b6060831561284e578251612847576001600160a01b0385163b6128475760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a01565b508161189c565b61189c83838151156128635781518083602001fd5b8060405162461bcd60e51b8152600401610a01919061333e565b828054612889906136bb565b90600052602060002090601f0160209004810192826128ab57600085556128f1565b82601f106128c457805160ff19168380011785556128f1565b828001600101855582156128f1579182015b828111156128f15782518255916020019190600101906128d6565b506128fd929150612901565b5090565b5b808211156128fd5760008155600101612902565b80356001600160a01b038116811461061357600080fd5b600082601f83011261293d578081fd5b8135602061295261294d83613501565b6134d1565b828152818101908583018385028701840188101561296e578586fd5b855b858110156129935761298182612916565b84529284019290840190600101612970565b5090979650505050505050565b600082601f8301126129b0578081fd5b813560206129c061294d83613501565b82815281810190858301838502870184018810156129dc578586fd5b855b85811015612993578135845292840192908401906001016129de565b600082601f830112612a0a578081fd5b612a1460406134d1565b808385604086011115612a25578384fd5b835b6002811015612a46578135845260209384019390910190600101612a27565b509095945050505050565b600082601f830112612a61578081fd5b81356020612a7161294d83613501565b8281528181019085830183850287018401881015612a8d578586fd5b855b85811015612993578135612aa28161374b565b84529284019290840190600101612a8f565b600060208284031215612ac5578081fd5b61205982612916565b60008060408385031215612ae0578081fd5b612ae983612916565b9150612af760208401612916565b90509250929050565b600080600060608486031215612b14578081fd5b612b1d84612916565b9250602084013591506040840135612b348161373d565b809150509250925092565b60008060008060808587031215612b54578081fd5b612b5d85612916565b966020860135965060408601359560600135945092505050565b60008060408385031215612b89578182fd5b612b9283612916565b91506020830135612ba28161374b565b809150509250929050565b6000806000806000806000806000806000806101a08d8f031215612bcf57898afd5b6001600160401b038d351115612be357898afd5b612bf08e8e358f0161292d565b9b506001600160401b0360208e01351115612c0957898afd5b612c198e60208f01358f016129a0565b9a506001600160401b0360408e01351115612c3257898afd5b612c428e60408f01358f01612a51565b99506001600160401b0360608e01351115612c5b578788fd5b612c6b8e60608f01358f016129a0565b98506001600160401b0360808e01351115612c84578788fd5b612c948e60808f01358f016129a0565b97506001600160401b0360a08e01351115612cad578687fd5b612cbd8e60a08f01358f016129a0565b96506001600160401b0360c08e01351115612cd6578586fd5b612ce68e60c08f01358f0161292d565b95506001600160401b0360e08e01351115612cff578485fd5b612d0f8e60e08f01358f016129a0565b9450612d1f8e6101008f016129fa565b9350612d2e6101408e01612916565b92506101608d01359150612d456101808e01612916565b90509295989b509295989b509295989b565b600080600080600080600060e0888a031215612d71578081fd5b87356001600160401b0380821115612d87578283fd5b612d938b838c0161292d565b985060208a0135915080821115612da8578283fd5b612db48b838c016129a0565b975060408a0135915080821115612dc9578283fd5b612dd58b838c01612a51565b965060608a0135915080821115612dea578283fd5b612df68b838c016129a0565b955060808a0135915080821115612e0b578283fd5b50612e188a828b016129a0565b93505060a0880135915060c0880135905092959891949750929550565b60008060008060008060008060006101208a8c031215612e53578283fd5b89356001600160401b0380821115612e69578485fd5b612e758d838e0161292d565b9a5060208c0135915080821115612e8a578485fd5b612e968d838e016129a0565b995060408c0135985060608c0135915080821115612eb2578485fd5b612ebe8d838e0161292d565b975060808c0135915080821115612ed3578485fd5b612edf8d838e016129a0565b965060a08c0135955060c08c0135915080821115612efb578485fd5b612f078d838e01612a51565b945060e08c0135915080821115612f1c578384fd5b612f288d838e016129a0565b93506101008c0135915080821115612f3e578283fd5b50612f4b8c828d016129a0565b9150509295985092959850929598565b60008060008060808587031215612f70578182fd5b84356001600160401b0380821115612f86578384fd5b612f928883890161292d565b95506020870135915080821115612fa7578384fd5b50612fb4878288016129a0565b949794965050505060408301359260600135919050565b600060208284031215612fdc578081fd5b81516120598161373d565b60008060008060808587031215612ffc578182fd5b843593506020850135925060408501356001600160401b0380821115613020578384fd5b61302c8883890161292d565b93506060870135915080821115613041578283fd5b5061304e878288016129a0565b91505092959194509250565b60006020828403121561306b578081fd5b81516001600160401b0380821115613081578283fd5b818401915084601f830112613094578283fd5b8151818111156130a6576130a6613727565b6130b9601f8201601f19166020016134d1565b91508082528560208285010111156130cf578384fd5b6130e081602084016020860161368f565b50949350505050565b6000602082840312156130fa578081fd5b5035919050565b600060208284031215613112578081fd5b81516120598161374b565b6000815180845260208085019450808401835b838110156131555781516001600160a01b031687529582019590820190600101613130565b509495945050505050565b6000815180845260208085019450808401835b8381101561315557815187529582019590820190600101613173565b600081518084526131a781602086016020860161368f565b601f01601f19169290920160200192915050565b600082516131cd81846020870161368f565b9190910192915050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561327057888303603f19018552815180516001600160a01b03168452878101516080898601819052906132348287018261318f565b915050878201518582038987015261324c828261318f565b60609384015160ff16969093019590955250948701949250908601906001016131fb565b509098975050505050505050565b600086825285602083015284604083015260a060608301526132a360a083018561311d565b82810360808401526132b58185613160565b98975050505050505050565b60006101208b83528a60208401528060408401526132e18184018b613160565b905082810360608401526132f5818a61311d565b905082810360808401526133098189613160565b60a084019790975250506001600160a01b0393841660c082015260e08101929092529091166101009091015295945050505050565b600060208252612059602083018461318f565b600060a0825261336460a083018861318f565b8281036020840152613376818861318f565b60ff9690961660408401525050606081019290925260809091015292915050565b60208082526039908201527f5375626d6974746564206f7261636c6520736574207369676e6174757265732060408201527f646f206e6f74206861766520656e6f75676820706f7765722e00000000000000606082015260800190565b6020808252603c908201527f537570706c6965642063757272656e74206f7261636c657320616e6420706f7760408201527f65727320646f206e6f74206d6174636820636865636b706f696e742e00000000606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000848252606060208301526134b5606083018561311d565b82810360408401526134c78185613160565b9695505050505050565b604051601f8201601f191681016001600160401b03811182821017156134f9576134f9613727565b604052919050565b60006001600160401b0382111561351a5761351a613727565b5060209081020190565b6000821982111561353757613537613711565b500190565b60008261355757634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161356e5750613599565b81870482111561358057613580613711565b8086161561358d57918102915b9490941c93800261355f565b94509492505050565b600061205960001984846000826135bb57506001612059565b816135c857506000612059565b81600181146135de57600281146135e857613615565b6001915050612059565b60ff8411156135f9576135f9613711565b6001841b91508482111561360f5761360f613711565b50612059565b5060208310610133831016604e8410600b8410161715613648575081810a8381111561364357613643613711565b612059565b613655848484600161355c565b80860482111561366757613667613711565b02949350505050565b600081600019048311821515161561368a5761368a613711565b500290565b60005b838110156136aa578181015183820152602001613692565b838111156118155750506000910152565b6002810460018216806136cf57607f821691505b602082108114156136f057634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561370a5761370a613711565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146120d657600080fd5b60ff811681146120d657600080fdfea26469706673582212203ed4db4452013a8a70c543ceb34e90480323497170ec1e0f38832a274aef681464736f6c63430008020033", -} - -// FxBridgeLogicBSCABI is the input ABI used to generate the binding from. -// Deprecated: Use FxBridgeLogicBSCMetaData.ABI instead. -var FxBridgeLogicBSCABI = FxBridgeLogicBSCMetaData.ABI - -// FxBridgeLogicBSCBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use FxBridgeLogicBSCMetaData.Bin instead. -var FxBridgeLogicBSCBin = FxBridgeLogicBSCMetaData.Bin - -// DeployFxBridgeLogicBSC deploys a new Ethereum contract, binding an instance of FxBridgeLogicBSC to it. -func DeployFxBridgeLogicBSC(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *FxBridgeLogicBSC, error) { - parsed, err := FxBridgeLogicBSCMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FxBridgeLogicBSCBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &FxBridgeLogicBSC{FxBridgeLogicBSCCaller: FxBridgeLogicBSCCaller{contract: contract}, FxBridgeLogicBSCTransactor: FxBridgeLogicBSCTransactor{contract: contract}, FxBridgeLogicBSCFilterer: FxBridgeLogicBSCFilterer{contract: contract}}, nil -} - -// FxBridgeLogicBSC is an auto generated Go binding around an Ethereum contract. -type FxBridgeLogicBSC struct { - FxBridgeLogicBSCCaller // Read-only binding to the contract - FxBridgeLogicBSCTransactor // Write-only binding to the contract - FxBridgeLogicBSCFilterer // Log filterer for contract events -} - -// FxBridgeLogicBSCCaller is an auto generated read-only Go binding around an Ethereum contract. -type FxBridgeLogicBSCCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicBSCTransactor is an auto generated write-only Go binding around an Ethereum contract. -type FxBridgeLogicBSCTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicBSCFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type FxBridgeLogicBSCFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicBSCSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type FxBridgeLogicBSCSession struct { - Contract *FxBridgeLogicBSC // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicBSCCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type FxBridgeLogicBSCCallerSession struct { - Contract *FxBridgeLogicBSCCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// FxBridgeLogicBSCTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type FxBridgeLogicBSCTransactorSession struct { - Contract *FxBridgeLogicBSCTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicBSCRaw is an auto generated low-level Go binding around an Ethereum contract. -type FxBridgeLogicBSCRaw struct { - Contract *FxBridgeLogicBSC // Generic contract binding to access the raw methods on -} - -// FxBridgeLogicBSCCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type FxBridgeLogicBSCCallerRaw struct { - Contract *FxBridgeLogicBSCCaller // Generic read-only contract binding to access the raw methods on -} - -// FxBridgeLogicBSCTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type FxBridgeLogicBSCTransactorRaw struct { - Contract *FxBridgeLogicBSCTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewFxBridgeLogicBSC creates a new instance of FxBridgeLogicBSC, bound to a specific deployed contract. -func NewFxBridgeLogicBSC(address common.Address, backend bind.ContractBackend) (*FxBridgeLogicBSC, error) { - contract, err := bindFxBridgeLogicBSC(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSC{FxBridgeLogicBSCCaller: FxBridgeLogicBSCCaller{contract: contract}, FxBridgeLogicBSCTransactor: FxBridgeLogicBSCTransactor{contract: contract}, FxBridgeLogicBSCFilterer: FxBridgeLogicBSCFilterer{contract: contract}}, nil -} - -// NewFxBridgeLogicBSCCaller creates a new read-only instance of FxBridgeLogicBSC, bound to a specific deployed contract. -func NewFxBridgeLogicBSCCaller(address common.Address, caller bind.ContractCaller) (*FxBridgeLogicBSCCaller, error) { - contract, err := bindFxBridgeLogicBSC(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCCaller{contract: contract}, nil -} - -// NewFxBridgeLogicBSCTransactor creates a new write-only instance of FxBridgeLogicBSC, bound to a specific deployed contract. -func NewFxBridgeLogicBSCTransactor(address common.Address, transactor bind.ContractTransactor) (*FxBridgeLogicBSCTransactor, error) { - contract, err := bindFxBridgeLogicBSC(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCTransactor{contract: contract}, nil -} - -// NewFxBridgeLogicBSCFilterer creates a new log filterer instance of FxBridgeLogicBSC, bound to a specific deployed contract. -func NewFxBridgeLogicBSCFilterer(address common.Address, filterer bind.ContractFilterer) (*FxBridgeLogicBSCFilterer, error) { - contract, err := bindFxBridgeLogicBSC(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCFilterer{contract: contract}, nil -} - -// bindFxBridgeLogicBSC binds a generic wrapper to an already deployed contract. -func bindFxBridgeLogicBSC(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := FxBridgeLogicBSCMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogicBSC.Contract.FxBridgeLogicBSCCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.FxBridgeLogicBSCTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.FxBridgeLogicBSCTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogicBSC.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.contract.Transact(opts, method, params...) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) BridgeTokens(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "bridgeTokens", arg0) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogicBSC.Contract.BridgeTokens(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogicBSC.Contract.BridgeTokens(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) CheckAssetStatus(opts *bind.CallOpts, _tokenAddr common.Address) (bool, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "checkAssetStatus", _tokenAddr) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogicBSC.Contract.CheckAssetStatus(&_FxBridgeLogicBSC.CallOpts, _tokenAddr) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogicBSC.Contract.CheckAssetStatus(&_FxBridgeLogicBSC.CallOpts, _tokenAddr) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) CheckOracleSignatures(opts *bind.CallOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "checkOracleSignatures", _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) - - if err != nil { - return err - } - - return err - -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogicBSC.Contract.CheckOracleSignatures(&_FxBridgeLogicBSC.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogicBSC.Contract.CheckOracleSignatures(&_FxBridgeLogicBSC.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// ConvertDecimals is a free data retrieval call binding the contract method 0x7d9a8ea6. -// -// Solidity: function convert_decimals(address ) view returns(uint8) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) ConvertDecimals(opts *bind.CallOpts, arg0 common.Address) (uint8, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "convert_decimals", arg0) - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// ConvertDecimals is a free data retrieval call binding the contract method 0x7d9a8ea6. -// -// Solidity: function convert_decimals(address ) view returns(uint8) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) ConvertDecimals(arg0 common.Address) (uint8, error) { - return _FxBridgeLogicBSC.Contract.ConvertDecimals(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// ConvertDecimals is a free data retrieval call binding the contract method 0x7d9a8ea6. -// -// Solidity: function convert_decimals(address ) view returns(uint8) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) ConvertDecimals(arg0 common.Address) (uint8, error) { - return _FxBridgeLogicBSC.Contract.ConvertDecimals(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) GetBridgeTokenList(opts *bind.CallOpts) ([]FxBridgeLogicBSCBridgeToken, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "getBridgeTokenList") - - if err != nil { - return *new([]FxBridgeLogicBSCBridgeToken), err - } - - out0 := *abi.ConvertType(out[0], new([]FxBridgeLogicBSCBridgeToken)).(*[]FxBridgeLogicBSCBridgeToken) - - return out0, err - -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) GetBridgeTokenList() ([]FxBridgeLogicBSCBridgeToken, error) { - return _FxBridgeLogicBSC.Contract.GetBridgeTokenList(&_FxBridgeLogicBSC.CallOpts) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) GetBridgeTokenList() ([]FxBridgeLogicBSCBridgeToken, error) { - return _FxBridgeLogicBSC.Contract.GetBridgeTokenList(&_FxBridgeLogicBSC.CallOpts) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) LastBatchNonce(opts *bind.CallOpts, _erc20Address common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "lastBatchNonce", _erc20Address) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.LastBatchNonce(&_FxBridgeLogicBSC.CallOpts, _erc20Address) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.LastBatchNonce(&_FxBridgeLogicBSC.CallOpts, _erc20Address) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) MakeCheckpoint(opts *bind.CallOpts, _oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "makeCheckpoint", _oracles, _powers, _oracleSetNonce, _fxBridgeId) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.MakeCheckpoint(&_FxBridgeLogicBSC.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.MakeCheckpoint(&_FxBridgeLogicBSC.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Owner() (common.Address, error) { - return _FxBridgeLogicBSC.Contract.Owner(&_FxBridgeLogicBSC.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) Owner() (common.Address, error) { - return _FxBridgeLogicBSC.Contract.Owner(&_FxBridgeLogicBSC.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "paused") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Paused() (bool, error) { - return _FxBridgeLogicBSC.Contract.Paused(&_FxBridgeLogicBSC.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) Paused() (bool, error) { - return _FxBridgeLogicBSC.Contract.Paused(&_FxBridgeLogicBSC.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StateFxBridgeId(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_fxBridgeId") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.StateFxBridgeId(&_FxBridgeLogicBSC.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.StateFxBridgeId(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StateLastBatchNonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_lastBatchNonces", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastBatchNonces(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastBatchNonces(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StateLastEventNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_lastEventNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastEventNonce(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastEventNonce(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StateLastOracleSetCheckpoint(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_lastOracleSetCheckpoint") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogicBSC.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StateLastOracleSetNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_lastOracleSetNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastOracleSetNonce(&_FxBridgeLogicBSC.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StateLastOracleSetNonce(&_FxBridgeLogicBSC.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) StatePowerThreshold(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "state_powerThreshold") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StatePowerThreshold(&_FxBridgeLogicBSC.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogicBSC.Contract.StatePowerThreshold(&_FxBridgeLogicBSC.CallOpts) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) TokenStatus(opts *bind.CallOpts, arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "tokenStatus", arg0) - - outstruct := new(struct { - IsOriginated bool - IsActive bool - IsExist bool - }) - if err != nil { - return *outstruct, err - } - - outstruct.IsOriginated = *abi.ConvertType(out[0], new(bool)).(*bool) - outstruct.IsActive = *abi.ConvertType(out[1], new(bool)).(*bool) - outstruct.IsExist = *abi.ConvertType(out[2], new(bool)).(*bool) - - return *outstruct, err - -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogicBSC.Contract.TokenStatus(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogicBSC.Contract.TokenStatus(&_FxBridgeLogicBSC.CallOpts, arg0) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCaller) Version(opts *bind.CallOpts) (string, error) { - var out []interface{} - err := _FxBridgeLogicBSC.contract.Call(opts, &out, "version") - - if err != nil { - return *new(string), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - - return out0, err - -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Version() (string, error) { - return _FxBridgeLogicBSC.Contract.Version(&_FxBridgeLogicBSC.CallOpts) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCCallerSession) Version() (string, error) { - return _FxBridgeLogicBSC.Contract.Version(&_FxBridgeLogicBSC.CallOpts) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) ActiveBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "activeBridgeToken", _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.ActiveBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.ActiveBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) AddBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "addBridgeToken", _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.AddBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.AddBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) Init(opts *bind.TransactOpts, _fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "init", _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Init(&_FxBridgeLogicBSC.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Init(&_FxBridgeLogicBSC.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Pause(&_FxBridgeLogicBSC.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Pause(&_FxBridgeLogicBSC.TransactOpts) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) PauseBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "pauseBridgeToken", _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.PauseBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.PauseBridgeToken(&_FxBridgeLogicBSC.TransactOpts, _tokenAddr) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.RenounceOwnership(&_FxBridgeLogicBSC.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.RenounceOwnership(&_FxBridgeLogicBSC.TransactOpts) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) payable returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) SendToFx(opts *bind.TransactOpts, _tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "sendToFx", _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) payable returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.SendToFx(&_FxBridgeLogicBSC.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) payable returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.SendToFx(&_FxBridgeLogicBSC.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) SubmitBatch(opts *bind.TransactOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "submitBatch", _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.SubmitBatch(&_FxBridgeLogicBSC.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.SubmitBatch(&_FxBridgeLogicBSC.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) TransferOwner(opts *bind.TransactOpts, _token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "transferOwner", _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.TransferOwner(&_FxBridgeLogicBSC.TransactOpts, _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.TransferOwner(&_FxBridgeLogicBSC.TransactOpts, _token, _newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.TransferOwnership(&_FxBridgeLogicBSC.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.TransferOwnership(&_FxBridgeLogicBSC.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Unpause(&_FxBridgeLogicBSC.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.Unpause(&_FxBridgeLogicBSC.TransactOpts) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) UpdateOracleSet(opts *bind.TransactOpts, _newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "updateOracleSet", _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.UpdateOracleSet(&_FxBridgeLogicBSC.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.UpdateOracleSet(&_FxBridgeLogicBSC.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateTokenDecimalsConvert is a paid mutator transaction binding the contract method 0x5ab3716c. -// -// Solidity: function updateTokenDecimalsConvert(address _token, uint8 _to) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactor) UpdateTokenDecimalsConvert(opts *bind.TransactOpts, _token common.Address, _to uint8) (*types.Transaction, error) { - return _FxBridgeLogicBSC.contract.Transact(opts, "updateTokenDecimalsConvert", _token, _to) -} - -// UpdateTokenDecimalsConvert is a paid mutator transaction binding the contract method 0x5ab3716c. -// -// Solidity: function updateTokenDecimalsConvert(address _token, uint8 _to) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCSession) UpdateTokenDecimalsConvert(_token common.Address, _to uint8) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.UpdateTokenDecimalsConvert(&_FxBridgeLogicBSC.TransactOpts, _token, _to) -} - -// UpdateTokenDecimalsConvert is a paid mutator transaction binding the contract method 0x5ab3716c. -// -// Solidity: function updateTokenDecimalsConvert(address _token, uint8 _to) returns(bool) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCTransactorSession) UpdateTokenDecimalsConvert(_token common.Address, _to uint8) (*types.Transaction, error) { - return _FxBridgeLogicBSC.Contract.UpdateTokenDecimalsConvert(&_FxBridgeLogicBSC.TransactOpts, _token, _to) -} - -// FxBridgeLogicBSCAddBridgeTokenEventIterator is returned from FilterAddBridgeTokenEvent and is used to iterate over the raw logs and unpacked data for AddBridgeTokenEvent events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCAddBridgeTokenEventIterator struct { - Event *FxBridgeLogicBSCAddBridgeTokenEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCAddBridgeTokenEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCAddBridgeTokenEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCAddBridgeTokenEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCAddBridgeTokenEvent represents a AddBridgeTokenEvent event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCAddBridgeTokenEvent struct { - TokenContract common.Address - Name string - Symbol string - Decimals uint8 - EventNonce *big.Int - ChannelIBC [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterAddBridgeTokenEvent is a free log retrieval operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterAddBridgeTokenEvent(opts *bind.FilterOpts, _tokenContract []common.Address) (*FxBridgeLogicBSCAddBridgeTokenEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCAddBridgeTokenEventIterator{contract: _FxBridgeLogicBSC.contract, event: "AddBridgeTokenEvent", logs: logs, sub: sub}, nil -} - -// WatchAddBridgeTokenEvent is a free log subscription operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchAddBridgeTokenEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCAddBridgeTokenEvent, _tokenContract []common.Address) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCAddBridgeTokenEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseAddBridgeTokenEvent is a log parse operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseAddBridgeTokenEvent(log types.Log) (*FxBridgeLogicBSCAddBridgeTokenEvent, error) { - event := new(FxBridgeLogicBSCAddBridgeTokenEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCInitializedIterator struct { - Event *FxBridgeLogicBSCInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCInitialized represents a Initialized event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterInitialized(opts *bind.FilterOpts) (*FxBridgeLogicBSCInitializedIterator, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCInitializedIterator{contract: _FxBridgeLogicBSC.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCInitialized) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCInitialized) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseInitialized(log types.Log) (*FxBridgeLogicBSCInitialized, error) { - event := new(FxBridgeLogicBSCInitialized) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCOracleSetUpdatedEventIterator is returned from FilterOracleSetUpdatedEvent and is used to iterate over the raw logs and unpacked data for OracleSetUpdatedEvent events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCOracleSetUpdatedEventIterator struct { - Event *FxBridgeLogicBSCOracleSetUpdatedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCOracleSetUpdatedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCOracleSetUpdatedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCOracleSetUpdatedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCOracleSetUpdatedEvent represents a OracleSetUpdatedEvent event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCOracleSetUpdatedEvent struct { - NewOracleSetNonce *big.Int - EventNonce *big.Int - Oracles []common.Address - Powers []*big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOracleSetUpdatedEvent is a free log retrieval operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterOracleSetUpdatedEvent(opts *bind.FilterOpts, _newOracleSetNonce []*big.Int) (*FxBridgeLogicBSCOracleSetUpdatedEventIterator, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCOracleSetUpdatedEventIterator{contract: _FxBridgeLogicBSC.contract, event: "OracleSetUpdatedEvent", logs: logs, sub: sub}, nil -} - -// WatchOracleSetUpdatedEvent is a free log subscription operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchOracleSetUpdatedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCOracleSetUpdatedEvent, _newOracleSetNonce []*big.Int) (event.Subscription, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCOracleSetUpdatedEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOracleSetUpdatedEvent is a log parse operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseOracleSetUpdatedEvent(log types.Log) (*FxBridgeLogicBSCOracleSetUpdatedEvent, error) { - event := new(FxBridgeLogicBSCOracleSetUpdatedEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCOwnershipTransferredIterator struct { - Event *FxBridgeLogicBSCOwnershipTransferred // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCOwnershipTransferredIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCOwnershipTransferred represents a OwnershipTransferred event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCOwnershipTransferred struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FxBridgeLogicBSCOwnershipTransferredIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCOwnershipTransferredIterator{contract: _FxBridgeLogicBSC.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil -} - -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCOwnershipTransferred) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseOwnershipTransferred(log types.Log) (*FxBridgeLogicBSCOwnershipTransferred, error) { - event := new(FxBridgeLogicBSCOwnershipTransferred) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCPausedIterator struct { - Event *FxBridgeLogicBSCPaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCPausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCPausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCPausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCPaused represents a Paused event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCPaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterPaused(opts *bind.FilterOpts) (*FxBridgeLogicBSCPausedIterator, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCPausedIterator{contract: _FxBridgeLogicBSC.contract, event: "Paused", logs: logs, sub: sub}, nil -} - -// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCPaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "Paused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCPaused) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Paused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParsePaused(log types.Log) (*FxBridgeLogicBSCPaused, error) { - event := new(FxBridgeLogicBSCPaused) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCSendToFxEventIterator is returned from FilterSendToFxEvent and is used to iterate over the raw logs and unpacked data for SendToFxEvent events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCSendToFxEventIterator struct { - Event *FxBridgeLogicBSCSendToFxEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCSendToFxEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCSendToFxEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCSendToFxEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCSendToFxEvent represents a SendToFxEvent event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCSendToFxEvent struct { - TokenContract common.Address - Sender common.Address - Destination [32]byte - TargetIBC [32]byte - Amount *big.Int - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSendToFxEvent is a free log retrieval operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterSendToFxEvent(opts *bind.FilterOpts, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (*FxBridgeLogicBSCSendToFxEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCSendToFxEventIterator{contract: _FxBridgeLogicBSC.contract, event: "SendToFxEvent", logs: logs, sub: sub}, nil -} - -// WatchSendToFxEvent is a free log subscription operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchSendToFxEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCSendToFxEvent, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCSendToFxEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSendToFxEvent is a log parse operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseSendToFxEvent(log types.Log) (*FxBridgeLogicBSCSendToFxEvent, error) { - event := new(FxBridgeLogicBSCSendToFxEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCTransactionBatchExecutedEventIterator is returned from FilterTransactionBatchExecutedEvent and is used to iterate over the raw logs and unpacked data for TransactionBatchExecutedEvent events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCTransactionBatchExecutedEventIterator struct { - Event *FxBridgeLogicBSCTransactionBatchExecutedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCTransactionBatchExecutedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCTransactionBatchExecutedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCTransactionBatchExecutedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCTransactionBatchExecutedEvent represents a TransactionBatchExecutedEvent event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCTransactionBatchExecutedEvent struct { - BatchNonce *big.Int - Token common.Address - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransactionBatchExecutedEvent is a free log retrieval operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterTransactionBatchExecutedEvent(opts *bind.FilterOpts, _batchNonce []*big.Int, _token []common.Address) (*FxBridgeLogicBSCTransactionBatchExecutedEventIterator, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCTransactionBatchExecutedEventIterator{contract: _FxBridgeLogicBSC.contract, event: "TransactionBatchExecutedEvent", logs: logs, sub: sub}, nil -} - -// WatchTransactionBatchExecutedEvent is a free log subscription operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchTransactionBatchExecutedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCTransactionBatchExecutedEvent, _batchNonce []*big.Int, _token []common.Address) (event.Subscription, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCTransactionBatchExecutedEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransactionBatchExecutedEvent is a log parse operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseTransactionBatchExecutedEvent(log types.Log) (*FxBridgeLogicBSCTransactionBatchExecutedEvent, error) { - event := new(FxBridgeLogicBSCTransactionBatchExecutedEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCTransferOwnerEventIterator is returned from FilterTransferOwnerEvent and is used to iterate over the raw logs and unpacked data for TransferOwnerEvent events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCTransferOwnerEventIterator struct { - Event *FxBridgeLogicBSCTransferOwnerEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCTransferOwnerEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCTransferOwnerEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCTransferOwnerEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCTransferOwnerEvent represents a TransferOwnerEvent event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCTransferOwnerEvent struct { - Token common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransferOwnerEvent is a free log retrieval operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterTransferOwnerEvent(opts *bind.FilterOpts) (*FxBridgeLogicBSCTransferOwnerEventIterator, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCTransferOwnerEventIterator{contract: _FxBridgeLogicBSC.contract, event: "TransferOwnerEvent", logs: logs, sub: sub}, nil -} - -// WatchTransferOwnerEvent is a free log subscription operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchTransferOwnerEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCTransferOwnerEvent) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCTransferOwnerEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransferOwnerEvent is a log parse operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseTransferOwnerEvent(log types.Log) (*FxBridgeLogicBSCTransferOwnerEvent, error) { - event := new(FxBridgeLogicBSCTransferOwnerEvent) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicBSCUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCUnpausedIterator struct { - Event *FxBridgeLogicBSCUnpaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicBSCUnpausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicBSCUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicBSCUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicBSCUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicBSCUnpaused represents a Unpaused event raised by the FxBridgeLogicBSC contract. -type FxBridgeLogicBSCUnpaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) FilterUnpaused(opts *bind.FilterOpts) (*FxBridgeLogicBSCUnpausedIterator, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &FxBridgeLogicBSCUnpausedIterator{contract: _FxBridgeLogicBSC.contract, event: "Unpaused", logs: logs, sub: sub}, nil -} - -// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicBSCUnpaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicBSC.contract.WatchLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicBSCUnpaused) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Unpaused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicBSC *FxBridgeLogicBSCFilterer) ParseUnpaused(log types.Log) (*FxBridgeLogicBSCUnpaused, error) { - event := new(FxBridgeLogicBSCUnpaused) - if err := _FxBridgeLogicBSC.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/contract/FxBridgeLogicETH.go b/contract/FxBridgeLogicETH.go deleted file mode 100644 index a4bc9582e..000000000 --- a/contract/FxBridgeLogicETH.go +++ /dev/null @@ -1,2502 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package contract - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// FxBridgeLogicETHBridgeToken is an auto generated low-level Go binding around an user-defined struct. -type FxBridgeLogicETHBridgeToken struct { - Addr common.Address - Name string - Symbol string - Decimals uint8 -} - -// FxBridgeLogicETHMetaData contains all meta data concerning the FxBridgeLogicETH contract. -var FxBridgeLogicETHMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"}],\"name\":\"AddBridgeTokenEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"FxOriginatedTokenEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"OracleSetUpdatedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"SendToFxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_batchNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"TransactionBatchExecutedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"TransferOwnerEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"activeBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isOriginated\",\"type\":\"bool\"}],\"name\":\"addBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bridgeTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"checkAssetStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"_theHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"}],\"name\":\"checkOracleSignatures\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBridgeTokenList\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"internalType\":\"structFxBridgeLogicETH.BridgeToken[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20Address\",\"type\":\"address\"}],\"name\":\"lastBatchNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_oracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"}],\"name\":\"makeCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"pauseBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToFx\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"setFxOriginatedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_fxBridgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_fxOriginatedToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"state_lastBatchNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastEventNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_powerThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_destinations\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_fees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_nonceArray\",\"type\":\"uint256[2]\"},{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeReceive\",\"type\":\"address\"}],\"name\":\"submitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOriginated\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_newOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_newPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_currentOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"}],\"name\":\"updateOracleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506137d3806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806371cbf3811161010f578063bb83bf96116100a2578063f1099f6111610071578063f1099f611461043c578063f2fde38b1461044f578063f92367fd14610462578063fd9791bb1461046b576101e5565b8063bb83bf96146103f7578063dde65aea14610400578063df97174b14610413578063e5a2b5d214610433576101e5565b80638fd3ab80116100de5780638fd3ab80146103b6578063a36a4ab0146103be578063a4f37efd146103d1578063aa63a894146103e4576101e5565b806371cbf3811461038157806373b20547146103945780638456cb591461039d5780638da5cb5b146103a5576101e5565b80633f4ba83a116101875780636189d107116101565780636189d1071461033257806370a0eb941461034557806370e5a8981461034e578063715018a614610379576101e5565b80633f4ba83a146102d8578063474d561c146102e057806354fd4d50146103125780635c975abb14610327576101e5565b8063285a190a116101c3578063285a190a1461027a57806331678cf61461028f578063332caa1f146102b25780633a08e299146102c5576101e5565b8063011b2174146101ea5780630acac94214610210578063283040b414610265575b600080fd5b6101fd6101f8366004612c44565b61047e565b6040519081526020015b60405180910390f35b61024661021e366004612c44565b60d16020526000908152604090205460ff808216916101008104821691620100009091041683565b6040805193151584529115156020840152151590820152606001610207565b61026d61049d565b6040516102079190613331565b61028d610288366004612eb1565b610756565b005b6102a261029d366004612c5e565b61090d565b6040519015158152602001610207565b61028d6102c0366004612d07565b6109bf565b61028d6102d3366004612f8f565b610fc6565b61028d6111c3565b6102a26102ee366004612c44565b6001600160a01b0316600090815260d1602052604090205462010000900460ff1690565b61031a6111dd565b6040516102079190613498565b60975460ff166102a2565b61028d610340366004612ccf565b61126b565b6101fd60cd5481565b61036161035c366004613243565b6114a3565b6040516001600160a01b039091168152602001610207565b61028d6114cd565b6101fd61038f3660046130b5565b6114df565b6101fd60cc5481565b61028d61152c565b6065546001600160a01b0316610361565b61028d611544565b6102a26103cc366004612c44565b611700565b6102a26103df366004612c44565b611816565b61028d6103f2366004613141565b611bf1565b6101fd60ce5481565b6102a261040e366004612c44565b611e83565b6101fd610421366004612c44565b60cf6020526000908152604090205481565b6101fd60ca5481565b6102a261044a366004612c90565b611f98565b61028d61045d366004612c44565b612238565b6101fd60c95481565b60cb54610361906001600160a01b031681565b6001600160a01b038116600090815260cf60205260409020545b919050565b60d0546060906000906001600160401b038111156104cb57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561053357816020015b610520604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600060ff1681525090565b8152602001906001900390816104e95790505b50905060005b60d05481101561075057600060d0828154811061056657634e487b7160e01b600052603260045260246000fd5b9060005260206000200160009054906101000a90046001600160a01b0316905060006040518060800160405280836001600160a01b03168152602001836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156105db57600080fd5b505afa1580156105ef573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261061791908101906131b4565b8152602001836001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561065557600080fd5b505afa158015610669573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261069191908101906131b4565b8152602001836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cf57600080fd5b505afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610707919061325b565b60ff1681525090508084848151811061073057634e487b7160e01b600052603260045260246000fd5b60200260200101819052505050808061074890613739565b915050610539565b50905090565b6000805b88518110156108e35786818151811061078357634e487b7160e01b600052603260045260246000fd5b602002602001015160ff166000146108d15761083e8982815181106107b857634e487b7160e01b600052603260045260246000fd5b6020026020010151858984815181106107e157634e487b7160e01b600052603260045260246000fd5b602002602001015189858151811061080957634e487b7160e01b600052603260045260246000fd5b602002602001015189868151811061083157634e487b7160e01b600052603260045260246000fd5b60200260200101516122b1565b61088f5760405162461bcd60e51b815260206004820181905260248201527f4f7261636c65207369676e617475726520646f6573206e6f74206d617463682e60448201526064015b60405180910390fd5b8781815181106108af57634e487b7160e01b600052603260045260246000fd5b6020026020010151826108c291906136ba565b9150828211156108d1576108e3565b806108db81613739565b91505061075a565b508181116109035760405162461bcd60e51b81526004016108869061352d565b5050505050505050565b600061091761237b565b60405163f2fde38b60e01b81526001600160a01b03838116600483015284169063f2fde38b90602401600060405180830381600087803b15801561095a57600080fd5b505af115801561096e573d6000803e3d6000fd5b5050604080516001600160a01b038088168252861660208201527fb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699935001905060405180910390a150600192915050565b6109c76123d5565b6109cf61242f565b6001600160a01b038316600090815260d160209081526040918290208251606081018452905460ff8082161515835261010082048116151593830193909352620100009004909116151591810182905290610a685760405162461bcd60e51b8152602060048201526019602482015278556e737570706f7274656420746f6b656e206164647265737360381b6044820152606401610886565b8060200151610aac5760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881dd85cc81c185d5cd95960821b6044820152606401610886565b6020808601516001600160a01b038616600090815260cf90925260409091205410610b3f5760405162461bcd60e51b815260206004820152603760248201527f4e6577206261746368206e6f6e6365206d75737420626520677265617465722060448201527f7468616e207468652063757272656e74206e6f6e63652e0000000000000000006064820152608401610886565b824310610bb45760405162461bcd60e51b815260206004820152603c60248201527f42617463682074696d656f7574206d757374206265206772656174657220746860448201527f616e207468652063757272656e7420626c6f636b206865696768742e000000006064820152608401610886565b8b518d51148015610bc657508a518d51145b8015610bd3575089518d51145b8015610be0575088518d51145b610c2c5760405162461bcd60e51b815260206004820152601d60248201527f4d616c666f726d65642063757272656e74206f7261636c65207365742e0000006044820152606401610886565b60cd54610c448e8e886000602002015160c9546114df565b14610c615760405162461bcd60e51b81526004016108869061358a565b86518851148015610c73575085518851145b610cbf5760405162461bcd60e51b815260206004820181905260248201527f4d616c666f726d6564206261746368206f66207472616e73616374696f6e732e6044820152606401610886565b610d408d8d8d8d8d60c9546f0e8e4c2dce6c2c6e8d2dedc84c2e8c6d60831b8f8f8f8f600160028110610d0257634e487b7160e01b600052603260045260246000fd5b60200201518f8f8f604051602001610d229998979695949392919061341b565b6040516020818303038152906040528051906020012060ca54610756565b6020808601516001600160a01b038616600090815260cf9092526040822055805b8951811015610ecd57610da4888281518110610d8d57634e487b7160e01b600052603260045260246000fd5b60200260200101518361247590919063ffffffff16565b8351909250151560011415610e4f57856001600160a01b03166340c10f19308c8481518110610de357634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401610e1c9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015610e3657600080fd5b505af1158015610e4a573d6000803e3d6000fd5b505050505b610ebb898281518110610e7257634e487b7160e01b600052603260045260246000fd5b60200260200101518b8381518110610e9a57634e487b7160e01b600052603260045260246000fd5b6020026020010151886001600160a01b03166124889092919063ffffffff16565b80610ec581613739565b915050610d61565b508151151560011415610f3b576040516340c10f1960e01b8152306004820152602481018290526001600160a01b038616906340c10f1990604401600060405180830381600087803b158015610f2257600080fd5b505af1158015610f36573d6000803e3d6000fd5b505050505b610f4f6001600160a01b0386168483612488565b505060cc54610f5f906001612475565b60cc556001600160a01b03831684600160200201517f02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab70860cc54604051610fa791815260200190565b60405180910390a3610fb860018055565b505050505050505050505050565b610fce61242f565b8387116110435760405162461bcd60e51b815260206004820152603b60248201527f4e6577206f7261636c6520736574206e6f6e6365206d7573742062652067726560448201527f61746572207468616e207468652063757272656e74206e6f6e636500000000006064820152608401610886565b87518951146110945760405162461bcd60e51b815260206004820152601860248201527f4d616c666f726d6564206e6577206f7261636c652073657400000000000000006044820152606401610886565b845186511480156110a6575082518651145b80156110b3575081518651145b80156110c0575080518651145b61110c5760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610886565b60cd5461111d87878760c9546114df565b1461113a5760405162461bcd60e51b81526004016108869061358a565b600061114a8a8a8a60c9546114df565b905061115d87878686868660ca54610756565b60cd81905560ce88905560cc54611175906001612475565b60cc81905560405189917f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3916111af91908e908e90613632565b60405180910390a250505050505050505050565b6111cb61237b565b6111d36124f6565b6111db61253f565b565b60d280546111ea906136fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611216906136fe565b80156112635780601f1061123857610100808354040283529160200191611263565b820191906000526020600020905b81548152906001019060200180831161124657829003601f168201915b505050505081565b6112736123d5565b61127b61242f565b600081116112d65760405162461bcd60e51b815260206004820152602260248201527f616d6f756e742073686f756c642062652067726561746572207468616e207a65604482015261726f60f01b6064820152608401610886565b6001600160a01b038416600090815260d160209081526040918290208251606081018452905460ff808216151583526101008204811615159383019390935262010000900490911615159181018290529061136f5760405162461bcd60e51b8152602060048201526019602482015278556e737570706f7274656420746f6b656e206164647265737360381b6044820152606401610886565b80602001516113b35760405162461bcd60e51b815260206004820152601060248201526f1d1bdad95b881dd85cc81c185d5cd95960821b6044820152606401610886565b6113c86001600160a01b038616333085612591565b805115156001141561142f57604051630852cd8d60e31b8152600481018390526001600160a01b038616906342966c6890602401600060405180830381600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050505b60cc5461143d906001612475565b60cc819055604080518581526020810185905290810191909152849033906001600160a01b038816907f034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c9060600160405180910390a45061149d60018055565b50505050565b60d081815481106114b357600080fd5b6000918252602090912001546001600160a01b0316905081565b6114d561237b565b6111db60006125c9565b6040516000906918da1958dadc1bda5b9d60b21b9061150a908490839087908a908a906020016133d8565b604051602081830303815290604052805190602001209150505b949350505050565b61153461237b565b61153c61242f565b6111db61261b565b61154c61237b565b604080518082019091526005808252640312e312e360dc1b60209092019182526115789160d291612a0d565b5060005b60d05481101561164a5760405180606001604052806000151581526020016001151581526020016001151581525060d1600060d084815481106115cf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815493850151949092015160ff199093169115159190911761ff001916610100931515939093029290921762ff0000191662010000911515919091021790558061164281613739565b91505061157c565b5060cb805460d0805460018181019092557fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb0180546001600160a01b0319166001600160a01b039384161790556040805160608101825282815260208181018481528284019485529554909416600090815260d1909452922091518254935191511515620100000262ff0000199215156101000261ff001992151560ff1990961695909517919091169390931716919091179055565b600061170a61237b565b6001600160a01b038216600090815260d1602052604090205462010000900460ff16151560011461177d5760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610886565b6001600160a01b038216600090815260d1602052604090205460ff6101009091041615156001146117f05760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792070617573656400000000006044820152606401610886565b506001600160a01b0316600090815260d160205260409020805461ff0019169055600190565b600061182061237b565b60cb546001600160a01b03838116911614156118755760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b210313934b233b2903a37b5b2b760611b6044820152606401610886565b60cb80546001600160a01b0319166001600160a01b03841617905560cc5461189e906001612475565b60cc81905550816001600160a01b03167ffbaa7af285fff024998c9265afef33fb4e87f832f053151022580ea67fde8417836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561190857600080fd5b505afa15801561191c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261194491908101906131b4565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561197d57600080fd5b505afa158015611991573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119b991908101906131b4565b856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f257600080fd5b505afa158015611a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2a919061325b565b60cc54604051611a3d94939291906134ab565b60405180910390a2816001600160a01b03167f2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611aa957600080fd5b505afa158015611abd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ae591908101906131b4565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015611b1e57600080fd5b505afa158015611b32573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b5a91908101906131b4565b856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9357600080fd5b505afa158015611ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcb919061325b565b60cc54604051611be194939291906000906134e7565b60405180910390a2506001919050565b600054610100900460ff1615808015611c115750600054600160ff909116105b80611c2b5750303b158015611c2b575060005460ff166001145b611c8e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610886565b6000805460ff191660011790558015611cb1576000805461ff0019166101001790555b611cb9612658565b611cc1612687565b611cc96126b6565b8151835114611d1a5760405162461bcd60e51b815260206004820152601c60248201527f4d616c666f726d65642063757272656e74206f7261636c6520736574000000006044820152606401610886565b6000805b8351811015611d7b57838181518110611d4757634e487b7160e01b600052603260045260246000fd5b602002602001015182611d5a91906136ba565b915085821115611d6957611d7b565b80611d7381613739565b915050611d1e565b50848111611d9b5760405162461bcd60e51b81526004016108869061352d565b6000611daa858560008a6114df565b60c988905560ca87905560cd819055600060ce55600160cc55604080518082019091526005808252640312e302e360dc1b6020909201918252919250611df39160d29190612a0d565b5060ce547f36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b360cc548787604051611e2c93929190613632565b60405180910390a250508015611e7c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000611e8d61237b565b6001600160a01b038216600090815260d1602052604090205462010000900460ff161515600114611f005760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20646f65736e27742065786973747300000000006044820152606401610886565b6001600160a01b038216600090815260d16020526040902054610100900460ff1615611f6e5760405162461bcd60e51b815260206004820152601c60248201527f42726964676520746f6b656e20616c72656164792061637469766564000000006044820152606401610886565b506001600160a01b0316600090815260d160205260409020805461ff001916610100179055600190565b6000611fa261237b565b6001600160a01b038416611ff05760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610886565b6001600160a01b038416600090815260d1602052604090205462010000900460ff161561205f5760405162461bcd60e51b815260206004820152601b60248201527f42726964676520746f6b656e20616c72656164792065786973747300000000006044820152606401610886565b61208b8460405180606001604052808515158152602001600115158152602001600115158152506126e5565b836001600160a01b03167f2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156120ef57600080fd5b505afa158015612103573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261212b91908101906131b4565b866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561216457600080fd5b505afa158015612178573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121a091908101906131b4565b876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612211919061325b565b60cc54886040516122269594939291906134e7565b60405180910390a25060019392505050565b61224061237b565b6001600160a01b0381166122a55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610886565b6122ae816125c9565b50565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018590526000908190605c0160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa158015612351573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b03161491505095945050505050565b6065546001600160a01b031633146111db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610886565b600260015414156124285760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610886565b6002600155565b60975460ff16156111db5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610886565b600061248182846136ba565b9392505050565b6040516001600160a01b0383166024820152604481018290526124eb90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612791565b505050565b60018055565b60975460ff166111db5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610886565b6125476124f6565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6040516001600160a01b038085166024830152831660448201526064810182905261149d9085906323b872dd60e01b906084016124b4565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61262361242f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125743390565b600054610100900460ff1661267f5760405162461bcd60e51b8152600401610886906135e7565b6111db612863565b600054610100900460ff166126ae5760405162461bcd60e51b8152600401610886906135e7565b6111db612896565b600054610100900460ff166126dd5760405162461bcd60e51b8152600401610886906135e7565b6111db6128c6565b60d0805460018082019092557fe89d44c8fd6a9bac8af33ce47f56337617d449bf7ff3956b618c646de829cbcb0180546001600160a01b0319166001600160a01b038516908117909155600090815260d1602090815260409182902084518154928601519386015160ff199093169015151761ff001916610100931515939093029290921762ff00001916620100009115159190910217905560cc5461278a91612475565b60cc555050565b60006127e6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128ed9092919063ffffffff16565b8051909150156124eb57808060200190518101906128049190613125565b6124eb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610886565b600054610100900460ff1661288a5760405162461bcd60e51b8152600401610886906135e7565b6097805460ff19169055565b600054610100900460ff166128bd5760405162461bcd60e51b8152600401610886906135e7565b6111db336125c9565b600054610100900460ff166124f05760405162461bcd60e51b8152600401610886906135e7565b6060611524848460008585600080866001600160a01b031685876040516129149190613315565b60006040518083038185875af1925050503d8060008114612951576040519150601f19603f3d011682016040523d82523d6000602084013e612956565b606091505b509150915061296787838387612972565b979650505050505050565b606083156129de5782516129d7576001600160a01b0385163b6129d75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610886565b5081611524565b61152483838151156129f35781518083602001fd5b8060405162461bcd60e51b81526004016108869190613498565b828054612a19906136fe565b90600052602060002090601f016020900481019282612a3b5760008555612a81565b82601f10612a5457805160ff1916838001178555612a81565b82800160010185558215612a81579182015b82811115612a81578251825591602001919060010190612a66565b50612a8d929150612a91565b5090565b5b80821115612a8d5760008155600101612a92565b80356001600160a01b038116811461049857600080fd5b600082601f830112612acd578081fd5b81356020612ae2612add83613697565b613667565b8281528181019085830183850287018401881015612afe578586fd5b855b85811015612b2357612b1182612aa6565b84529284019290840190600101612b00565b5090979650505050505050565b600082601f830112612b40578081fd5b81356020612b50612add83613697565b8281528181019085830183850287018401881015612b6c578586fd5b855b85811015612b2357813584529284019290840190600101612b6e565b600082601f830112612b9a578081fd5b612ba46040613667565b808385604086011115612bb5578384fd5b835b6002811015612bd6578135845260209384019390910190600101612bb7565b509095945050505050565b600082601f830112612bf1578081fd5b81356020612c01612add83613697565b8281528181019085830183850287018401881015612c1d578586fd5b855b85811015612b23578135612c328161378e565b84529284019290840190600101612c1f565b600060208284031215612c55578081fd5b61248182612aa6565b60008060408385031215612c70578081fd5b612c7983612aa6565b9150612c8760208401612aa6565b90509250929050565b600080600060608486031215612ca4578081fd5b612cad84612aa6565b9250602084013591506040840135612cc481613780565b809150509250925092565b60008060008060808587031215612ce4578081fd5b612ced85612aa6565b966020860135965060408601359560600135945092505050565b6000806000806000806000806000806000806101a08d8f031215612d2957898afd5b6001600160401b038d351115612d3d57898afd5b612d4a8e8e358f01612abd565b9b506001600160401b0360208e01351115612d6357898afd5b612d738e60208f01358f01612b30565b9a506001600160401b0360408e01351115612d8c57898afd5b612d9c8e60408f01358f01612be1565b99506001600160401b0360608e01351115612db5578788fd5b612dc58e60608f01358f01612b30565b98506001600160401b0360808e01351115612dde578788fd5b612dee8e60808f01358f01612b30565b97506001600160401b0360a08e01351115612e07578687fd5b612e178e60a08f01358f01612b30565b96506001600160401b0360c08e01351115612e30578586fd5b612e408e60c08f01358f01612abd565b95506001600160401b0360e08e01351115612e59578485fd5b612e698e60e08f01358f01612b30565b9450612e798e6101008f01612b8a565b9350612e886101408e01612aa6565b92506101608d01359150612e9f6101808e01612aa6565b90509295989b509295989b509295989b565b600080600080600080600060e0888a031215612ecb578081fd5b87356001600160401b0380821115612ee1578283fd5b612eed8b838c01612abd565b985060208a0135915080821115612f02578283fd5b612f0e8b838c01612b30565b975060408a0135915080821115612f23578283fd5b612f2f8b838c01612be1565b965060608a0135915080821115612f44578283fd5b612f508b838c01612b30565b955060808a0135915080821115612f65578283fd5b50612f728a828b01612b30565b93505060a0880135915060c0880135905092959891949750929550565b60008060008060008060008060006101208a8c031215612fad578283fd5b89356001600160401b0380821115612fc3578485fd5b612fcf8d838e01612abd565b9a5060208c0135915080821115612fe4578485fd5b612ff08d838e01612b30565b995060408c0135985060608c013591508082111561300c578485fd5b6130188d838e01612abd565b975060808c013591508082111561302d578485fd5b6130398d838e01612b30565b965060a08c0135955060c08c0135915080821115613055578485fd5b6130618d838e01612be1565b945060e08c0135915080821115613076578384fd5b6130828d838e01612b30565b93506101008c0135915080821115613098578283fd5b506130a58c828d01612b30565b9150509295985092959850929598565b600080600080608085870312156130ca578182fd5b84356001600160401b03808211156130e0578384fd5b6130ec88838901612abd565b95506020870135915080821115613101578384fd5b5061310e87828801612b30565b949794965050505060408301359260600135919050565b600060208284031215613136578081fd5b815161248181613780565b60008060008060808587031215613156578182fd5b843593506020850135925060408501356001600160401b038082111561317a578384fd5b61318688838901612abd565b9350606087013591508082111561319b578283fd5b506131a887828801612b30565b91505092959194509250565b6000602082840312156131c5578081fd5b81516001600160401b03808211156131db578283fd5b818401915084601f8301126131ee578283fd5b8151818111156132005761320061376a565b613213601f8201601f1916602001613667565b9150808252856020828501011115613229578384fd5b61323a8160208401602086016136d2565b50949350505050565b600060208284031215613254578081fd5b5035919050565b60006020828403121561326c578081fd5b81516124818161378e565b6000815180845260208085019450808401835b838110156132af5781516001600160a01b03168752958201959082019060010161328a565b509495945050505050565b6000815180845260208085019450808401835b838110156132af578151875295820195908201906001016132cd565b600081518084526133018160208601602086016136d2565b601f01601f19169290920160200192915050565b600082516133278184602087016136d2565b9190910192915050565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156133ca57888303603f19018552815180516001600160a01b031684528781015160808986018190529061338e828701826132e9565b91505087820151858203898701526133a682826132e9565b60609384015160ff1696909301959095525094870194925090860190600101613355565b509098975050505050505050565b600086825285602083015284604083015260a060608301526133fd60a0830185613277565b828103608084015261340f81856132ba565b98975050505050505050565b60006101208b83528a602084015280604084015261343b8184018b6132ba565b9050828103606084015261344f818a613277565b9050828103608084015261346381896132ba565b60a084019790975250506001600160a01b0393841660c082015260e08101929092529091166101009091015295945050505050565b60006020825261248160208301846132e9565b6000608082526134be60808301876132e9565b82810360208401526134d081876132e9565b60ff95909516604084015250506060015292915050565b600060a082526134fa60a08301886132e9565b828103602084015261350c81886132e9565b60ff9690961660408401525050606081019290925260809091015292915050565b60208082526039908201527f5375626d6974746564206f7261636c6520736574207369676e6174757265732060408201527f646f206e6f74206861766520656e6f75676820706f7765722e00000000000000606082015260800190565b6020808252603c908201527f537570706c6965642063757272656e74206f7261636c657320616e6420706f7760408201527f65727320646f206e6f74206d6174636820636865636b706f696e742e00000000606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008482526060602083015261364b6060830185613277565b828103604084015261365d81856132ba565b9695505050505050565b604051601f8201601f191681016001600160401b038111828210171561368f5761368f61376a565b604052919050565b60006001600160401b038211156136b0576136b061376a565b5060209081020190565b600082198211156136cd576136cd613754565b500190565b60005b838110156136ed5781810151838201526020016136d5565b8381111561149d5750506000910152565b60028104600182168061371257607f821691505b6020821081141561373357634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561374d5761374d613754565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146122ae57600080fd5b60ff811681146122ae57600080fdfea2646970667358221220d5a5f5389753c29c08b77eb6068860cdc8bb2fa485639991662f5b156195509564736f6c63430008020033", -} - -// FxBridgeLogicETHABI is the input ABI used to generate the binding from. -// Deprecated: Use FxBridgeLogicETHMetaData.ABI instead. -var FxBridgeLogicETHABI = FxBridgeLogicETHMetaData.ABI - -// FxBridgeLogicETHBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use FxBridgeLogicETHMetaData.Bin instead. -var FxBridgeLogicETHBin = FxBridgeLogicETHMetaData.Bin - -// DeployFxBridgeLogicETH deploys a new Ethereum contract, binding an instance of FxBridgeLogicETH to it. -func DeployFxBridgeLogicETH(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *FxBridgeLogicETH, error) { - parsed, err := FxBridgeLogicETHMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FxBridgeLogicETHBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &FxBridgeLogicETH{FxBridgeLogicETHCaller: FxBridgeLogicETHCaller{contract: contract}, FxBridgeLogicETHTransactor: FxBridgeLogicETHTransactor{contract: contract}, FxBridgeLogicETHFilterer: FxBridgeLogicETHFilterer{contract: contract}}, nil -} - -// FxBridgeLogicETH is an auto generated Go binding around an Ethereum contract. -type FxBridgeLogicETH struct { - FxBridgeLogicETHCaller // Read-only binding to the contract - FxBridgeLogicETHTransactor // Write-only binding to the contract - FxBridgeLogicETHFilterer // Log filterer for contract events -} - -// FxBridgeLogicETHCaller is an auto generated read-only Go binding around an Ethereum contract. -type FxBridgeLogicETHCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicETHTransactor is an auto generated write-only Go binding around an Ethereum contract. -type FxBridgeLogicETHTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicETHFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type FxBridgeLogicETHFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// FxBridgeLogicETHSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type FxBridgeLogicETHSession struct { - Contract *FxBridgeLogicETH // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicETHCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type FxBridgeLogicETHCallerSession struct { - Contract *FxBridgeLogicETHCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// FxBridgeLogicETHTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type FxBridgeLogicETHTransactorSession struct { - Contract *FxBridgeLogicETHTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// FxBridgeLogicETHRaw is an auto generated low-level Go binding around an Ethereum contract. -type FxBridgeLogicETHRaw struct { - Contract *FxBridgeLogicETH // Generic contract binding to access the raw methods on -} - -// FxBridgeLogicETHCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type FxBridgeLogicETHCallerRaw struct { - Contract *FxBridgeLogicETHCaller // Generic read-only contract binding to access the raw methods on -} - -// FxBridgeLogicETHTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type FxBridgeLogicETHTransactorRaw struct { - Contract *FxBridgeLogicETHTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewFxBridgeLogicETH creates a new instance of FxBridgeLogicETH, bound to a specific deployed contract. -func NewFxBridgeLogicETH(address common.Address, backend bind.ContractBackend) (*FxBridgeLogicETH, error) { - contract, err := bindFxBridgeLogicETH(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &FxBridgeLogicETH{FxBridgeLogicETHCaller: FxBridgeLogicETHCaller{contract: contract}, FxBridgeLogicETHTransactor: FxBridgeLogicETHTransactor{contract: contract}, FxBridgeLogicETHFilterer: FxBridgeLogicETHFilterer{contract: contract}}, nil -} - -// NewFxBridgeLogicETHCaller creates a new read-only instance of FxBridgeLogicETH, bound to a specific deployed contract. -func NewFxBridgeLogicETHCaller(address common.Address, caller bind.ContractCaller) (*FxBridgeLogicETHCaller, error) { - contract, err := bindFxBridgeLogicETH(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHCaller{contract: contract}, nil -} - -// NewFxBridgeLogicETHTransactor creates a new write-only instance of FxBridgeLogicETH, bound to a specific deployed contract. -func NewFxBridgeLogicETHTransactor(address common.Address, transactor bind.ContractTransactor) (*FxBridgeLogicETHTransactor, error) { - contract, err := bindFxBridgeLogicETH(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHTransactor{contract: contract}, nil -} - -// NewFxBridgeLogicETHFilterer creates a new log filterer instance of FxBridgeLogicETH, bound to a specific deployed contract. -func NewFxBridgeLogicETHFilterer(address common.Address, filterer bind.ContractFilterer) (*FxBridgeLogicETHFilterer, error) { - contract, err := bindFxBridgeLogicETH(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHFilterer{contract: contract}, nil -} - -// bindFxBridgeLogicETH binds a generic wrapper to an already deployed contract. -func bindFxBridgeLogicETH(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := FxBridgeLogicETHMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogicETH *FxBridgeLogicETHRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogicETH.Contract.FxBridgeLogicETHCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogicETH *FxBridgeLogicETHRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.FxBridgeLogicETHTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogicETH *FxBridgeLogicETHRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.FxBridgeLogicETHTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _FxBridgeLogicETH.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.contract.Transact(opts, method, params...) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) BridgeTokens(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "bridgeTokens", arg0) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogicETH.Contract.BridgeTokens(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// BridgeTokens is a free data retrieval call binding the contract method 0x70e5a898. -// -// Solidity: function bridgeTokens(uint256 ) view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) BridgeTokens(arg0 *big.Int) (common.Address, error) { - return _FxBridgeLogicETH.Contract.BridgeTokens(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) CheckAssetStatus(opts *bind.CallOpts, _tokenAddr common.Address) (bool, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "checkAssetStatus", _tokenAddr) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogicETH.Contract.CheckAssetStatus(&_FxBridgeLogicETH.CallOpts, _tokenAddr) -} - -// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. -// -// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { - return _FxBridgeLogicETH.Contract.CheckAssetStatus(&_FxBridgeLogicETH.CallOpts, _tokenAddr) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) CheckOracleSignatures(opts *bind.CallOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "checkOracleSignatures", _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) - - if err != nil { - return err - } - - return err - -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogicETH.Contract.CheckOracleSignatures(&_FxBridgeLogicETH.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. -// -// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { - return _FxBridgeLogicETH.Contract.CheckOracleSignatures(&_FxBridgeLogicETH.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) GetBridgeTokenList(opts *bind.CallOpts) ([]FxBridgeLogicETHBridgeToken, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "getBridgeTokenList") - - if err != nil { - return *new([]FxBridgeLogicETHBridgeToken), err - } - - out0 := *abi.ConvertType(out[0], new([]FxBridgeLogicETHBridgeToken)).(*[]FxBridgeLogicETHBridgeToken) - - return out0, err - -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) GetBridgeTokenList() ([]FxBridgeLogicETHBridgeToken, error) { - return _FxBridgeLogicETH.Contract.GetBridgeTokenList(&_FxBridgeLogicETH.CallOpts) -} - -// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. -// -// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) GetBridgeTokenList() ([]FxBridgeLogicETHBridgeToken, error) { - return _FxBridgeLogicETH.Contract.GetBridgeTokenList(&_FxBridgeLogicETH.CallOpts) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) LastBatchNonce(opts *bind.CallOpts, _erc20Address common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "lastBatchNonce", _erc20Address) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogicETH.Contract.LastBatchNonce(&_FxBridgeLogicETH.CallOpts, _erc20Address) -} - -// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. -// -// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { - return _FxBridgeLogicETH.Contract.LastBatchNonce(&_FxBridgeLogicETH.CallOpts, _erc20Address) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) MakeCheckpoint(opts *bind.CallOpts, _oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "makeCheckpoint", _oracles, _powers, _oracleSetNonce, _fxBridgeId) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogicETH.Contract.MakeCheckpoint(&_FxBridgeLogicETH.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. -// -// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { - return _FxBridgeLogicETH.Contract.MakeCheckpoint(&_FxBridgeLogicETH.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Owner() (common.Address, error) { - return _FxBridgeLogicETH.Contract.Owner(&_FxBridgeLogicETH.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) Owner() (common.Address, error) { - return _FxBridgeLogicETH.Contract.Owner(&_FxBridgeLogicETH.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "paused") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Paused() (bool, error) { - return _FxBridgeLogicETH.Contract.Paused(&_FxBridgeLogicETH.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) Paused() (bool, error) { - return _FxBridgeLogicETH.Contract.Paused(&_FxBridgeLogicETH.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateFxBridgeId(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_fxBridgeId") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogicETH.Contract.StateFxBridgeId(&_FxBridgeLogicETH.CallOpts) -} - -// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. -// -// Solidity: function state_fxBridgeId() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateFxBridgeId() ([32]byte, error) { - return _FxBridgeLogicETH.Contract.StateFxBridgeId(&_FxBridgeLogicETH.CallOpts) -} - -// StateFxOriginatedToken is a free data retrieval call binding the contract method 0xfd9791bb. -// -// Solidity: function state_fxOriginatedToken() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateFxOriginatedToken(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_fxOriginatedToken") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// StateFxOriginatedToken is a free data retrieval call binding the contract method 0xfd9791bb. -// -// Solidity: function state_fxOriginatedToken() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateFxOriginatedToken() (common.Address, error) { - return _FxBridgeLogicETH.Contract.StateFxOriginatedToken(&_FxBridgeLogicETH.CallOpts) -} - -// StateFxOriginatedToken is a free data retrieval call binding the contract method 0xfd9791bb. -// -// Solidity: function state_fxOriginatedToken() view returns(address) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateFxOriginatedToken() (common.Address, error) { - return _FxBridgeLogicETH.Contract.StateFxOriginatedToken(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateLastBatchNonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_lastBatchNonces", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastBatchNonces(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. -// -// Solidity: function state_lastBatchNonces(address ) view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateLastBatchNonces(arg0 common.Address) (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastBatchNonces(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateLastEventNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_lastEventNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastEventNonce(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. -// -// Solidity: function state_lastEventNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateLastEventNonce() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastEventNonce(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateLastOracleSetCheckpoint(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_lastOracleSetCheckpoint") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogicETH.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. -// -// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateLastOracleSetCheckpoint() ([32]byte, error) { - return _FxBridgeLogicETH.Contract.StateLastOracleSetCheckpoint(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StateLastOracleSetNonce(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_lastOracleSetNonce") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastOracleSetNonce(&_FxBridgeLogicETH.CallOpts) -} - -// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. -// -// Solidity: function state_lastOracleSetNonce() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StateLastOracleSetNonce() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StateLastOracleSetNonce(&_FxBridgeLogicETH.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) StatePowerThreshold(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "state_powerThreshold") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StatePowerThreshold(&_FxBridgeLogicETH.CallOpts) -} - -// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. -// -// Solidity: function state_powerThreshold() view returns(uint256) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) StatePowerThreshold() (*big.Int, error) { - return _FxBridgeLogicETH.Contract.StatePowerThreshold(&_FxBridgeLogicETH.CallOpts) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) TokenStatus(opts *bind.CallOpts, arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "tokenStatus", arg0) - - outstruct := new(struct { - IsOriginated bool - IsActive bool - IsExist bool - }) - if err != nil { - return *outstruct, err - } - - outstruct.IsOriginated = *abi.ConvertType(out[0], new(bool)).(*bool) - outstruct.IsActive = *abi.ConvertType(out[1], new(bool)).(*bool) - outstruct.IsExist = *abi.ConvertType(out[2], new(bool)).(*bool) - - return *outstruct, err - -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogicETH.Contract.TokenStatus(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. -// -// Solidity: function tokenStatus(address ) view returns(bool isOriginated, bool isActive, bool isExist) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) TokenStatus(arg0 common.Address) (struct { - IsOriginated bool - IsActive bool - IsExist bool -}, error) { - return _FxBridgeLogicETH.Contract.TokenStatus(&_FxBridgeLogicETH.CallOpts, arg0) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicETH *FxBridgeLogicETHCaller) Version(opts *bind.CallOpts) (string, error) { - var out []interface{} - err := _FxBridgeLogicETH.contract.Call(opts, &out, "version") - - if err != nil { - return *new(string), err - } - - out0 := *abi.ConvertType(out[0], new(string)).(*string) - - return out0, err - -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Version() (string, error) { - return _FxBridgeLogicETH.Contract.Version(&_FxBridgeLogicETH.CallOpts) -} - -// Version is a free data retrieval call binding the contract method 0x54fd4d50. -// -// Solidity: function version() view returns(string) -func (_FxBridgeLogicETH *FxBridgeLogicETHCallerSession) Version() (string, error) { - return _FxBridgeLogicETH.Contract.Version(&_FxBridgeLogicETH.CallOpts) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) ActiveBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "activeBridgeToken", _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.ActiveBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. -// -// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.ActiveBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) AddBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "addBridgeToken", _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.AddBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. -// -// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.AddBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) Init(opts *bind.TransactOpts, _fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "init", _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Init(&_FxBridgeLogicETH.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Init is a paid mutator transaction binding the contract method 0xaa63a894. -// -// Solidity: function init(bytes32 _fxBridgeId, uint256 _powerThreshold, address[] _oracles, uint256[] _powers) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) Init(_fxBridgeId [32]byte, _powerThreshold *big.Int, _oracles []common.Address, _powers []*big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Init(&_FxBridgeLogicETH.TransactOpts, _fxBridgeId, _powerThreshold, _oracles, _powers) -} - -// Migrate is a paid mutator transaction binding the contract method 0x8fd3ab80. -// -// Solidity: function migrate() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) Migrate(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "migrate") -} - -// Migrate is a paid mutator transaction binding the contract method 0x8fd3ab80. -// -// Solidity: function migrate() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Migrate() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Migrate(&_FxBridgeLogicETH.TransactOpts) -} - -// Migrate is a paid mutator transaction binding the contract method 0x8fd3ab80. -// -// Solidity: function migrate() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) Migrate() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Migrate(&_FxBridgeLogicETH.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Pause(&_FxBridgeLogicETH.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) Pause() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Pause(&_FxBridgeLogicETH.TransactOpts) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) PauseBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "pauseBridgeToken", _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.PauseBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. -// -// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.PauseBridgeToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.RenounceOwnership(&_FxBridgeLogicETH.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.RenounceOwnership(&_FxBridgeLogicETH.TransactOpts) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) SendToFx(opts *bind.TransactOpts, _tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "sendToFx", _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SendToFx(&_FxBridgeLogicETH.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. -// -// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SendToFx(&_FxBridgeLogicETH.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) -} - -// SetFxOriginatedToken is a paid mutator transaction binding the contract method 0xa4f37efd. -// -// Solidity: function setFxOriginatedToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) SetFxOriginatedToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "setFxOriginatedToken", _tokenAddr) -} - -// SetFxOriginatedToken is a paid mutator transaction binding the contract method 0xa4f37efd. -// -// Solidity: function setFxOriginatedToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) SetFxOriginatedToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SetFxOriginatedToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// SetFxOriginatedToken is a paid mutator transaction binding the contract method 0xa4f37efd. -// -// Solidity: function setFxOriginatedToken(address _tokenAddr) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) SetFxOriginatedToken(_tokenAddr common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SetFxOriginatedToken(&_FxBridgeLogicETH.TransactOpts, _tokenAddr) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) SubmitBatch(opts *bind.TransactOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "submitBatch", _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SubmitBatch(&_FxBridgeLogicETH.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. -// -// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.SubmitBatch(&_FxBridgeLogicETH.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) TransferOwner(opts *bind.TransactOpts, _token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "transferOwner", _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.TransferOwner(&_FxBridgeLogicETH.TransactOpts, _token, _newOwner) -} - -// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. -// -// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.TransferOwner(&_FxBridgeLogicETH.TransactOpts, _token, _newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.TransferOwnership(&_FxBridgeLogicETH.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.TransferOwnership(&_FxBridgeLogicETH.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Unpause(&_FxBridgeLogicETH.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) Unpause() (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.Unpause(&_FxBridgeLogicETH.TransactOpts) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactor) UpdateOracleSet(opts *bind.TransactOpts, _newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicETH.contract.Transact(opts, "updateOracleSet", _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.UpdateOracleSet(&_FxBridgeLogicETH.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. -// -// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() -func (_FxBridgeLogicETH *FxBridgeLogicETHTransactorSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { - return _FxBridgeLogicETH.Contract.UpdateOracleSet(&_FxBridgeLogicETH.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) -} - -// FxBridgeLogicETHAddBridgeTokenEventIterator is returned from FilterAddBridgeTokenEvent and is used to iterate over the raw logs and unpacked data for AddBridgeTokenEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHAddBridgeTokenEventIterator struct { - Event *FxBridgeLogicETHAddBridgeTokenEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHAddBridgeTokenEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHAddBridgeTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHAddBridgeTokenEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHAddBridgeTokenEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHAddBridgeTokenEvent represents a AddBridgeTokenEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHAddBridgeTokenEvent struct { - TokenContract common.Address - Name string - Symbol string - Decimals uint8 - EventNonce *big.Int - ChannelIBC [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterAddBridgeTokenEvent is a free log retrieval operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterAddBridgeTokenEvent(opts *bind.FilterOpts, _tokenContract []common.Address) (*FxBridgeLogicETHAddBridgeTokenEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHAddBridgeTokenEventIterator{contract: _FxBridgeLogicETH.contract, event: "AddBridgeTokenEvent", logs: logs, sub: sub}, nil -} - -// WatchAddBridgeTokenEvent is a free log subscription operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchAddBridgeTokenEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHAddBridgeTokenEvent, _tokenContract []common.Address) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHAddBridgeTokenEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseAddBridgeTokenEvent is a log parse operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. -// -// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseAddBridgeTokenEvent(log types.Log) (*FxBridgeLogicETHAddBridgeTokenEvent, error) { - event := new(FxBridgeLogicETHAddBridgeTokenEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHFxOriginatedTokenEventIterator is returned from FilterFxOriginatedTokenEvent and is used to iterate over the raw logs and unpacked data for FxOriginatedTokenEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHFxOriginatedTokenEventIterator struct { - Event *FxBridgeLogicETHFxOriginatedTokenEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHFxOriginatedTokenEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHFxOriginatedTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHFxOriginatedTokenEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHFxOriginatedTokenEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHFxOriginatedTokenEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHFxOriginatedTokenEvent represents a FxOriginatedTokenEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHFxOriginatedTokenEvent struct { - TokenContract common.Address - Name string - Symbol string - Decimals uint8 - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterFxOriginatedTokenEvent is a free log retrieval operation binding the contract event 0xfbaa7af285fff024998c9265afef33fb4e87f832f053151022580ea67fde8417. -// -// Solidity: event FxOriginatedTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterFxOriginatedTokenEvent(opts *bind.FilterOpts, _tokenContract []common.Address) (*FxBridgeLogicETHFxOriginatedTokenEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "FxOriginatedTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHFxOriginatedTokenEventIterator{contract: _FxBridgeLogicETH.contract, event: "FxOriginatedTokenEvent", logs: logs, sub: sub}, nil -} - -// WatchFxOriginatedTokenEvent is a free log subscription operation binding the contract event 0xfbaa7af285fff024998c9265afef33fb4e87f832f053151022580ea67fde8417. -// -// Solidity: event FxOriginatedTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchFxOriginatedTokenEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHFxOriginatedTokenEvent, _tokenContract []common.Address) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "FxOriginatedTokenEvent", _tokenContractRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHFxOriginatedTokenEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "FxOriginatedTokenEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseFxOriginatedTokenEvent is a log parse operation binding the contract event 0xfbaa7af285fff024998c9265afef33fb4e87f832f053151022580ea67fde8417. -// -// Solidity: event FxOriginatedTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseFxOriginatedTokenEvent(log types.Log) (*FxBridgeLogicETHFxOriginatedTokenEvent, error) { - event := new(FxBridgeLogicETHFxOriginatedTokenEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "FxOriginatedTokenEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHInitializedIterator struct { - Event *FxBridgeLogicETHInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHInitialized represents a Initialized event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterInitialized(opts *bind.FilterOpts) (*FxBridgeLogicETHInitializedIterator, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &FxBridgeLogicETHInitializedIterator{contract: _FxBridgeLogicETH.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHInitialized) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHInitialized) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseInitialized(log types.Log) (*FxBridgeLogicETHInitialized, error) { - event := new(FxBridgeLogicETHInitialized) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHOracleSetUpdatedEventIterator is returned from FilterOracleSetUpdatedEvent and is used to iterate over the raw logs and unpacked data for OracleSetUpdatedEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHOracleSetUpdatedEventIterator struct { - Event *FxBridgeLogicETHOracleSetUpdatedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHOracleSetUpdatedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHOracleSetUpdatedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHOracleSetUpdatedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHOracleSetUpdatedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHOracleSetUpdatedEvent represents a OracleSetUpdatedEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHOracleSetUpdatedEvent struct { - NewOracleSetNonce *big.Int - EventNonce *big.Int - Oracles []common.Address - Powers []*big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOracleSetUpdatedEvent is a free log retrieval operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterOracleSetUpdatedEvent(opts *bind.FilterOpts, _newOracleSetNonce []*big.Int) (*FxBridgeLogicETHOracleSetUpdatedEventIterator, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHOracleSetUpdatedEventIterator{contract: _FxBridgeLogicETH.contract, event: "OracleSetUpdatedEvent", logs: logs, sub: sub}, nil -} - -// WatchOracleSetUpdatedEvent is a free log subscription operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchOracleSetUpdatedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHOracleSetUpdatedEvent, _newOracleSetNonce []*big.Int) (event.Subscription, error) { - - var _newOracleSetNonceRule []interface{} - for _, _newOracleSetNonceItem := range _newOracleSetNonce { - _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHOracleSetUpdatedEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOracleSetUpdatedEvent is a log parse operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. -// -// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseOracleSetUpdatedEvent(log types.Log) (*FxBridgeLogicETHOracleSetUpdatedEvent, error) { - event := new(FxBridgeLogicETHOracleSetUpdatedEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHOwnershipTransferredIterator struct { - Event *FxBridgeLogicETHOwnershipTransferred // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHOwnershipTransferredIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHOwnershipTransferred represents a OwnershipTransferred event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHOwnershipTransferred struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*FxBridgeLogicETHOwnershipTransferredIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHOwnershipTransferredIterator{contract: _FxBridgeLogicETH.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil -} - -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHOwnershipTransferred) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseOwnershipTransferred(log types.Log) (*FxBridgeLogicETHOwnershipTransferred, error) { - event := new(FxBridgeLogicETHOwnershipTransferred) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHPausedIterator struct { - Event *FxBridgeLogicETHPaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHPausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHPaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHPausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHPausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHPaused represents a Paused event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHPaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterPaused(opts *bind.FilterOpts) (*FxBridgeLogicETHPausedIterator, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &FxBridgeLogicETHPausedIterator{contract: _FxBridgeLogicETH.contract, event: "Paused", logs: logs, sub: sub}, nil -} - -// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHPaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "Paused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHPaused) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Paused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. -// -// Solidity: event Paused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParsePaused(log types.Log) (*FxBridgeLogicETHPaused, error) { - event := new(FxBridgeLogicETHPaused) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHSendToFxEventIterator is returned from FilterSendToFxEvent and is used to iterate over the raw logs and unpacked data for SendToFxEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHSendToFxEventIterator struct { - Event *FxBridgeLogicETHSendToFxEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHSendToFxEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHSendToFxEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHSendToFxEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHSendToFxEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHSendToFxEvent represents a SendToFxEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHSendToFxEvent struct { - TokenContract common.Address - Sender common.Address - Destination [32]byte - TargetIBC [32]byte - Amount *big.Int - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSendToFxEvent is a free log retrieval operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterSendToFxEvent(opts *bind.FilterOpts, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (*FxBridgeLogicETHSendToFxEventIterator, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHSendToFxEventIterator{contract: _FxBridgeLogicETH.contract, event: "SendToFxEvent", logs: logs, sub: sub}, nil -} - -// WatchSendToFxEvent is a free log subscription operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchSendToFxEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHSendToFxEvent, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (event.Subscription, error) { - - var _tokenContractRule []interface{} - for _, _tokenContractItem := range _tokenContract { - _tokenContractRule = append(_tokenContractRule, _tokenContractItem) - } - var _senderRule []interface{} - for _, _senderItem := range _sender { - _senderRule = append(_senderRule, _senderItem) - } - var _destinationRule []interface{} - for _, _destinationItem := range _destination { - _destinationRule = append(_destinationRule, _destinationItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHSendToFxEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSendToFxEvent is a log parse operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. -// -// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseSendToFxEvent(log types.Log) (*FxBridgeLogicETHSendToFxEvent, error) { - event := new(FxBridgeLogicETHSendToFxEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHTransactionBatchExecutedEventIterator is returned from FilterTransactionBatchExecutedEvent and is used to iterate over the raw logs and unpacked data for TransactionBatchExecutedEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHTransactionBatchExecutedEventIterator struct { - Event *FxBridgeLogicETHTransactionBatchExecutedEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHTransactionBatchExecutedEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHTransactionBatchExecutedEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHTransactionBatchExecutedEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHTransactionBatchExecutedEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHTransactionBatchExecutedEvent represents a TransactionBatchExecutedEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHTransactionBatchExecutedEvent struct { - BatchNonce *big.Int - Token common.Address - EventNonce *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransactionBatchExecutedEvent is a free log retrieval operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterTransactionBatchExecutedEvent(opts *bind.FilterOpts, _batchNonce []*big.Int, _token []common.Address) (*FxBridgeLogicETHTransactionBatchExecutedEventIterator, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return &FxBridgeLogicETHTransactionBatchExecutedEventIterator{contract: _FxBridgeLogicETH.contract, event: "TransactionBatchExecutedEvent", logs: logs, sub: sub}, nil -} - -// WatchTransactionBatchExecutedEvent is a free log subscription operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchTransactionBatchExecutedEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHTransactionBatchExecutedEvent, _batchNonce []*big.Int, _token []common.Address) (event.Subscription, error) { - - var _batchNonceRule []interface{} - for _, _batchNonceItem := range _batchNonce { - _batchNonceRule = append(_batchNonceRule, _batchNonceItem) - } - var _tokenRule []interface{} - for _, _tokenItem := range _token { - _tokenRule = append(_tokenRule, _tokenItem) - } - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHTransactionBatchExecutedEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransactionBatchExecutedEvent is a log parse operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. -// -// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseTransactionBatchExecutedEvent(log types.Log) (*FxBridgeLogicETHTransactionBatchExecutedEvent, error) { - event := new(FxBridgeLogicETHTransactionBatchExecutedEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHTransferOwnerEventIterator is returned from FilterTransferOwnerEvent and is used to iterate over the raw logs and unpacked data for TransferOwnerEvent events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHTransferOwnerEventIterator struct { - Event *FxBridgeLogicETHTransferOwnerEvent // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHTransferOwnerEventIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHTransferOwnerEvent) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHTransferOwnerEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHTransferOwnerEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHTransferOwnerEvent represents a TransferOwnerEvent event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHTransferOwnerEvent struct { - Token common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterTransferOwnerEvent is a free log retrieval operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterTransferOwnerEvent(opts *bind.FilterOpts) (*FxBridgeLogicETHTransferOwnerEventIterator, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return &FxBridgeLogicETHTransferOwnerEventIterator{contract: _FxBridgeLogicETH.contract, event: "TransferOwnerEvent", logs: logs, sub: sub}, nil -} - -// WatchTransferOwnerEvent is a free log subscription operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchTransferOwnerEvent(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHTransferOwnerEvent) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "TransferOwnerEvent") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHTransferOwnerEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseTransferOwnerEvent is a log parse operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. -// -// Solidity: event TransferOwnerEvent(address _token, address _newOwner) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseTransferOwnerEvent(log types.Log) (*FxBridgeLogicETHTransferOwnerEvent, error) { - event := new(FxBridgeLogicETHTransferOwnerEvent) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// FxBridgeLogicETHUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHUnpausedIterator struct { - Event *FxBridgeLogicETHUnpaused // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *FxBridgeLogicETHUnpausedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(FxBridgeLogicETHUnpaused) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *FxBridgeLogicETHUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *FxBridgeLogicETHUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// FxBridgeLogicETHUnpaused represents a Unpaused event raised by the FxBridgeLogicETH contract. -type FxBridgeLogicETHUnpaused struct { - Account common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) FilterUnpaused(opts *bind.FilterOpts) (*FxBridgeLogicETHUnpausedIterator, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &FxBridgeLogicETHUnpausedIterator{contract: _FxBridgeLogicETH.contract, event: "Unpaused", logs: logs, sub: sub}, nil -} - -// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *FxBridgeLogicETHUnpaused) (event.Subscription, error) { - - logs, sub, err := _FxBridgeLogicETH.contract.WatchLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(FxBridgeLogicETHUnpaused) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Unpaused", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. -// -// Solidity: event Unpaused(address account) -func (_FxBridgeLogicETH *FxBridgeLogicETHFilterer) ParseUnpaused(log types.Log) (*FxBridgeLogicETHUnpaused, error) { - event := new(FxBridgeLogicETHUnpaused) - if err := _FxBridgeLogicETH.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/contract/IFxBridgeLogic.go b/contract/IFxBridgeLogic.go new file mode 100644 index 000000000..cc2210105 --- /dev/null +++ b/contract/IFxBridgeLogic.go @@ -0,0 +1,1994 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contract + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IFxBridgeLogicBridgeToken is an auto generated low-level Go binding around an user-defined struct. +type IFxBridgeLogicBridgeToken struct { + Addr common.Address + Name string + Symbol string + Decimals uint8 +} + +// IFxBridgeLogicTokenStatus is an auto generated low-level Go binding around an user-defined struct. +type IFxBridgeLogicTokenStatus struct { + IsOriginated bool + IsActive bool + IsExist bool +} + +// IFxBridgeLogicMetaData contains all meta data concerning the IFxBridgeLogic contract. +var IFxBridgeLogicMetaData = &bind.MetaData{ + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"}],\"name\":\"AddBridgeTokenEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_dstChainId\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"BridgeCallEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"}],\"name\":\"OracleSetUpdatedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_refundNonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"RefundTokenExecutedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"SendToFxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_batchNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_eventNonce\",\"type\":\"uint256\"}],\"name\":\"TransactionBatchExecutedEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"TransferOwnerEvent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"activeBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_channelIBC\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isOriginated\",\"type\":\"bool\"}],\"name\":\"addBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_dstChainId\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"bridgeCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridgeTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"checkAssetStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"_theHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_powerThreshold\",\"type\":\"uint256\"}],\"name\":\"checkOracleSignatures\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_asset\",\"type\":\"bytes\"}],\"name\":\"decodeType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBridgeTokenList\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"internalType\":\"structIFxBridgeLogic.BridgeToken[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20Address\",\"type\":\"address\"}],\"name\":\"lastBatchNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_oracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_powers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_oracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_fxBridgeId\",\"type\":\"bytes32\"}],\"name\":\"makeCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"pauseBridgeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_nonceArray\",\"type\":\"uint256[2]\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_timeout\",\"type\":\"uint256\"}],\"name\":\"refundBridgeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_destination\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_targetIBC\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToFx\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_fxBridgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20Address\",\"type\":\"address\"}],\"name\":\"state_lastBatchNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastEventNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetCheckpoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_lastOracleSetNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"state_lastRefundNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state_powerThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"_destinations\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_fees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_nonceArray\",\"type\":\"uint256[2]\"},{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_batchTimeout\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_feeReceive\",\"type\":\"address\"}],\"name\":\"submitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenAddr\",\"type\":\"address\"}],\"name\":\"tokenStatus\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isOriginated\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExist\",\"type\":\"bool\"}],\"internalType\":\"structIFxBridgeLogic.TokenStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_newOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_newPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_newOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_currentOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_currentPowers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_currentOracleSetNonce\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"_v\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_r\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_s\",\"type\":\"bytes32[]\"}],\"name\":\"updateOracleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", +} + +// IFxBridgeLogicABI is the input ABI used to generate the binding from. +// Deprecated: Use IFxBridgeLogicMetaData.ABI instead. +var IFxBridgeLogicABI = IFxBridgeLogicMetaData.ABI + +// IFxBridgeLogic is an auto generated Go binding around an Ethereum contract. +type IFxBridgeLogic struct { + IFxBridgeLogicCaller // Read-only binding to the contract + IFxBridgeLogicTransactor // Write-only binding to the contract + IFxBridgeLogicFilterer // Log filterer for contract events +} + +// IFxBridgeLogicCaller is an auto generated read-only Go binding around an Ethereum contract. +type IFxBridgeLogicCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IFxBridgeLogicTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IFxBridgeLogicTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IFxBridgeLogicFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IFxBridgeLogicFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IFxBridgeLogicSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IFxBridgeLogicSession struct { + Contract *IFxBridgeLogic // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IFxBridgeLogicCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IFxBridgeLogicCallerSession struct { + Contract *IFxBridgeLogicCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IFxBridgeLogicTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IFxBridgeLogicTransactorSession struct { + Contract *IFxBridgeLogicTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IFxBridgeLogicRaw is an auto generated low-level Go binding around an Ethereum contract. +type IFxBridgeLogicRaw struct { + Contract *IFxBridgeLogic // Generic contract binding to access the raw methods on +} + +// IFxBridgeLogicCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IFxBridgeLogicCallerRaw struct { + Contract *IFxBridgeLogicCaller // Generic read-only contract binding to access the raw methods on +} + +// IFxBridgeLogicTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IFxBridgeLogicTransactorRaw struct { + Contract *IFxBridgeLogicTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIFxBridgeLogic creates a new instance of IFxBridgeLogic, bound to a specific deployed contract. +func NewIFxBridgeLogic(address common.Address, backend bind.ContractBackend) (*IFxBridgeLogic, error) { + contract, err := bindIFxBridgeLogic(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IFxBridgeLogic{IFxBridgeLogicCaller: IFxBridgeLogicCaller{contract: contract}, IFxBridgeLogicTransactor: IFxBridgeLogicTransactor{contract: contract}, IFxBridgeLogicFilterer: IFxBridgeLogicFilterer{contract: contract}}, nil +} + +// NewIFxBridgeLogicCaller creates a new read-only instance of IFxBridgeLogic, bound to a specific deployed contract. +func NewIFxBridgeLogicCaller(address common.Address, caller bind.ContractCaller) (*IFxBridgeLogicCaller, error) { + contract, err := bindIFxBridgeLogic(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IFxBridgeLogicCaller{contract: contract}, nil +} + +// NewIFxBridgeLogicTransactor creates a new write-only instance of IFxBridgeLogic, bound to a specific deployed contract. +func NewIFxBridgeLogicTransactor(address common.Address, transactor bind.ContractTransactor) (*IFxBridgeLogicTransactor, error) { + contract, err := bindIFxBridgeLogic(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IFxBridgeLogicTransactor{contract: contract}, nil +} + +// NewIFxBridgeLogicFilterer creates a new log filterer instance of IFxBridgeLogic, bound to a specific deployed contract. +func NewIFxBridgeLogicFilterer(address common.Address, filterer bind.ContractFilterer) (*IFxBridgeLogicFilterer, error) { + contract, err := bindIFxBridgeLogic(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IFxBridgeLogicFilterer{contract: contract}, nil +} + +// bindIFxBridgeLogic binds a generic wrapper to an already deployed contract. +func bindIFxBridgeLogic(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IFxBridgeLogicMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IFxBridgeLogic *IFxBridgeLogicRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IFxBridgeLogic.Contract.IFxBridgeLogicCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IFxBridgeLogic *IFxBridgeLogicRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.IFxBridgeLogicTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IFxBridgeLogic *IFxBridgeLogicRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.IFxBridgeLogicTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IFxBridgeLogic *IFxBridgeLogicCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IFxBridgeLogic.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IFxBridgeLogic *IFxBridgeLogicTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IFxBridgeLogic *IFxBridgeLogicTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.contract.Transact(opts, method, params...) +} + +// BridgeTokens is a free data retrieval call binding the contract method 0xf8a06888. +// +// Solidity: function bridgeTokens() view returns(address[]) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) BridgeTokens(opts *bind.CallOpts) ([]common.Address, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "bridgeTokens") + + if err != nil { + return *new([]common.Address), err + } + + out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) + + return out0, err + +} + +// BridgeTokens is a free data retrieval call binding the contract method 0xf8a06888. +// +// Solidity: function bridgeTokens() view returns(address[]) +func (_IFxBridgeLogic *IFxBridgeLogicSession) BridgeTokens() ([]common.Address, error) { + return _IFxBridgeLogic.Contract.BridgeTokens(&_IFxBridgeLogic.CallOpts) +} + +// BridgeTokens is a free data retrieval call binding the contract method 0xf8a06888. +// +// Solidity: function bridgeTokens() view returns(address[]) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) BridgeTokens() ([]common.Address, error) { + return _IFxBridgeLogic.Contract.BridgeTokens(&_IFxBridgeLogic.CallOpts) +} + +// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. +// +// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) CheckAssetStatus(opts *bind.CallOpts, _tokenAddr common.Address) (bool, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "checkAssetStatus", _tokenAddr) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. +// +// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { + return _IFxBridgeLogic.Contract.CheckAssetStatus(&_IFxBridgeLogic.CallOpts, _tokenAddr) +} + +// CheckAssetStatus is a free data retrieval call binding the contract method 0x474d561c. +// +// Solidity: function checkAssetStatus(address _tokenAddr) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) CheckAssetStatus(_tokenAddr common.Address) (bool, error) { + return _IFxBridgeLogic.Contract.CheckAssetStatus(&_IFxBridgeLogic.CallOpts, _tokenAddr) +} + +// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. +// +// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() +func (_IFxBridgeLogic *IFxBridgeLogicCaller) CheckOracleSignatures(opts *bind.CallOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "checkOracleSignatures", _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) + + if err != nil { + return err + } + + return err + +} + +// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. +// +// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { + return _IFxBridgeLogic.Contract.CheckOracleSignatures(&_IFxBridgeLogic.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) +} + +// CheckOracleSignatures is a free data retrieval call binding the contract method 0x285a190a. +// +// Solidity: function checkOracleSignatures(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, bytes32 _theHash, uint256 _powerThreshold) pure returns() +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) CheckOracleSignatures(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _theHash [32]byte, _powerThreshold *big.Int) error { + return _IFxBridgeLogic.Contract.CheckOracleSignatures(&_IFxBridgeLogic.CallOpts, _currentOracles, _currentPowers, _v, _r, _s, _theHash, _powerThreshold) +} + +// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. +// +// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) DecodeType(opts *bind.CallOpts, _asset []byte) (string, []byte, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "decodeType", _asset) + + if err != nil { + return *new(string), *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + out1 := *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return out0, out1, err + +} + +// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. +// +// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) +func (_IFxBridgeLogic *IFxBridgeLogicSession) DecodeType(_asset []byte) (string, []byte, error) { + return _IFxBridgeLogic.Contract.DecodeType(&_IFxBridgeLogic.CallOpts, _asset) +} + +// DecodeType is a free data retrieval call binding the contract method 0x4157a36c. +// +// Solidity: function decodeType(bytes _asset) pure returns(string, bytes) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) DecodeType(_asset []byte) (string, []byte, error) { + return _IFxBridgeLogic.Contract.DecodeType(&_IFxBridgeLogic.CallOpts, _asset) +} + +// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. +// +// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) GetBridgeTokenList(opts *bind.CallOpts) ([]IFxBridgeLogicBridgeToken, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "getBridgeTokenList") + + if err != nil { + return *new([]IFxBridgeLogicBridgeToken), err + } + + out0 := *abi.ConvertType(out[0], new([]IFxBridgeLogicBridgeToken)).(*[]IFxBridgeLogicBridgeToken) + + return out0, err + +} + +// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. +// +// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) +func (_IFxBridgeLogic *IFxBridgeLogicSession) GetBridgeTokenList() ([]IFxBridgeLogicBridgeToken, error) { + return _IFxBridgeLogic.Contract.GetBridgeTokenList(&_IFxBridgeLogic.CallOpts) +} + +// GetBridgeTokenList is a free data retrieval call binding the contract method 0x283040b4. +// +// Solidity: function getBridgeTokenList() view returns((address,string,string,uint8)[]) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) GetBridgeTokenList() ([]IFxBridgeLogicBridgeToken, error) { + return _IFxBridgeLogic.Contract.GetBridgeTokenList(&_IFxBridgeLogic.CallOpts) +} + +// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. +// +// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) LastBatchNonce(opts *bind.CallOpts, _erc20Address common.Address) (*big.Int, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "lastBatchNonce", _erc20Address) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. +// +// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { + return _IFxBridgeLogic.Contract.LastBatchNonce(&_IFxBridgeLogic.CallOpts, _erc20Address) +} + +// LastBatchNonce is a free data retrieval call binding the contract method 0x011b2174. +// +// Solidity: function lastBatchNonce(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) LastBatchNonce(_erc20Address common.Address) (*big.Int, error) { + return _IFxBridgeLogic.Contract.LastBatchNonce(&_IFxBridgeLogic.CallOpts, _erc20Address) +} + +// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. +// +// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) MakeCheckpoint(opts *bind.CallOpts, _oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "makeCheckpoint", _oracles, _powers, _oracleSetNonce, _fxBridgeId) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. +// +// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { + return _IFxBridgeLogic.Contract.MakeCheckpoint(&_IFxBridgeLogic.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) +} + +// MakeCheckpoint is a free data retrieval call binding the contract method 0x71cbf381. +// +// Solidity: function makeCheckpoint(address[] _oracles, uint256[] _powers, uint256 _oracleSetNonce, bytes32 _fxBridgeId) pure returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) MakeCheckpoint(_oracles []common.Address, _powers []*big.Int, _oracleSetNonce *big.Int, _fxBridgeId [32]byte) ([32]byte, error) { + return _IFxBridgeLogic.Contract.MakeCheckpoint(&_IFxBridgeLogic.CallOpts, _oracles, _powers, _oracleSetNonce, _fxBridgeId) +} + +// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. +// +// Solidity: function state_fxBridgeId() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateFxBridgeId(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_fxBridgeId") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. +// +// Solidity: function state_fxBridgeId() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateFxBridgeId() ([32]byte, error) { + return _IFxBridgeLogic.Contract.StateFxBridgeId(&_IFxBridgeLogic.CallOpts) +} + +// StateFxBridgeId is a free data retrieval call binding the contract method 0xf92367fd. +// +// Solidity: function state_fxBridgeId() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateFxBridgeId() ([32]byte, error) { + return _IFxBridgeLogic.Contract.StateFxBridgeId(&_IFxBridgeLogic.CallOpts) +} + +// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. +// +// Solidity: function state_lastBatchNonces(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateLastBatchNonces(opts *bind.CallOpts, _erc20Address common.Address) (*big.Int, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_lastBatchNonces", _erc20Address) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. +// +// Solidity: function state_lastBatchNonces(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateLastBatchNonces(_erc20Address common.Address) (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastBatchNonces(&_IFxBridgeLogic.CallOpts, _erc20Address) +} + +// StateLastBatchNonces is a free data retrieval call binding the contract method 0xdf97174b. +// +// Solidity: function state_lastBatchNonces(address _erc20Address) view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateLastBatchNonces(_erc20Address common.Address) (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastBatchNonces(&_IFxBridgeLogic.CallOpts, _erc20Address) +} + +// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. +// +// Solidity: function state_lastEventNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateLastEventNonce(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_lastEventNonce") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. +// +// Solidity: function state_lastEventNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateLastEventNonce() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastEventNonce(&_IFxBridgeLogic.CallOpts) +} + +// StateLastEventNonce is a free data retrieval call binding the contract method 0x73b20547. +// +// Solidity: function state_lastEventNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateLastEventNonce() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastEventNonce(&_IFxBridgeLogic.CallOpts) +} + +// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. +// +// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateLastOracleSetCheckpoint(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_lastOracleSetCheckpoint") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. +// +// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateLastOracleSetCheckpoint() ([32]byte, error) { + return _IFxBridgeLogic.Contract.StateLastOracleSetCheckpoint(&_IFxBridgeLogic.CallOpts) +} + +// StateLastOracleSetCheckpoint is a free data retrieval call binding the contract method 0x70a0eb94. +// +// Solidity: function state_lastOracleSetCheckpoint() view returns(bytes32) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateLastOracleSetCheckpoint() ([32]byte, error) { + return _IFxBridgeLogic.Contract.StateLastOracleSetCheckpoint(&_IFxBridgeLogic.CallOpts) +} + +// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. +// +// Solidity: function state_lastOracleSetNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateLastOracleSetNonce(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_lastOracleSetNonce") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. +// +// Solidity: function state_lastOracleSetNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateLastOracleSetNonce() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastOracleSetNonce(&_IFxBridgeLogic.CallOpts) +} + +// StateLastOracleSetNonce is a free data retrieval call binding the contract method 0xbb83bf96. +// +// Solidity: function state_lastOracleSetNonce() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateLastOracleSetNonce() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StateLastOracleSetNonce(&_IFxBridgeLogic.CallOpts) +} + +// StateLastRefundNonce is a free data retrieval call binding the contract method 0x0fa4f599. +// +// Solidity: function state_lastRefundNonce(uint256 _nonce) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StateLastRefundNonce(opts *bind.CallOpts, _nonce *big.Int) (bool, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_lastRefundNonce", _nonce) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// StateLastRefundNonce is a free data retrieval call binding the contract method 0x0fa4f599. +// +// Solidity: function state_lastRefundNonce(uint256 _nonce) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StateLastRefundNonce(_nonce *big.Int) (bool, error) { + return _IFxBridgeLogic.Contract.StateLastRefundNonce(&_IFxBridgeLogic.CallOpts, _nonce) +} + +// StateLastRefundNonce is a free data retrieval call binding the contract method 0x0fa4f599. +// +// Solidity: function state_lastRefundNonce(uint256 _nonce) view returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StateLastRefundNonce(_nonce *big.Int) (bool, error) { + return _IFxBridgeLogic.Contract.StateLastRefundNonce(&_IFxBridgeLogic.CallOpts, _nonce) +} + +// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. +// +// Solidity: function state_powerThreshold() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) StatePowerThreshold(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "state_powerThreshold") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. +// +// Solidity: function state_powerThreshold() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicSession) StatePowerThreshold() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StatePowerThreshold(&_IFxBridgeLogic.CallOpts) +} + +// StatePowerThreshold is a free data retrieval call binding the contract method 0xe5a2b5d2. +// +// Solidity: function state_powerThreshold() view returns(uint256) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) StatePowerThreshold() (*big.Int, error) { + return _IFxBridgeLogic.Contract.StatePowerThreshold(&_IFxBridgeLogic.CallOpts) +} + +// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. +// +// Solidity: function tokenStatus(address _tokenAddr) view returns((bool,bool,bool)) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) TokenStatus(opts *bind.CallOpts, _tokenAddr common.Address) (IFxBridgeLogicTokenStatus, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "tokenStatus", _tokenAddr) + + if err != nil { + return *new(IFxBridgeLogicTokenStatus), err + } + + out0 := *abi.ConvertType(out[0], new(IFxBridgeLogicTokenStatus)).(*IFxBridgeLogicTokenStatus) + + return out0, err + +} + +// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. +// +// Solidity: function tokenStatus(address _tokenAddr) view returns((bool,bool,bool)) +func (_IFxBridgeLogic *IFxBridgeLogicSession) TokenStatus(_tokenAddr common.Address) (IFxBridgeLogicTokenStatus, error) { + return _IFxBridgeLogic.Contract.TokenStatus(&_IFxBridgeLogic.CallOpts, _tokenAddr) +} + +// TokenStatus is a free data retrieval call binding the contract method 0x0acac942. +// +// Solidity: function tokenStatus(address _tokenAddr) view returns((bool,bool,bool)) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) TokenStatus(_tokenAddr common.Address) (IFxBridgeLogicTokenStatus, error) { + return _IFxBridgeLogic.Contract.TokenStatus(&_IFxBridgeLogic.CallOpts, _tokenAddr) +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_IFxBridgeLogic *IFxBridgeLogicCaller) Version(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _IFxBridgeLogic.contract.Call(opts, &out, "version") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_IFxBridgeLogic *IFxBridgeLogicSession) Version() (string, error) { + return _IFxBridgeLogic.Contract.Version(&_IFxBridgeLogic.CallOpts) +} + +// Version is a free data retrieval call binding the contract method 0x54fd4d50. +// +// Solidity: function version() view returns(string) +func (_IFxBridgeLogic *IFxBridgeLogicCallerSession) Version() (string, error) { + return _IFxBridgeLogic.Contract.Version(&_IFxBridgeLogic.CallOpts) +} + +// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. +// +// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) ActiveBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "activeBridgeToken", _tokenAddr) +} + +// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. +// +// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.ActiveBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr) +} + +// ActiveBridgeToken is a paid mutator transaction binding the contract method 0xdde65aea. +// +// Solidity: function activeBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) ActiveBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.ActiveBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr) +} + +// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. +// +// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) AddBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "addBridgeToken", _tokenAddr, _channelIBC, _isOriginated) +} + +// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. +// +// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.AddBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) +} + +// AddBridgeToken is a paid mutator transaction binding the contract method 0xf1099f61. +// +// Solidity: function addBridgeToken(address _tokenAddr, bytes32 _channelIBC, bool _isOriginated) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) AddBridgeToken(_tokenAddr common.Address, _channelIBC [32]byte, _isOriginated bool) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.AddBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr, _channelIBC, _isOriginated) +} + +// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. +// +// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) BridgeCall(opts *bind.TransactOpts, _dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "bridgeCall", _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) +} + +// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. +// +// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) BridgeCall(_dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.BridgeCall(&_IFxBridgeLogic.TransactOpts, _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) +} + +// BridgeCall is a paid mutator transaction binding the contract method 0x6907f2e6. +// +// Solidity: function bridgeCall(string _dstChainId, uint256 _gasLimit, address _receiver, address _to, bytes _message, uint256 _value, bytes _asset) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) BridgeCall(_dstChainId string, _gasLimit *big.Int, _receiver common.Address, _to common.Address, _message []byte, _value *big.Int, _asset []byte) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.BridgeCall(&_IFxBridgeLogic.TransactOpts, _dstChainId, _gasLimit, _receiver, _to, _message, _value, _asset) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) Pause() (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.Pause(&_IFxBridgeLogic.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) Pause() (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.Pause(&_IFxBridgeLogic.TransactOpts) +} + +// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. +// +// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) PauseBridgeToken(opts *bind.TransactOpts, _tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "pauseBridgeToken", _tokenAddr) +} + +// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. +// +// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.PauseBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr) +} + +// PauseBridgeToken is a paid mutator transaction binding the contract method 0xa36a4ab0. +// +// Solidity: function pauseBridgeToken(address _tokenAddr) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) PauseBridgeToken(_tokenAddr common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.PauseBridgeToken(&_IFxBridgeLogic.TransactOpts, _tokenAddr) +} + +// RefundBridgeToken is a paid mutator transaction binding the contract method 0x5e438fcf. +// +// Solidity: function refundBridgeToken(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[2] _nonceArray, address _receiver, address[] _tokens, uint256[] _amounts, uint256 _timeout) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) RefundBridgeToken(opts *bind.TransactOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _nonceArray [2]*big.Int, _receiver common.Address, _tokens []common.Address, _amounts []*big.Int, _timeout *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "refundBridgeToken", _currentOracles, _currentPowers, _v, _r, _s, _nonceArray, _receiver, _tokens, _amounts, _timeout) +} + +// RefundBridgeToken is a paid mutator transaction binding the contract method 0x5e438fcf. +// +// Solidity: function refundBridgeToken(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[2] _nonceArray, address _receiver, address[] _tokens, uint256[] _amounts, uint256 _timeout) returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) RefundBridgeToken(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _nonceArray [2]*big.Int, _receiver common.Address, _tokens []common.Address, _amounts []*big.Int, _timeout *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.RefundBridgeToken(&_IFxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _nonceArray, _receiver, _tokens, _amounts, _timeout) +} + +// RefundBridgeToken is a paid mutator transaction binding the contract method 0x5e438fcf. +// +// Solidity: function refundBridgeToken(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[2] _nonceArray, address _receiver, address[] _tokens, uint256[] _amounts, uint256 _timeout) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) RefundBridgeToken(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _nonceArray [2]*big.Int, _receiver common.Address, _tokens []common.Address, _amounts []*big.Int, _timeout *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.RefundBridgeToken(&_IFxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _nonceArray, _receiver, _tokens, _amounts, _timeout) +} + +// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. +// +// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) SendToFx(opts *bind.TransactOpts, _tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "sendToFx", _tokenContract, _destination, _targetIBC, _amount) +} + +// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. +// +// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.SendToFx(&_IFxBridgeLogic.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) +} + +// SendToFx is a paid mutator transaction binding the contract method 0x6189d107. +// +// Solidity: function sendToFx(address _tokenContract, bytes32 _destination, bytes32 _targetIBC, uint256 _amount) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) SendToFx(_tokenContract common.Address, _destination [32]byte, _targetIBC [32]byte, _amount *big.Int) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.SendToFx(&_IFxBridgeLogic.TransactOpts, _tokenContract, _destination, _targetIBC, _amount) +} + +// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. +// +// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) SubmitBatch(opts *bind.TransactOpts, _currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "submitBatch", _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) +} + +// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. +// +// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.SubmitBatch(&_IFxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) +} + +// SubmitBatch is a paid mutator transaction binding the contract method 0x332caa1f. +// +// Solidity: function submitBatch(address[] _currentOracles, uint256[] _currentPowers, uint8[] _v, bytes32[] _r, bytes32[] _s, uint256[] _amounts, address[] _destinations, uint256[] _fees, uint256[2] _nonceArray, address _tokenContract, uint256 _batchTimeout, address _feeReceive) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) SubmitBatch(_currentOracles []common.Address, _currentPowers []*big.Int, _v []uint8, _r [][32]byte, _s [][32]byte, _amounts []*big.Int, _destinations []common.Address, _fees []*big.Int, _nonceArray [2]*big.Int, _tokenContract common.Address, _batchTimeout *big.Int, _feeReceive common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.SubmitBatch(&_IFxBridgeLogic.TransactOpts, _currentOracles, _currentPowers, _v, _r, _s, _amounts, _destinations, _fees, _nonceArray, _tokenContract, _batchTimeout, _feeReceive) +} + +// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. +// +// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) TransferOwner(opts *bind.TransactOpts, _token common.Address, _newOwner common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "transferOwner", _token, _newOwner) +} + +// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. +// +// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.TransferOwner(&_IFxBridgeLogic.TransactOpts, _token, _newOwner) +} + +// TransferOwner is a paid mutator transaction binding the contract method 0x31678cf6. +// +// Solidity: function transferOwner(address _token, address _newOwner) returns(bool) +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) TransferOwner(_token common.Address, _newOwner common.Address) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.TransferOwner(&_IFxBridgeLogic.TransactOpts, _token, _newOwner) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) Unpause() (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.Unpause(&_IFxBridgeLogic.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) Unpause() (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.Unpause(&_IFxBridgeLogic.TransactOpts) +} + +// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. +// +// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactor) UpdateOracleSet(opts *bind.TransactOpts, _newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { + return _IFxBridgeLogic.contract.Transact(opts, "updateOracleSet", _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) +} + +// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. +// +// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() +func (_IFxBridgeLogic *IFxBridgeLogicSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.UpdateOracleSet(&_IFxBridgeLogic.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) +} + +// UpdateOracleSet is a paid mutator transaction binding the contract method 0x3a08e299. +// +// Solidity: function updateOracleSet(address[] _newOracles, uint256[] _newPowers, uint256 _newOracleSetNonce, address[] _currentOracles, uint256[] _currentPowers, uint256 _currentOracleSetNonce, uint8[] _v, bytes32[] _r, bytes32[] _s) returns() +func (_IFxBridgeLogic *IFxBridgeLogicTransactorSession) UpdateOracleSet(_newOracles []common.Address, _newPowers []*big.Int, _newOracleSetNonce *big.Int, _currentOracles []common.Address, _currentPowers []*big.Int, _currentOracleSetNonce *big.Int, _v []uint8, _r [][32]byte, _s [][32]byte) (*types.Transaction, error) { + return _IFxBridgeLogic.Contract.UpdateOracleSet(&_IFxBridgeLogic.TransactOpts, _newOracles, _newPowers, _newOracleSetNonce, _currentOracles, _currentPowers, _currentOracleSetNonce, _v, _r, _s) +} + +// IFxBridgeLogicAddBridgeTokenEventIterator is returned from FilterAddBridgeTokenEvent and is used to iterate over the raw logs and unpacked data for AddBridgeTokenEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicAddBridgeTokenEventIterator struct { + Event *IFxBridgeLogicAddBridgeTokenEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicAddBridgeTokenEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicAddBridgeTokenEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicAddBridgeTokenEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicAddBridgeTokenEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicAddBridgeTokenEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicAddBridgeTokenEvent represents a AddBridgeTokenEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicAddBridgeTokenEvent struct { + TokenContract common.Address + Name string + Symbol string + Decimals uint8 + EventNonce *big.Int + ChannelIBC [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAddBridgeTokenEvent is a free log retrieval operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. +// +// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterAddBridgeTokenEvent(opts *bind.FilterOpts, _tokenContract []common.Address) (*IFxBridgeLogicAddBridgeTokenEventIterator, error) { + + var _tokenContractRule []interface{} + for _, _tokenContractItem := range _tokenContract { + _tokenContractRule = append(_tokenContractRule, _tokenContractItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicAddBridgeTokenEventIterator{contract: _IFxBridgeLogic.contract, event: "AddBridgeTokenEvent", logs: logs, sub: sub}, nil +} + +// WatchAddBridgeTokenEvent is a free log subscription operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. +// +// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchAddBridgeTokenEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicAddBridgeTokenEvent, _tokenContract []common.Address) (event.Subscription, error) { + + var _tokenContractRule []interface{} + for _, _tokenContractItem := range _tokenContract { + _tokenContractRule = append(_tokenContractRule, _tokenContractItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "AddBridgeTokenEvent", _tokenContractRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicAddBridgeTokenEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAddBridgeTokenEvent is a log parse operation binding the contract event 0x2da8f37eaabc4d44ba4fcc438e404bbed3344322280d6c67497e9c668c87ec0f. +// +// Solidity: event AddBridgeTokenEvent(address indexed _tokenContract, string _name, string _symbol, uint8 _decimals, uint256 _eventNonce, bytes32 _channelIBC) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseAddBridgeTokenEvent(log types.Log) (*IFxBridgeLogicAddBridgeTokenEvent, error) { + event := new(IFxBridgeLogicAddBridgeTokenEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "AddBridgeTokenEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicBridgeCallEventIterator is returned from FilterBridgeCallEvent and is used to iterate over the raw logs and unpacked data for BridgeCallEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicBridgeCallEventIterator struct { + Event *IFxBridgeLogicBridgeCallEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicBridgeCallEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicBridgeCallEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicBridgeCallEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicBridgeCallEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicBridgeCallEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicBridgeCallEvent represents a BridgeCallEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicBridgeCallEvent struct { + Sender common.Address + Receiver common.Address + To common.Address + EventNonce *big.Int + DstChainId string + GasLimit *big.Int + Value *big.Int + Message []byte + Asset []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBridgeCallEvent is a free log retrieval operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. +// +// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterBridgeCallEvent(opts *bind.FilterOpts, _sender []common.Address, _receiver []common.Address, _to []common.Address) (*IFxBridgeLogicBridgeCallEventIterator, error) { + + var _senderRule []interface{} + for _, _senderItem := range _sender { + _senderRule = append(_senderRule, _senderItem) + } + var _receiverRule []interface{} + for _, _receiverItem := range _receiver { + _receiverRule = append(_receiverRule, _receiverItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "BridgeCallEvent", _senderRule, _receiverRule, _toRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicBridgeCallEventIterator{contract: _IFxBridgeLogic.contract, event: "BridgeCallEvent", logs: logs, sub: sub}, nil +} + +// WatchBridgeCallEvent is a free log subscription operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. +// +// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchBridgeCallEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicBridgeCallEvent, _sender []common.Address, _receiver []common.Address, _to []common.Address) (event.Subscription, error) { + + var _senderRule []interface{} + for _, _senderItem := range _sender { + _senderRule = append(_senderRule, _senderItem) + } + var _receiverRule []interface{} + for _, _receiverItem := range _receiver { + _receiverRule = append(_receiverRule, _receiverItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "BridgeCallEvent", _senderRule, _receiverRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicBridgeCallEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "BridgeCallEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseBridgeCallEvent is a log parse operation binding the contract event 0xf3c12a71331f7e9f7264151c99b059b83ed6d0c4afb08530c2253b9d871efe8d. +// +// Solidity: event BridgeCallEvent(address indexed _sender, address indexed _receiver, address indexed _to, uint256 _eventNonce, string _dstChainId, uint256 _gasLimit, uint256 _value, bytes _message, bytes _asset) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseBridgeCallEvent(log types.Log) (*IFxBridgeLogicBridgeCallEvent, error) { + event := new(IFxBridgeLogicBridgeCallEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "BridgeCallEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicOracleSetUpdatedEventIterator is returned from FilterOracleSetUpdatedEvent and is used to iterate over the raw logs and unpacked data for OracleSetUpdatedEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicOracleSetUpdatedEventIterator struct { + Event *IFxBridgeLogicOracleSetUpdatedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicOracleSetUpdatedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicOracleSetUpdatedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicOracleSetUpdatedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicOracleSetUpdatedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicOracleSetUpdatedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicOracleSetUpdatedEvent represents a OracleSetUpdatedEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicOracleSetUpdatedEvent struct { + NewOracleSetNonce *big.Int + EventNonce *big.Int + Oracles []common.Address + Powers []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOracleSetUpdatedEvent is a free log retrieval operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. +// +// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterOracleSetUpdatedEvent(opts *bind.FilterOpts, _newOracleSetNonce []*big.Int) (*IFxBridgeLogicOracleSetUpdatedEventIterator, error) { + + var _newOracleSetNonceRule []interface{} + for _, _newOracleSetNonceItem := range _newOracleSetNonce { + _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicOracleSetUpdatedEventIterator{contract: _IFxBridgeLogic.contract, event: "OracleSetUpdatedEvent", logs: logs, sub: sub}, nil +} + +// WatchOracleSetUpdatedEvent is a free log subscription operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. +// +// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchOracleSetUpdatedEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicOracleSetUpdatedEvent, _newOracleSetNonce []*big.Int) (event.Subscription, error) { + + var _newOracleSetNonceRule []interface{} + for _, _newOracleSetNonceItem := range _newOracleSetNonce { + _newOracleSetNonceRule = append(_newOracleSetNonceRule, _newOracleSetNonceItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "OracleSetUpdatedEvent", _newOracleSetNonceRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicOracleSetUpdatedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOracleSetUpdatedEvent is a log parse operation binding the contract event 0x36c6022aad02313069de85ca9645431c7dd5e8e7a21685586461c4b25e2374b3. +// +// Solidity: event OracleSetUpdatedEvent(uint256 indexed _newOracleSetNonce, uint256 _eventNonce, address[] _oracles, uint256[] _powers) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseOracleSetUpdatedEvent(log types.Log) (*IFxBridgeLogicOracleSetUpdatedEvent, error) { + event := new(IFxBridgeLogicOracleSetUpdatedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "OracleSetUpdatedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicRefundTokenExecutedEventIterator is returned from FilterRefundTokenExecutedEvent and is used to iterate over the raw logs and unpacked data for RefundTokenExecutedEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicRefundTokenExecutedEventIterator struct { + Event *IFxBridgeLogicRefundTokenExecutedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicRefundTokenExecutedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicRefundTokenExecutedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicRefundTokenExecutedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicRefundTokenExecutedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicRefundTokenExecutedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicRefundTokenExecutedEvent represents a RefundTokenExecutedEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicRefundTokenExecutedEvent struct { + Receiver common.Address + RefundNonce *big.Int + EventNonce *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRefundTokenExecutedEvent is a free log retrieval operation binding the contract event 0x6dcbf583591c8ea7ca09e71708417169bd9d029f7ec9c7c23aeb204a697ee815. +// +// Solidity: event RefundTokenExecutedEvent(address indexed _receiver, uint256 indexed _refundNonce, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterRefundTokenExecutedEvent(opts *bind.FilterOpts, _receiver []common.Address, _refundNonce []*big.Int) (*IFxBridgeLogicRefundTokenExecutedEventIterator, error) { + + var _receiverRule []interface{} + for _, _receiverItem := range _receiver { + _receiverRule = append(_receiverRule, _receiverItem) + } + var _refundNonceRule []interface{} + for _, _refundNonceItem := range _refundNonce { + _refundNonceRule = append(_refundNonceRule, _refundNonceItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "RefundTokenExecutedEvent", _receiverRule, _refundNonceRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicRefundTokenExecutedEventIterator{contract: _IFxBridgeLogic.contract, event: "RefundTokenExecutedEvent", logs: logs, sub: sub}, nil +} + +// WatchRefundTokenExecutedEvent is a free log subscription operation binding the contract event 0x6dcbf583591c8ea7ca09e71708417169bd9d029f7ec9c7c23aeb204a697ee815. +// +// Solidity: event RefundTokenExecutedEvent(address indexed _receiver, uint256 indexed _refundNonce, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchRefundTokenExecutedEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicRefundTokenExecutedEvent, _receiver []common.Address, _refundNonce []*big.Int) (event.Subscription, error) { + + var _receiverRule []interface{} + for _, _receiverItem := range _receiver { + _receiverRule = append(_receiverRule, _receiverItem) + } + var _refundNonceRule []interface{} + for _, _refundNonceItem := range _refundNonce { + _refundNonceRule = append(_refundNonceRule, _refundNonceItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "RefundTokenExecutedEvent", _receiverRule, _refundNonceRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicRefundTokenExecutedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "RefundTokenExecutedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRefundTokenExecutedEvent is a log parse operation binding the contract event 0x6dcbf583591c8ea7ca09e71708417169bd9d029f7ec9c7c23aeb204a697ee815. +// +// Solidity: event RefundTokenExecutedEvent(address indexed _receiver, uint256 indexed _refundNonce, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseRefundTokenExecutedEvent(log types.Log) (*IFxBridgeLogicRefundTokenExecutedEvent, error) { + event := new(IFxBridgeLogicRefundTokenExecutedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "RefundTokenExecutedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicSendToFxEventIterator is returned from FilterSendToFxEvent and is used to iterate over the raw logs and unpacked data for SendToFxEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicSendToFxEventIterator struct { + Event *IFxBridgeLogicSendToFxEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicSendToFxEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicSendToFxEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicSendToFxEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicSendToFxEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicSendToFxEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicSendToFxEvent represents a SendToFxEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicSendToFxEvent struct { + TokenContract common.Address + Sender common.Address + Destination [32]byte + TargetIBC [32]byte + Amount *big.Int + EventNonce *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSendToFxEvent is a free log retrieval operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. +// +// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterSendToFxEvent(opts *bind.FilterOpts, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (*IFxBridgeLogicSendToFxEventIterator, error) { + + var _tokenContractRule []interface{} + for _, _tokenContractItem := range _tokenContract { + _tokenContractRule = append(_tokenContractRule, _tokenContractItem) + } + var _senderRule []interface{} + for _, _senderItem := range _sender { + _senderRule = append(_senderRule, _senderItem) + } + var _destinationRule []interface{} + for _, _destinationItem := range _destination { + _destinationRule = append(_destinationRule, _destinationItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicSendToFxEventIterator{contract: _IFxBridgeLogic.contract, event: "SendToFxEvent", logs: logs, sub: sub}, nil +} + +// WatchSendToFxEvent is a free log subscription operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. +// +// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchSendToFxEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicSendToFxEvent, _tokenContract []common.Address, _sender []common.Address, _destination [][32]byte) (event.Subscription, error) { + + var _tokenContractRule []interface{} + for _, _tokenContractItem := range _tokenContract { + _tokenContractRule = append(_tokenContractRule, _tokenContractItem) + } + var _senderRule []interface{} + for _, _senderItem := range _sender { + _senderRule = append(_senderRule, _senderItem) + } + var _destinationRule []interface{} + for _, _destinationItem := range _destination { + _destinationRule = append(_destinationRule, _destinationItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "SendToFxEvent", _tokenContractRule, _senderRule, _destinationRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicSendToFxEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSendToFxEvent is a log parse operation binding the contract event 0x034c5b22dd525a50d0a6b15549df0a6ac83b833a6c3da57ea16890832c72507c. +// +// Solidity: event SendToFxEvent(address indexed _tokenContract, address indexed _sender, bytes32 indexed _destination, bytes32 _targetIBC, uint256 _amount, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseSendToFxEvent(log types.Log) (*IFxBridgeLogicSendToFxEvent, error) { + event := new(IFxBridgeLogicSendToFxEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "SendToFxEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicTransactionBatchExecutedEventIterator is returned from FilterTransactionBatchExecutedEvent and is used to iterate over the raw logs and unpacked data for TransactionBatchExecutedEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicTransactionBatchExecutedEventIterator struct { + Event *IFxBridgeLogicTransactionBatchExecutedEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicTransactionBatchExecutedEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicTransactionBatchExecutedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicTransactionBatchExecutedEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicTransactionBatchExecutedEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicTransactionBatchExecutedEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicTransactionBatchExecutedEvent represents a TransactionBatchExecutedEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicTransactionBatchExecutedEvent struct { + BatchNonce *big.Int + Token common.Address + EventNonce *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransactionBatchExecutedEvent is a free log retrieval operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. +// +// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterTransactionBatchExecutedEvent(opts *bind.FilterOpts, _batchNonce []*big.Int, _token []common.Address) (*IFxBridgeLogicTransactionBatchExecutedEventIterator, error) { + + var _batchNonceRule []interface{} + for _, _batchNonceItem := range _batchNonce { + _batchNonceRule = append(_batchNonceRule, _batchNonceItem) + } + var _tokenRule []interface{} + for _, _tokenItem := range _token { + _tokenRule = append(_tokenRule, _tokenItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) + if err != nil { + return nil, err + } + return &IFxBridgeLogicTransactionBatchExecutedEventIterator{contract: _IFxBridgeLogic.contract, event: "TransactionBatchExecutedEvent", logs: logs, sub: sub}, nil +} + +// WatchTransactionBatchExecutedEvent is a free log subscription operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. +// +// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchTransactionBatchExecutedEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicTransactionBatchExecutedEvent, _batchNonce []*big.Int, _token []common.Address) (event.Subscription, error) { + + var _batchNonceRule []interface{} + for _, _batchNonceItem := range _batchNonce { + _batchNonceRule = append(_batchNonceRule, _batchNonceItem) + } + var _tokenRule []interface{} + for _, _tokenItem := range _token { + _tokenRule = append(_tokenRule, _tokenItem) + } + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "TransactionBatchExecutedEvent", _batchNonceRule, _tokenRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicTransactionBatchExecutedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransactionBatchExecutedEvent is a log parse operation binding the contract event 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708. +// +// Solidity: event TransactionBatchExecutedEvent(uint256 indexed _batchNonce, address indexed _token, uint256 _eventNonce) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseTransactionBatchExecutedEvent(log types.Log) (*IFxBridgeLogicTransactionBatchExecutedEvent, error) { + event := new(IFxBridgeLogicTransactionBatchExecutedEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "TransactionBatchExecutedEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IFxBridgeLogicTransferOwnerEventIterator is returned from FilterTransferOwnerEvent and is used to iterate over the raw logs and unpacked data for TransferOwnerEvent events raised by the IFxBridgeLogic contract. +type IFxBridgeLogicTransferOwnerEventIterator struct { + Event *IFxBridgeLogicTransferOwnerEvent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IFxBridgeLogicTransferOwnerEventIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicTransferOwnerEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IFxBridgeLogicTransferOwnerEvent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IFxBridgeLogicTransferOwnerEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IFxBridgeLogicTransferOwnerEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IFxBridgeLogicTransferOwnerEvent represents a TransferOwnerEvent event raised by the IFxBridgeLogic contract. +type IFxBridgeLogicTransferOwnerEvent struct { + Token common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransferOwnerEvent is a free log retrieval operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. +// +// Solidity: event TransferOwnerEvent(address _token, address _newOwner) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) FilterTransferOwnerEvent(opts *bind.FilterOpts) (*IFxBridgeLogicTransferOwnerEventIterator, error) { + + logs, sub, err := _IFxBridgeLogic.contract.FilterLogs(opts, "TransferOwnerEvent") + if err != nil { + return nil, err + } + return &IFxBridgeLogicTransferOwnerEventIterator{contract: _IFxBridgeLogic.contract, event: "TransferOwnerEvent", logs: logs, sub: sub}, nil +} + +// WatchTransferOwnerEvent is a free log subscription operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. +// +// Solidity: event TransferOwnerEvent(address _token, address _newOwner) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) WatchTransferOwnerEvent(opts *bind.WatchOpts, sink chan<- *IFxBridgeLogicTransferOwnerEvent) (event.Subscription, error) { + + logs, sub, err := _IFxBridgeLogic.contract.WatchLogs(opts, "TransferOwnerEvent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IFxBridgeLogicTransferOwnerEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseTransferOwnerEvent is a log parse operation binding the contract event 0xb0f1bf050fff9d249d22389b0f2673295260c8deca341a2755d95318f9fbc699. +// +// Solidity: event TransferOwnerEvent(address _token, address _newOwner) +func (_IFxBridgeLogic *IFxBridgeLogicFilterer) ParseTransferOwnerEvent(log types.Log) (*IFxBridgeLogicTransferOwnerEvent, error) { + event := new(IFxBridgeLogicTransferOwnerEvent) + if err := _IFxBridgeLogic.contract.UnpackLog(event, "TransferOwnerEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contract/IStaking.go b/contract/IStaking.go index e9e4594ab..d8c97ef40 100644 --- a/contract/IStaking.go +++ b/contract/IStaking.go @@ -26,6 +26,7 @@ var ( _ = common.Big1 _ = types.BloomLookup _ = event.NewSubscription + _ = abi.ConvertType ) // IStakingMetaData contains all meta data concerning the IStaking contract. diff --git a/contract/compile.sh b/contract/compile.sh index 129d911d2..10495817f 100755 --- a/contract/compile.sh +++ b/contract/compile.sh @@ -26,7 +26,7 @@ echo "===> Compiling contracts" [[ ! -d "$project_dir/contract/artifacts" ]] && mkdir -p "$project_dir/contract/artifacts" # add core contracts -contracts=(WFXUpgradable FIP20Upgradable ICrossChain IStaking FxBridgeLogicETH FxBridgeLogicBSC FxBridgeLogic) +contracts=(WFXUpgradable FIP20Upgradable ICrossChain IStaking IFxBridgeLogic) contracts_test=(CrossChainTest StakingTest) # add 3rd party contracts contracts+=(ERC1967Proxy) diff --git a/solidity/contracts/bridge/IFxBridgeLogic.sol b/solidity/contracts/bridge/IFxBridgeLogic.sol new file mode 100644 index 000000000..0cae33f64 --- /dev/null +++ b/solidity/contracts/bridge/IFxBridgeLogic.sol @@ -0,0 +1,203 @@ +// SPDX-License-Identifier: Apache-2.0 + +pragma solidity ^0.8.0; + +interface IFxBridgeLogic { + /* solhint-disable func-name-mixedcase */ + function state_fxBridgeId() external view returns (bytes32); + function state_powerThreshold() external view returns (uint256); + + function state_lastEventNonce() external view returns (uint256); + function state_lastOracleSetCheckpoint() external view returns (bytes32); + function state_lastOracleSetNonce() external view returns (uint256); + function state_lastBatchNonces( + address _erc20Address + ) external view returns (uint256); + + function bridgeTokens() external view returns (address[] memory); + function tokenStatus( + address _tokenAddr + ) external view returns (TokenStatus memory); + function version() external view returns (string memory); + function state_lastRefundNonce(uint256 _nonce) external view returns (bool); + /* solhint-disable func-name-mixedcase */ + + struct TokenStatus { + bool isOriginated; + bool isActive; + bool isExist; + } + + struct TransferInfo { + uint256 amount; + address destination; + uint256 fee; + address exchange; + uint256 minExchange; + } + + struct BridgeToken { + address addr; + string name; + string symbol; + uint8 decimals; + } + + function addBridgeToken( + address _tokenAddr, + bytes32 _channelIBC, + bool _isOriginated + ) external returns (bool); + + function pauseBridgeToken(address _tokenAddr) external returns (bool); + + function activeBridgeToken(address _tokenAddr) external returns (bool); + + function updateOracleSet( + address[] memory _newOracles, + uint256[] memory _newPowers, + uint256 _newOracleSetNonce, + address[] memory _currentOracles, + uint256[] memory _currentPowers, + uint256 _currentOracleSetNonce, + uint8[] memory _v, + bytes32[] memory _r, + bytes32[] memory _s + ) external; + + function sendToFx( + address _tokenContract, + bytes32 _destination, + bytes32 _targetIBC, + uint256 _amount + ) external; + + function bridgeCall( + string memory _dstChainId, + uint256 _gasLimit, + address _receiver, + address _to, + bytes calldata _message, + uint256 _value, + bytes memory _asset + ) external; + + function submitBatch( + address[] memory _currentOracles, + uint256[] memory _currentPowers, + uint8[] memory _v, + bytes32[] memory _r, + bytes32[] memory _s, + uint256[] memory _amounts, + address[] memory _destinations, + uint256[] memory _fees, + uint256[2] memory _nonceArray, + address _tokenContract, + uint256 _batchTimeout, + address _feeReceive + ) external; + + function refundBridgeToken( + address[] memory _currentOracles, + uint256[] memory _currentPowers, + uint8[] memory _v, + bytes32[] memory _r, + bytes32[] memory _s, + uint256[2] memory _nonceArray, + address _receiver, + address[] memory _tokens, + uint256[] memory _amounts, + uint256 _timeout + ) external; + + function transferOwner( + address _token, + address _newOwner + ) external returns (bool); + + /* =============== QUERY FUNCTIONS =============== */ + + function lastBatchNonce( + address _erc20Address + ) external view returns (uint256); + + function checkAssetStatus(address _tokenAddr) external view returns (bool); + + /* ============== HELP FUNCTIONS =============== */ + + function makeCheckpoint( + address[] memory _oracles, + uint256[] memory _powers, + uint256 _oracleSetNonce, + bytes32 _fxBridgeId + ) external pure returns (bytes32); + + function checkOracleSignatures( + address[] memory _currentOracles, + uint256[] memory _currentPowers, + uint8[] memory _v, + bytes32[] memory _r, + bytes32[] memory _s, + bytes32 _theHash, + uint256 _powerThreshold + ) external pure; + + function pause() external; + + function unpause() external; + + function getBridgeTokenList() external view returns (BridgeToken[] memory); + + function decodeType( + bytes memory _asset + ) external pure returns (string memory, bytes memory); + + /* =============== EVENTS =============== */ + + event TransactionBatchExecutedEvent( + uint256 indexed _batchNonce, + address indexed _token, + uint256 _eventNonce + ); + event SendToFxEvent( + address indexed _tokenContract, + address indexed _sender, + bytes32 indexed _destination, + bytes32 _targetIBC, + uint256 _amount, + uint256 _eventNonce + ); + event AddBridgeTokenEvent( + address indexed _tokenContract, + string _name, + string _symbol, + uint8 _decimals, + uint256 _eventNonce, + bytes32 _channelIBC + ); + event OracleSetUpdatedEvent( + uint256 indexed _newOracleSetNonce, + uint256 _eventNonce, + address[] _oracles, + uint256[] _powers + ); + event TransferOwnerEvent(address _token, address _newOwner); + + event BridgeCallEvent( + address indexed _sender, + address indexed _receiver, + address indexed _to, + uint256 _eventNonce, + string _dstChainId, + uint256 _gasLimit, + uint256 _value, + bytes _message, + bytes _asset + ); + + event RefundTokenExecutedEvent( + address indexed _receiver, + uint256 indexed _refundNonce, + uint256 _eventNonce + ); +}