From a38f7ad77be6dac109895eefe948fc49cc5b1967 Mon Sep 17 00:00:00 2001 From: rain <206131521@qq.com> Date: Thu, 7 Apr 2022 01:03:55 +0800 Subject: [PATCH 1/4] ontevm bridge_common --- chains/ontevm/ontevm.go | 6 +++--- go.mod | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/chains/ontevm/ontevm.go b/chains/ontevm/ontevm.go index 2f78eab..eedb57f 100644 --- a/chains/ontevm/ontevm.go +++ b/chains/ontevm/ontevm.go @@ -20,16 +20,16 @@ package ontevm import ( "time" + ontology_go_sdk "github.com/ontio/ontology-go-sdk" "github.com/ontio/ontology/smartcontract/service/native/cross_chain/header_sync" outils "github.com/ontio/ontology/smartcontract/service/native/utils" - ontology_poly_sdk "github.com/rain-zxn/ontology-go-sdk" "github.com/polynetwork/bridge-common/chains" "github.com/polynetwork/bridge-common/util" "github.com/polynetwork/poly/native/service/utils" ) -type Rpc = ontology_poly_sdk.OntologySdk +type Rpc = ontology_go_sdk.OntologySdk type Client struct { *Rpc @@ -37,7 +37,7 @@ type Client struct { } func New(url string) *Client { - sdk := ontology_poly_sdk.NewOntologySdk() + sdk := ontology_go_sdk.NewOntologySdk() sdk.NewRpcClient().SetAddress(url) return &Client{ diff --git a/go.mod b/go.mod index 17a809e..a11f2c5 100644 --- a/go.mod +++ b/go.mod @@ -15,8 +15,8 @@ require ( github.com/joeqian10/neo-gogogo v1.4.0 github.com/mattn/go-colorable v0.1.7 github.com/mattn/go-isatty v0.0.13 - github.com/ontio/ontology v1.14.0-beta.0.20210818114002-fedaf66010a7 - github.com/ontio/ontology-go-sdk v1.12.4 + github.com/ontio/ontology v1.14.1-alpha + github.com/ontio/ontology-go-sdk v1.12.6-0.20220406074604-83d34f3f46ab github.com/polynetwork/cosmos-poly-module v0.0.0-20200810030259-95d586518759 github.com/polynetwork/poly v1.3.1 github.com/polynetwork/poly-go-sdk v0.0.0-20210114035303-84e1615f4ad4 @@ -31,5 +31,4 @@ require ( github.com/tendermint/tendermint v0.33.9 github.com/tendermint/tm-db v0.5.2 // indirect golang.org/x/sys v0.0.0-20210915083310-ed5796bab164 // indirect - github.com/rain-zxn/ontology-go-sdk v1.1.1 ) From b5478cd4bc2ea4728868107777c427e127a83420 Mon Sep 17 00:00:00 2001 From: rain <206131521@qq.com> Date: Thu, 7 Apr 2022 01:37:01 +0800 Subject: [PATCH 2/4] ontevm eccm_abi --- abi/now_eccm_abi/eccm_abi.go | 5328 ++++++++++++++++++++++++++++++++++ 1 file changed, 5328 insertions(+) create mode 100644 abi/now_eccm_abi/eccm_abi.go diff --git a/abi/now_eccm_abi/eccm_abi.go b/abi/now_eccm_abi/eccm_abi.go new file mode 100644 index 0000000..8047a55 --- /dev/null +++ b/abi/now_eccm_abi/eccm_abi.go @@ -0,0 +1,5328 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package eccm_abi + +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 +) + +// ContextABI is the input ABI used to generate the binding from. +const ContextABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]" + +// Context is an auto generated Go binding around an Ethereum contract. +type Context struct { + ContextCaller // Read-only binding to the contract + ContextTransactor // Write-only binding to the contract + ContextFilterer // Log filterer for contract events +} + +// ContextCaller is an auto generated read-only Go binding around an Ethereum contract. +type ContextCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ContextTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ContextFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ContextSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ContextSession struct { + Contract *Context // 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 +} + +// ContextCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ContextCallerSession struct { + Contract *ContextCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ContextTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ContextTransactorSession struct { + Contract *ContextTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ContextRaw is an auto generated low-level Go binding around an Ethereum contract. +type ContextRaw struct { + Contract *Context // Generic contract binding to access the raw methods on +} + +// ContextCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ContextCallerRaw struct { + Contract *ContextCaller // Generic read-only contract binding to access the raw methods on +} + +// ContextTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ContextTransactorRaw struct { + Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewContext creates a new instance of Context, bound to a specific deployed contract. +func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) { + contract, err := bindContext(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil +} + +// NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract. +func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) { + contract, err := bindContext(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ContextCaller{contract: contract}, nil +} + +// NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract. +func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) { + contract, err := bindContext(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ContextTransactor{contract: contract}, nil +} + +// NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract. +func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) { + contract, err := bindContext(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ContextFilterer{contract: contract}, nil +} + +// bindContext binds a generic wrapper to an already deployed contract. +func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ContextABI)) + 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 (_Context *ContextRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Context.Contract.ContextCaller.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 (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Context.Contract.ContextTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Context.Contract.ContextTransactor.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 (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Context.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 (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Context.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Context.Contract.contract.Transact(opts, method, params...) +} + +// ECCUtilsABI is the input ABI used to generate the binding from. +const ECCUtilsABI = "[]" + +// ECCUtilsBin is the compiled bytecode used for deploying new contracts. +var ECCUtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582068157e4171167b57137cdb287bd0f3d469960d8e34113a38b1b5e82da8552dfb64736f6c63430005110032" + +// DeployECCUtils deploys a new Ethereum contract, binding an instance of ECCUtils to it. +func DeployECCUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ECCUtils, error) { + parsed, err := abi.JSON(strings.NewReader(ECCUtilsABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ECCUtilsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ECCUtils{ECCUtilsCaller: ECCUtilsCaller{contract: contract}, ECCUtilsTransactor: ECCUtilsTransactor{contract: contract}, ECCUtilsFilterer: ECCUtilsFilterer{contract: contract}}, nil +} + +// ECCUtils is an auto generated Go binding around an Ethereum contract. +type ECCUtils struct { + ECCUtilsCaller // Read-only binding to the contract + ECCUtilsTransactor // Write-only binding to the contract + ECCUtilsFilterer // Log filterer for contract events +} + +// ECCUtilsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ECCUtilsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ECCUtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ECCUtilsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ECCUtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ECCUtilsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ECCUtilsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ECCUtilsSession struct { + Contract *ECCUtils // 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 +} + +// ECCUtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ECCUtilsCallerSession struct { + Contract *ECCUtilsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ECCUtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ECCUtilsTransactorSession struct { + Contract *ECCUtilsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ECCUtilsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ECCUtilsRaw struct { + Contract *ECCUtils // Generic contract binding to access the raw methods on +} + +// ECCUtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ECCUtilsCallerRaw struct { + Contract *ECCUtilsCaller // Generic read-only contract binding to access the raw methods on +} + +// ECCUtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ECCUtilsTransactorRaw struct { + Contract *ECCUtilsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewECCUtils creates a new instance of ECCUtils, bound to a specific deployed contract. +func NewECCUtils(address common.Address, backend bind.ContractBackend) (*ECCUtils, error) { + contract, err := bindECCUtils(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ECCUtils{ECCUtilsCaller: ECCUtilsCaller{contract: contract}, ECCUtilsTransactor: ECCUtilsTransactor{contract: contract}, ECCUtilsFilterer: ECCUtilsFilterer{contract: contract}}, nil +} + +// NewECCUtilsCaller creates a new read-only instance of ECCUtils, bound to a specific deployed contract. +func NewECCUtilsCaller(address common.Address, caller bind.ContractCaller) (*ECCUtilsCaller, error) { + contract, err := bindECCUtils(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ECCUtilsCaller{contract: contract}, nil +} + +// NewECCUtilsTransactor creates a new write-only instance of ECCUtils, bound to a specific deployed contract. +func NewECCUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*ECCUtilsTransactor, error) { + contract, err := bindECCUtils(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ECCUtilsTransactor{contract: contract}, nil +} + +// NewECCUtilsFilterer creates a new log filterer instance of ECCUtils, bound to a specific deployed contract. +func NewECCUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*ECCUtilsFilterer, error) { + contract, err := bindECCUtils(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ECCUtilsFilterer{contract: contract}, nil +} + +// bindECCUtils binds a generic wrapper to an already deployed contract. +func bindECCUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ECCUtilsABI)) + 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 (_ECCUtils *ECCUtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ECCUtils.Contract.ECCUtilsCaller.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 (_ECCUtils *ECCUtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ECCUtils.Contract.ECCUtilsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ECCUtils *ECCUtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ECCUtils.Contract.ECCUtilsTransactor.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 (_ECCUtils *ECCUtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ECCUtils.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 (_ECCUtils *ECCUtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ECCUtils.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ECCUtils *ECCUtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ECCUtils.Contract.contract.Transact(opts, method, params...) +} + +// EthCrossChainManagerABI is the input ABI used to generate the binding from. +const EthCrossChainManagerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_eccd\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"fromContractWhiteList\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"contractMethodWhiteList\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"ChangeBookKeeperEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"txId\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proxyOrAssetContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawdata\",\"type\":\"bytes\"}],\"name\":\"CrossChainEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"InitGenesisBlockEvent\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fromChainID\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"crossChainTxHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"fromChainTxHash\",\"type\":\"bytes\"}],\"name\":\"VerifyHeaderAndExecuteTxEvent\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sigList\",\"type\":\"bytes\"}],\"name\":\"changeBookKeeper\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"}],\"name\":\"initGenesisBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"curRawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerSig\",\"type\":\"bytes\"}],\"name\":\"verifyHeaderAndExecuteTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"whiteListContractMethodMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whiteListFromContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" + +// EthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. +var EthCrossChainManagerFuncSigs = map[string]string{ + "00ba1694": "EthCrossChainDataAddress()", + "9a8a0592": "chainId()", + "29dcf4ab": "changeBookKeeper(bytes,bytes,bytes)", + "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", + "34a773eb": "initGenesisBlock(bytes,bytes)", + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "715018a6": "renounceOwnership()", + "6f31031d": "setChainId(uint64)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", + "d450e04c": "verifyHeaderAndExecuteTx(bytes,bytes,bytes,bytes,bytes)", + "ba1c9bc7": "whiteListContractMethodMap(address,bytes)", + "73f53ba4": "whiteListFromContract(address)", +} + +// EthCrossChainManagerBin is the compiled bytecode used for deploying new contracts. +var EthCrossChainManagerBin = "0x60806040523480156200001157600080fd5b5060405162004e0a38038062004e0a833981016040819052620000349162000436565b838360006200004b6001600160e01b036200021216565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19168155600180546001600160401b03909316600160a01b02600160a01b600160e01b03196001600160a01b039095166001600160a01b03199094169390931793909316919091179091555b825181101562000142576001600260008584815181106200010757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620000ea565b5060005b81518110156200020757600060608383815181106200016157fe5b60200260200101518060200190516200017e9190810190620003df565b909250905060005b8151811015620001fb576001600160a01b0383166000908152600360205260409020825160019190849084908110620001bb57fe5b6020026020010151604051620001d2919062000505565b908152604051908190036020019020805491151560ff1990921691909117905560010162000186565b50505060010162000146565b505050505062000609565b3390565b80516200022381620005e4565b92915050565b600082601f8301126200023b57600080fd5b8151620002526200024c8262000541565b6200051a565b915081818352602084019350602081019050838560208402820111156200027857600080fd5b60005b83811015620002a8578162000291888262000216565b84525060209283019291909101906001016200027b565b5050505092915050565b600082601f830112620002c457600080fd5b8151620002d56200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200030088826200037c565b8452506020928301929190910190600101620002e7565b600082601f8301126200032957600080fd5b81516200033a6200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200036588826200037c565b84525060209283019291909101906001016200034c565b600082601f8301126200038e57600080fd5b81516200039f6200024c8262000562565b91508082526020830160208301858383011115620003bc57600080fd5b620003c9838284620005b1565b50505092915050565b80516200022381620005fe565b60008060408385031215620003f357600080fd5b600062000401858562000216565b92505060208301516001600160401b038111156200041e57600080fd5b6200042c85828601620002b2565b9150509250929050565b600080600080608085870312156200044d57600080fd5b60006200045b878762000216565b94505060206200046e87828801620003d2565b93505060408501516001600160401b038111156200048b57600080fd5b620004998782880162000229565b92505060608501516001600160401b03811115620004b657600080fd5b620004c48782880162000317565b91505092959194509250565b6000620004dd826200058a565b620004e981856200058e565b9350620004fb818560208601620005b1565b9290920192915050565b6000620005138284620004d0565b9392505050565b6040518181016001600160401b03811182821017156200053957600080fd5b604052919050565b60006001600160401b038211156200055857600080fd5b5060209081020190565b60006001600160401b038211156200057957600080fd5b506020601f91909101601f19160190565b5190565b919050565b60006001600160a01b03821662000223565b6001600160401b031690565b60005b83811015620005ce578181015183820152602001620005b4565b83811115620005de576000848401525b50505050565b620005ef8162000593565b8114620005fb57600080fd5b50565b620005ef81620005a5565b6147f180620006196000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c80637e724ff3116100a25780639a8a0592116100715780639a8a0592146101cb578063ba1c9bc7146101e0578063bd5cf625146101f3578063d450e04c14610206578063f2fde38b146102195761010a565b80637e724ff3146101a05780638456cb59146101b35780638da5cb5b146101bb5780638f32d59b146101c35761010a565b80635c975abb116100de5780635c975abb146101685780636f31031d14610170578063715018a61461018357806373f53ba41461018d5761010a565b8062ba16941461010f57806329dcf4ab1461012d57806334a773eb1461014d5780633f4ba83a14610160575b600080fd5b61011761022c565b6040516101249190614194565b60405180910390f35b61014061013b366004612fd7565b61023b565b60405161012491906141b0565b61014061015b366004612fa2565b610609565b6101406108bc565b610140610a11565b61014061017e36600461316d565b610a21565b61018b610a9b565b005b61014061019b366004612ec3565b610b09565b6101406101ae366004612ec3565b610b1e565b610140610bd9565b610117610d24565b610140610d33565b6101d3610d57565b60405161012491906145d4565b6101406101ee366004612ee1565b610d6d565b61014061020136600461318b565b610d9e565b610140610214366004613068565b611127565b61018b610227366004612ec3565b6115de565b6001546001600160a01b031681565b60008054600160a01b900460ff161561026f5760405162461bcd60e51b8152600401610266906143a6565b60405180910390fd5b610277612cec565b6102808561160e565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156102d757600080fd5b505afa1580156102eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061030f919081019061314f565b63ffffffff169050806001600160401b0316836060015163ffffffff16116103495760405162461bcd60e51b8152600401610266906143d6565b6101408301516bffffffffffffffffffffffff191661037a5760405162461bcd60e51b8152600401610266906142e6565b60606103f9836001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f49190810190612f6e565b61172d565b8051909150610414898884600360001986015b0485036117e0565b6104305760405162461bcd60e51b815260040161026690614376565b6000606061043d8a6119e3565b91509150816001600160601b0319168761014001516001600160601b031916146104795760405162461bcd60e51b8152600401610266906143c6565b6060870151604051638a8bd17f60e01b81526001600160a01b03881691638a8bd17f916104a991906004016145a6565b602060405180830381600087803b1580156104c357600080fd5b505af11580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104fb9190810190612f32565b6105175760405162461bcd60e51b815260040161026690614476565b856001600160a01b03166341973cd961052f83611a5f565b6040518263ffffffff1660e01b815260040161054b9190614201565b602060405180830381600087803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061059d9190810190612f32565b6105b95760405162461bcd60e51b8152600401610266906143f6565b7fe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b69087606001518c6040516105ee9291906145b4565b60405180910390a160019750505050505050505b9392505050565b60008054600160a01b900460ff16156106345760405162461bcd60e51b8152600401610266906143a6565b60015460408051631a75201d60e21b815290516001600160a01b039092169182916369d48074916004808301926000929190829003018186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b69190810190612f6e565b51156106d45760405162461bcd60e51b8152600401610266906144f6565b6106dc612cec565b6106e58561160e565b9050600060606106f4866119e3565b91509150816001600160601b0319168361014001516001600160601b031916146107305760405162461bcd60e51b8152600401610266906143c6565b6060830151604051638a8bd17f60e01b81526001600160a01b03861691638a8bd17f9161076091906004016145a6565b602060405180830381600087803b15801561077a57600080fd5b505af115801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b29190810190612f32565b6107ce5760405162461bcd60e51b815260040161026690614346565b836001600160a01b03166341973cd96107e683611a5f565b6040518263ffffffff1660e01b81526004016108029190614201565b602060405180830381600087803b15801561081c57600080fd5b505af1158015610830573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108549190810190612f32565b6108705760405162461bcd60e51b815260040161026690614516565b7ff01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde8360600151886040516108a59291906145b4565b60405180910390a160019450505050505b92915050565b60006108c6610d33565b6108e25760405162461bcd60e51b815260040161026690614416565b6108ea610a11565b156108f7576108f7611ace565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561093d57600080fd5b505afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109759190810190612f32565b15610a0957806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109ed9190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142f6565b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff16610a4b5760405162461bcd60e51b8152600401610266906142a6565b610a53610d33565b610a6f5760405162461bcd60e51b815260040161026690614416565b506001805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021781555b919050565b610aa3610d33565b610abf5760405162461bcd60e51b815260040161026690614416565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60026020526000908152604090205460ff1681565b60008054600160a01b900460ff16610b485760405162461bcd60e51b8152600401610266906142a6565b610b50610d33565b610b6c5760405162461bcd60e51b815260040161026690614416565b60015460405163f2fde38b60e01b81526001600160a01b0390911690819063f2fde38b90610b9e908690600401614194565b600060405180830381600087803b158015610bb857600080fd5b505af1158015610bcc573d6000803e3d6000fd5b5060019695505050505050565b6000610be3610d33565b610bff5760405162461bcd60e51b815260040161026690614416565b610c07610a11565b610c1357610c13611b44565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b158015610c5957600080fd5b505afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c919190810190612f32565b610a0957806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610cd057600080fd5b505af1158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d089190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142c6565b6000546001600160a01b031690565b600080546001600160a01b0316610d48611ba6565b6001600160a01b031614905090565b600154600160a01b90046001600160401b031681565b6003602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b60008054600160a01b900460ff1615610dc95760405162461bcd60e51b8152600401610266906143a6565b3360009081526002602052604090205460ff16610df85760405162461bcd60e51b815260040161026690614396565b60015460408051600162c2db5f60e01b0319815290516001600160a01b0390921691600091839163ff3d24a191600480820192602092909190829003018186803b158015610e4557600080fd5b505afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e7d9190810190612f50565b90506060610e8a82611baa565b90506060610e9782611bee565b610f2d60023085604051602001610eaf929190614058565b60408051601f1981840301815290829052610ec9916140f8565b602060405180830381855afa158015610ee6573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250610f099190810190612f50565b604051602001610f1991906140c7565b604051602081830303815290604052611bee565b610f3e610f3933611c25565b611bee565b610f478f611c40565b610f868f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b610fc58e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b6110048d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b60405160200161101a979695949392919061411c565b60408051601f19818403018152908290528051602082012063130f33d960e21b83529092506001600160a01b03861691634c3ccf649161105c916004016141be565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110ae9190810190612f32565b6110ca5760405162461bcd60e51b815260040161026690614566565b326001600160a01b03167f6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be8848383338f8f8f8760405161110d96959493929190614212565b60405180910390a25060019b9a5050505050505050505050565b60008054600160a01b900460ff16156111525760405162461bcd60e51b8152600401610266906143a6565b61115a612cec565b6111638661160e565b90506000600160009054906101000a90046001600160a01b0316905060606111bd826001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b90506000826001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156111fa57600080fd5b505afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611232919081019061314f565b63ffffffff16905060008251905081856060015163ffffffff1610611284576112638a88856003600019860161040c565b61127f5760405162461bcd60e51b815260040161026690614596565b61130a565b6112968888856003600019860161040c565b6112b25760405162461bcd60e51b815260040161026690614496565b6112ba612cec565b6112c38961160e565b905060606112d68b836101000151611c83565b90506112e181611d82565b6112ea8d611dad565b146113075760405162461bcd60e51b815260040161026690614316565b50505b606061131a8c8760e00151611c83565b9050611324612d47565b61132d82611e6a565b9050856001600160a01b0316630586763c82602001516113508460000151611d82565b6040518363ffffffff1660e01b815260040161136d9291906145e2565b60206040518083038186803b15801561138557600080fd5b505afa158015611399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113bd9190810190612f32565b156113da5760405162461bcd60e51b815260040161026690614556565b856001600160a01b031663e90bfdcf82602001516113fb8460000151611d82565b6040518363ffffffff1660e01b81526004016114189291906145e2565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612f32565b6114865760405162461bcd60e51b815260040161026690614336565b6001546040820151606001516001600160401b03908116600160a01b90920416146114c35760405162461bcd60e51b815260040161026690614356565b60006114d6826040015160800151611f46565b6001600160a01b038116600090815260036020526040908190208482015160a0015191519293509161150891906140f8565b9081526040519081900360200190205460ff166115375760405162461bcd60e51b815260040161026690614386565b61156081836040015160a00151846040015160c001518560400151604001518660200151611f71565b61157c5760405162461bcd60e51b8152600401610266906142b6565b602082015160408084015160808101518551915192517f8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae946115c0949093916145fd565b60405180910390a16001985050505050505050505b95945050505050565b6115e6610d33565b6116025760405162461bcd60e51b815260040161026690614416565b61160b816120e2565b50565b611616612cec565b61161e612cec565b600061162a8482612163565b63ffffffff9091168352905061164084826121ec565b6001600160401b039091166020840152905061165c8482612273565b60a084019190915290506116708482612273565b60c084019190915290506116848482612273565b60e084019190915290506116988482612273565b61010084019190915290506116ad8482612163565b63ffffffff909116604084015290506116c68482612163565b63ffffffff909116606084015290506116df84826121ec565b6001600160401b03909116608084015290506116fb84826122b8565b6101208401919091529050611710848261236c565b506bffffffffffffffffffffffff19166101408301525092915050565b606060008061173c84826121ec565b80935081925050506060816001600160401b0316604051908082528060200260200182016040528015611779578160200160208202803883390190505b509050606060005b836001600160401b03168110156117d55761179c87866122b8565b955091506117a982611f46565b8382815181106117b557fe5b6001600160a01b0390921660209283029190910190910152600101611781565b509095945050505050565b6000806117ec86611dad565b90506000611805604187516123b590919063ffffffff16565b9050606081604051908082528060200260200182016040528015611833578160200160208202803883390190505b50905060008080805b858110156119c65761185b6118568c6041840260206123f7565b611d82565b93506118726118568c6041840260200160206123f7565b92508a604182026040018151811061188657fe5b602001015160f81c60f81b60f81c601b01915060016002886040516020016118ae91906140c7565b60408051601f19818403018152908290526118c8916140f8565b602060405180830381855afa1580156118e5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506119089190810190612f50565b8386866040516000815260200160405260405161192894939291906141cc565b6020604051602081039080840390855afa15801561194a573d6000803e3d6000fd5b5050506020604051035185828151811061196057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031685828151811061199757fe5b60200260200101516001600160a01b031614156119be5760009750505050505050506119db565b60010161183c565b506119d289858a612477565b96505050505050505b949350505050565b6000606060438351816119f257fe5b0615611a105760405162461bcd60e51b815260040161026690614456565b60006043845181611a1d57fe5b0490506001811015611a415760405162461bcd60e51b8152600401610266906144c6565b611a55816003600019820104830386612518565b9250925050915091565b805160609081611a6e82611c40565b905060005b82811015611ac65781611a9b610f39878481518110611a8e57fe5b6020026020010151611c25565b604051602001611aac929190614104565b60408051601f198184030181529190529150600101611a73565b509392505050565b600054600160a01b900460ff16611af75760405162461bcd60e51b8152600401610266906142a6565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b2d611ba6565b604051611b3a91906141a2565b60405180910390a1565b600054600160a01b900460ff1615611b6e5760405162461bcd60e51b8152600401610266906143a6565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b2d5b3390565b60606001600160ff1b03821115611bd35760405162461bcd60e51b815260040161026690614406565b60405190506020815281602082015260408101604052919050565b8051606090611bfc816126cd565b83604051602001611c0e929190614104565b604051602081830303815290604052915050919050565b604080516014815260609290921b6020830152818101905290565b6040516008808252606091906000601f5b82821015611c735785811a826020860101536001919091019060001901611c51565b5050506028810160405292915050565b6060600081611c9285836122b8565b925090506000611ca182612784565b90506000611cca6021611cbe868a5161279f90919063ffffffff16565b9063ffffffff6123b516565b9050600080805b83811015611d5557611ce38a886127e1565b97509150611cf18a88612273565b975092506001600160f81b03198216611d1557611d0e838661282a565b9450611d4d565b600160f81b6001600160f81b031983161415611d3557611d0e858461282a565b60405162461bcd60e51b815260040161026690614436565b600101611cd1565b50878414611d755760405162461bcd60e51b8152600401610266906143b6565b5092979650505050505050565b60008151602014611da55760405162461bcd60e51b8152600401610266906144b6565b506020015190565b600060028083604051611dc091906140f8565b602060405180830381855afa158015611ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250611e009190810190612f50565b604051602001611e1091906140c7565b60408051601f1981840301815290829052611e2a916140f8565b602060405180830381855afa158015611e47573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506108b69190810190612f50565b611e72612d47565b611e7a612d47565b6000611e8684826122b8565b9083529050611e9584826121ec565b6001600160401b0390911660208401529050611eaf612d6b565b611eb985836122b8565b9082529150611ec885836122b8565b60208301919091529150611edc85836122b8565b60408301919091529150611ef085836121ec565b6001600160401b0390911660608301529150611f0c85836122b8565b60808301919091529150611f2085836122b8565b60a08301919091529150611f3485836122b8565b5060c082015260408301525092915050565b60008151601414611f695760405162461bcd60e51b815260040161026690614306565b506014015190565b6000611f7c866128a1565b611f985760405162461bcd60e51b815260040161026690614466565b60606000876001600160a01b031687604051602001611fb7919061417d565b60405160208183030381529060405280519060200120878787604051602001611fe293929190614272565b60408051601f198184030181529082905261200092916020016140dc565b60408051601f198184030181529082905261201a916140f8565b6000604051808303816000865af19150503d8060008114612057576040519150601f19603f3d011682016040523d82523d6000602084013e61205c565b606091505b50925090506001811515146120835760405162461bcd60e51b8152600401610266906143e6565b81516120a15760405162461bcd60e51b8152600401610266906144a6565b60006120ae83601f6128d8565b5090506001811515146120d35760405162461bcd60e51b8152600401610266906144d6565b50600198975050505050505050565b6001600160a01b0381166121085760405162461bcd60e51b815260040161026690614326565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000808351836004011115801561217c57508260040183105b6121985760405162461bcd60e51b815260040161026690614576565b600060405160046000600182038760208a0101515b838310156121cd5780821a838601536001830192506001820391506121ad565b50505080820160405260200390035192505050600482015b9250929050565b6000808351836008011115801561220557508260080183105b6122215760405162461bcd60e51b815260040161026690614536565b600060405160086000600182038760208a0101515b838310156122565780821a83860153600183019250600182039150612236565b505050808201604052602003900351956008949094019450505050565b6000808351836020011115801561228c57508260200183105b6122a85760405162461bcd60e51b815260040161026690614526565b5050602091810182015192910190565b60606000806122c78585612971565b8651909550909150818501118015906122e1575080840184105b6122fd5760405162461bcd60e51b815260040161026690614586565b60608115801561231857604051915060208201604052612362565b6040519150601f8316801560200281840101848101888315602002848c0101015b81831015612351578051835260209283019201612339565b5050848452601f01601f1916604052505b5095930193505050565b6000808351836014011115801561238557508260140183105b6123a15760405162461bcd60e51b815260040161026690614366565b505081810160200151601482019250929050565b600061060283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ab6565b60608183018451101561240957600080fd5b6060821580156124245760405191506020820160405261246e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561245d578051835260209283019201612445565b5050858452601f01601f1916604052505b50949350505050565b600080805b845181101561250c5760005b86518110156125035786818151811061249d57fe5b60200260200101516001600160a01b03168683815181106124ba57fe5b60200260200101516001600160a01b031614156124fb5782806001019350508681815181106124e557fe5b6020026020010160006001600160a01b03168152505b600101612488565b5060010161247c565b50909111159392505050565b600060608061252686612aed565b9050606086604051908082528060200260200182016040528015612554578160200160208202803883390190505b50905060006060815b898110156125eb57612574886043830260436123f7565b915084612583610f3984612b30565b604051602001612594929190614104565b60405160208183030381529060405294506125b282600360406123f7565b8051906020012092508260001c8482815181106125cb57fe5b6001600160a01b039092166020928302919091019091015260010161255d565b50836125f689612aed565b604051602001612607929190614104565b60405160208183030381529060405293506000600360028660405161262c91906140f8565b602060405180830381855afa158015612649573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525061266c9190810190612f50565b60405160200161267c91906140c7565b60408051601f1981840301815290829052612696916140f8565b602060405180830381855afa1580156126b3573d6000803e3d6000fd5b50506040515160601b9b949a509398505050505050505050565b606060fd826001600160401b031610156126f1576126ea82612be9565b9050610a96565b61ffff826001600160401b0316116127405761271060fd60f81b612c05565b61271983612aed565b60405160200161272a929190614104565b6040516020818303038152906040529050610a96565b63ffffffff826001600160401b03161161276a57612761607f60f91b612c05565b61271983612c13565b61277b6001600160f81b0319612c05565b61271983611c40565b60006002600060f81b83604051602001611e109291906140ab565b600061060283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c56565b600080835183600101111580156127fa57508260010183105b6128165760405162461bcd60e51b815260040161026690614446565b505081810160200151600182019250929050565b60006002600160f81b848460405160200161284793929190614074565b60408051601f1981840301815290829052612861916140f8565b602060405180830381855afa15801561287e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506106029190810190612f50565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906119db5750141592915050565b600080835183600101111580156128f157508260010183105b61290d5760405162461bcd60e51b815260040161026690614506565b838301602001516000600160f81b6001600160f81b03198316141561293457506001612963565b6001600160f81b0319821661294b57506000612963565b60405162461bcd60e51b815260040161026690614426565b956001949094019450505050565b600080600061298085856127e1565b94509050600060fd60f81b6001600160f81b0319831614156129e9576129a68686612c82565b955061ffff16905060fd81108015906129c1575061ffff8111155b6129dd5760405162461bcd60e51b8152600401610266906142d6565b92508391506121e59050565b607f60f91b6001600160f81b031983161415612a4457612a098686612163565b955063ffffffff16905061ffff81118015612a28575063ffffffff8111155b6129dd5760405162461bcd60e51b815260040161026690614486565b6001600160f81b03198083161415612a9057612a6086866121ec565b95506001600160401b0316905063ffffffff81116129dd5760405162461bcd60e51b815260040161026690614486565b5060f881901c60fd81106129dd5760405162461bcd60e51b815260040161026690614486565b60008183612ad75760405162461bcd60e51b81526004016102669190614201565b506000838581612ae357fe5b0495945050505050565b6040516002808252606091906000601f5b82821015612b205785811a826020860101536001919091019060001901612afe565b5050506022810160405292915050565b6060604382511015612b545760405162461bcd60e51b815260040161026690614546565b612b6182600060236123f7565b9050600282604281518110612b7257fe5b016020015160f81c81612b8157fe5b0660ff1660001415612bbb57600260f81b81600281518110612b9f57fe5b60200101906001600160f81b031916908160001a905350610a96565b600360f81b81600281518110612bcd57fe5b60200101906001600160f81b031916908160001a905350919050565b604080516001815260f89290921b602083015260218201905290565b60606108b68260f81c612be9565b6040516004808252606091906000601f5b82821015612c465785811a826020860101536001919091019060001901612c24565b5050506024810160405292915050565b60008184841115612c7a5760405162461bcd60e51b81526004016102669190614201565b505050900390565b60008083518360020111158015612c9b57508260020183105b612cb75760405162461bcd60e51b8152600401610266906144e6565b6000604051846020870101518060011a82538060001a6001830153506002818101604052601d19909101519694019450505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082015261014081019190915290565b6040805160608082018352815260006020820152908101612d66612d6b565b905290565b6040518060e0016040528060608152602001606081526020016060815260200160006001600160401b031681526020016060815260200160608152602001606081525090565b80356108b681614776565b80516108b68161478a565b80516108b681614793565b60008083601f840112612de457600080fd5b5081356001600160401b03811115612dfb57600080fd5b6020830191508360018202830111156121e557600080fd5b600082601f830112612e2457600080fd5b8135612e37612e3282614675565b61464f565b91508082526020830160208301858383011115612e5357600080fd5b612e5e838284614719565b50505092915050565b600082601f830112612e7857600080fd5b8151612e86612e3282614675565b91508082526020830160208301858383011115612ea257600080fd5b612e5e838284614725565b80516108b68161479c565b80356108b6816147a5565b600060208284031215612ed557600080fd5b60006119db8484612db1565b60008060408385031215612ef457600080fd5b6000612f008585612db1565b92505060208301356001600160401b03811115612f1c57600080fd5b612f2885828601612e13565b9150509250929050565b600060208284031215612f4457600080fd5b60006119db8484612dbc565b600060208284031215612f6257600080fd5b60006119db8484612dc7565b600060208284031215612f8057600080fd5b81516001600160401b03811115612f9657600080fd5b6119db84828501612e67565b60008060408385031215612fb557600080fd5b82356001600160401b03811115612fcb57600080fd5b612f0085828601612e13565b600080600060608486031215612fec57600080fd5b83356001600160401b0381111561300257600080fd5b61300e86828701612e13565b93505060208401356001600160401b0381111561302a57600080fd5b61303686828701612e13565b92505060408401356001600160401b0381111561305257600080fd5b61305e86828701612e13565b9150509250925092565b600080600080600060a0868803121561308057600080fd5b85356001600160401b0381111561309657600080fd5b6130a288828901612e13565b95505060208601356001600160401b038111156130be57600080fd5b6130ca88828901612e13565b94505060408601356001600160401b038111156130e657600080fd5b6130f288828901612e13565b93505060608601356001600160401b0381111561310e57600080fd5b61311a88828901612e13565b92505060808601356001600160401b0381111561313657600080fd5b61314288828901612e13565b9150509295509295909350565b60006020828403121561316157600080fd5b60006119db8484612ead565b60006020828403121561317f57600080fd5b60006119db8484612eb8565b60008060008060008060006080888a0312156131a657600080fd5b60006131b28a8a612eb8565b97505060208801356001600160401b038111156131ce57600080fd5b6131da8a828b01612dd2565b965096505060408801356001600160401b038111156131f857600080fd5b6132048a828b01612dd2565b945094505060608801356001600160401b0381111561322257600080fd5b61322e8a828b01612dd2565b925092505092959891949750929550565b613248816146fd565b82525050565b613248816146a9565b613248613263826146a9565b614755565b613248816146b4565b61324861327d826146b9565b6146c6565b613248816146c6565b61324861327d826146c6565b61324861327d826146c9565b60006132af83856146a0565b93506132bc838584614719565b6132c583614766565b9093019392505050565b60006132da8261469c565b6132e481856146a0565b93506132f4818560208601614725565b6132c581614766565b60006133088261469c565b6133128185610a96565b9350613322818560208601614725565b9290920192915050565b60006133396014836146a0565b7314185d5cd8589b194e881b9bdd081c185d5cd95960621b815260200192915050565b6000613369601d836146a0565b7f457865637574652043726f7373436861696e205478206661696c656421000000815260200192915050565b60006133a26027836146a0565b7f70617573652045746843726f7373436861696e4461746120636f6e74726163748152660819985a5b195960ca1b602082015260400192915050565b60006133eb601f836146a0565b7f4e65787455696e7431362c2076616c7565206f7574736964652072616e676500815260200192915050565b60006134246025836146a0565b7f546865206e657874426f6f6b4b6565706572206f662068656164657220697320815264656d70747960d81b602082015260400192915050565b600061346b6029836146a0565b7f756e70617573652045746843726f7373436861696e4461746120636f6e74726181526818dd0819985a5b195960ba1b602082015260400192915050565b60006134b66023836146a0565b7f6279746573206c656e67746820646f6573206e6f74206d61746368206164647281526265737360e81b602082015260400192915050565b60006134fb601b836146a0565b7f766572696679206865616465722070726f6f66206661696c6564210000000000815260200192915050565b60006135346026836146a0565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b600061357c6020836146a0565b7f536176652063726f7373636861696e207478206578697374206661696c656421815260200192915050565b60006135b56043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820737481527f6172742068656967687420746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b60006136206026836146a0565b7f54686973205478206973206e6f742061696d696e672061742074686973206e6581526574776f726b2160d01b602082015260400192915050565b60006136686023836146a0565b7f4e657874427974657332302c206f66667365742065786365656473206d6178698152626d756d60e81b602082015260400192915050565b60006136ad6018836146a0565b7f566572696679207369676e6174757265206661696c6564210000000000000000815260200192915050565b60006136e6601d836146a0565b7f496e76616c696420746f20636f6e7472616374206f72206d6574686f64000000815260200192915050565b600061371f6015836146a0565b74125b9d985b1a5908199c9bdb4818dbdb9d1c9858dd605a1b815260200192915050565b60006137506010836146a0565b6f14185d5cd8589b194e881c185d5cd95960821b815260200192915050565b600061377c6031836146a0565b7f6d65726b6c6550726f76652c2065787065637420726f6f74206973206e6f7420815270195c5d585b081858dd1d585b081c9bdbdd607a1b602082015260400192915050565b60006137cf6013836146a0565b7213995e1d109bdbdad95c9cc81a5b1b1959d85b606a1b815260200192915050565b60006137fe603e836146a0565b7f54686520686569676874206f6620686561646572206973206c6f77657220746881527f616e2063757272656e742065706f636820737461727420686569676874210000602082015260400192915050565b600061385d602b836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481526a1c9858dd0819985a5b195960aa1b602082015260400192915050565b60006138aa603b836146a0565b7f5361766520506f6c7920636861696e20626f6f6b206b6565706572732062797481527f657320746f204461746120636f6e7472616374206661696c6564210000000000602082015260400192915050565b60006139096017836146a0565b7f56616c75652065786365656473207468652072616e6765000000000000000000815260200192915050565b60006139426020836146a0565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061397b6014836146a0565b732732bc3a2137b7b6103b30b63ab29032b93937b960611b815260200192915050565b60006139ab602e836146a0565b7f6d65726b6c6550726f76652c204e6578744279746520666f7220706f7369746981526d1bdb881a5b999bc819985a5b195960921b602082015260400192915050565b60006139fb6020836146a0565b7f4e657874427974652c204f66667365742065786365656473206d6178696d756d815260200192915050565b6000613a34601b836146a0565b7f5f7075624b65794c697374206c656e67746820696c6c6567616c210000000000815260200192915050565b6000613a6d6028836146a0565b7f5468652070617373656420696e2061646472657373206973206e6f74206120638152676f6e74726163742160c01b602082015260400192915050565b6000613ab7602d836146a0565b7f53617665204d43204c617465737448656967687420746f204461746120636f6e81526c7472616374206661696c65642160981b602082015260400192915050565b6000613b066020836146a0565b7f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765815260200192915050565b6000613b3f6038836146a0565b7f56657269667920706f6c7920636861696e2063757272656e742065706f63682081527f686561646572207369676e6174757265206661696c6564210000000000000000602082015260400192915050565b6000613b9e601483610a96565b732862797465732c62797465732c75696e7436342960601b815260140192915050565b6000613bce6027836146a0565b7f4e6f2072657475726e2076616c75652066726f6d20627573696e65737320636f8152666e74726163742160c81b602082015260400192915050565b6000613c176017836146a0565b7f6279746573206c656e677468206973206e6f742033322e000000000000000000815260200192915050565b6000613c506016836146a0565b75746f6f2073686f7274205f7075624b65794c6973742160501b815260200192915050565b6000613c826037836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481527f726163742072657475726e206973206e6f742074727565000000000000000000602082015260400192915050565b6000613ce16022836146a0565b7f4e65787455696e7431362c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613d256038836146a0565b7f45746843726f7373436861696e4461746120636f6e747261637420686173206181527f6c7265616479206265656e20696e697469616c697a6564210000000000000000602082015260400192915050565b6000613d846014836146a0565b7313d9999cd95d08195e18d959591cc81b1a5b5a5d60621b815260200192915050565b6000613db46043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820626f81527f6f6b206b65657065727320746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b6000613e1f6020836146a0565b7f4e657874486173682c206f66667365742065786365656473206d6178696d756d815260200192915050565b6000613e586022836146a0565b7f4e65787455696e7436342c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613e9c6017836146a0565b7f6b6579206c656e67676820697320746f6f2073686f7274000000000000000000815260200192915050565b6000613ed56022836146a0565b7f746865207472616e73616374696f6e20686173206265656e2065786563757465815261642160f01b602082015260400192915050565b6000613f196030836146a0565b7f536176652065746854784861736820627920696e64657820746f20446174612081526f636f6e7472616374206661696c65642160801b602082015260400192915050565b6000613f6b6022836146a0565b7f4e65787455696e7433322c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613faf6024836146a0565b7f4e65787456617242797465732c206f66667365742065786365656473206d6178815263696d756d60e01b602082015260400192915050565b6000613ff5602a836146a0565b7f56657269667920706f6c7920636861696e20686561646572207369676e6174758152697265206661696c65642160b01b602082015260400192915050565b6132488161470e565b613248816146e2565b613248816146eb565b613248816146f7565b60006140648285613257565b6014820191506119db82846132fd565b60006140808286613271565b600182019150614090828561328b565b6020820191506140a0828461328b565b506020019392505050565b60006140b78285613271565b6001820191506119db82846132fd565b60006140d3828461328b565b50602001919050565b60006140e88285613297565b6004820191506119db82846132fd565b600061060282846132fd565b600061411082856132fd565b91506119db82846132fd565b6000614128828a6132fd565b915061413482896132fd565b915061414082886132fd565b915061414c82876132fd565b915061415882866132fd565b915061416482856132fd565b915061417082846132fd565b9998505050505050505050565b600061418982846132fd565b915061060282613b91565b602081016108b6828461324e565b602081016108b6828461323f565b602081016108b68284613268565b602081016108b68284613282565b608081016141da8287613282565b6141e7602083018661404f565b6141f46040830185613282565b6115d56060830184613282565b6020808252810161060281846132cf565b60a0808252810161422381896132cf565b9050614232602083018861323f565b61423f6040830187614046565b81810360608301526142528185876132a3565b9050818103608083015261426681846132cf565b98975050505050505050565b6060808252810161428381866132cf565b9050818103602083015261429781856132cf565b90506119db6040830184614046565b602080825281016108b68161332c565b602080825281016108b68161335c565b602080825281016108b681613395565b602080825281016108b6816133de565b602080825281016108b681613417565b602080825281016108b68161345e565b602080825281016108b6816134a9565b602080825281016108b6816134ee565b602080825281016108b681613527565b602080825281016108b68161356f565b602080825281016108b6816135a8565b602080825281016108b681613613565b602080825281016108b68161365b565b602080825281016108b6816136a0565b602080825281016108b6816136d9565b602080825281016108b681613712565b602080825281016108b681613743565b602080825281016108b68161376f565b602080825281016108b6816137c2565b602080825281016108b6816137f1565b602080825281016108b681613850565b602080825281016108b68161389d565b602080825281016108b6816138fc565b602080825281016108b681613935565b602080825281016108b68161396e565b602080825281016108b68161399e565b602080825281016108b6816139ee565b602080825281016108b681613a27565b602080825281016108b681613a60565b602080825281016108b681613aaa565b602080825281016108b681613af9565b602080825281016108b681613b32565b602080825281016108b681613bc1565b602080825281016108b681613c0a565b602080825281016108b681613c43565b602080825281016108b681613c75565b602080825281016108b681613cd4565b602080825281016108b681613d18565b602080825281016108b681613d77565b602080825281016108b681613da7565b602080825281016108b681613e12565b602080825281016108b681613e4b565b602080825281016108b681613e8f565b602080825281016108b681613ec8565b602080825281016108b681613f0c565b602080825281016108b681613f5e565b602080825281016108b681613fa2565b602080825281016108b681613fe8565b602081016108b6828461403d565b604081016145c28285614034565b81810360208301526119db81846132cf565b602081016108b68284614046565b604081016145f08285614046565b6106026020830184613282565b6080810161460b8287614046565b818103602083015261461d81866132cf565b9050818103604083015261463181856132cf565b9050818103606083015261464581846132cf565b9695505050505050565b6040518181016001600160401b038111828210171561466d57600080fd5b604052919050565b60006001600160401b0382111561468b57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b60006108b6826146d6565b151590565b6001600160f81b03191690565b90565b6001600160e01b03191690565b6001600160a01b031690565b63ffffffff1690565b6001600160401b031690565b60ff1690565b60006108b68260006108b6826146a9565b60006108b6826146e2565b82818337506000910152565b60005b83811015614740578181015183820152602001614728565b8381111561474f576000848401525b50505050565b60006108b68260006108b682614770565b601f01601f191690565b60601b90565b61477f816146a9565b811461160b57600080fd5b61477f816146b4565b61477f816146c6565b61477f816146e2565b61477f816146eb56fea365627a7a72315820e4ae8c3b456b78904d7a7832cae32737903c831f83dc48d753a1333b333f9d776c6578706572696d656e74616cf564736f6c63430005110040" + +// DeployEthCrossChainManager deploys a new Ethereum contract, binding an instance of EthCrossChainManager to it. +func DeployEthCrossChainManager(auth *bind.TransactOpts, backend bind.ContractBackend, _eccd common.Address, _chainId uint64, fromContractWhiteList []common.Address, contractMethodWhiteList [][]byte) (common.Address, *types.Transaction, *EthCrossChainManager, error) { + parsed, err := abi.JSON(strings.NewReader(EthCrossChainManagerABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EthCrossChainManagerBin), backend, _eccd, _chainId, fromContractWhiteList, contractMethodWhiteList) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &EthCrossChainManager{EthCrossChainManagerCaller: EthCrossChainManagerCaller{contract: contract}, EthCrossChainManagerTransactor: EthCrossChainManagerTransactor{contract: contract}, EthCrossChainManagerFilterer: EthCrossChainManagerFilterer{contract: contract}}, nil +} + +// EthCrossChainManager is an auto generated Go binding around an Ethereum contract. +type EthCrossChainManager struct { + EthCrossChainManagerCaller // Read-only binding to the contract + EthCrossChainManagerTransactor // Write-only binding to the contract + EthCrossChainManagerFilterer // Log filterer for contract events +} + +// EthCrossChainManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type EthCrossChainManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// EthCrossChainManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type EthCrossChainManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// EthCrossChainManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type EthCrossChainManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// EthCrossChainManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type EthCrossChainManagerSession struct { + Contract *EthCrossChainManager // 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 +} + +// EthCrossChainManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type EthCrossChainManagerCallerSession struct { + Contract *EthCrossChainManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// EthCrossChainManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type EthCrossChainManagerTransactorSession struct { + Contract *EthCrossChainManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// EthCrossChainManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type EthCrossChainManagerRaw struct { + Contract *EthCrossChainManager // Generic contract binding to access the raw methods on +} + +// EthCrossChainManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type EthCrossChainManagerCallerRaw struct { + Contract *EthCrossChainManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// EthCrossChainManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type EthCrossChainManagerTransactorRaw struct { + Contract *EthCrossChainManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewEthCrossChainManager creates a new instance of EthCrossChainManager, bound to a specific deployed contract. +func NewEthCrossChainManager(address common.Address, backend bind.ContractBackend) (*EthCrossChainManager, error) { + contract, err := bindEthCrossChainManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &EthCrossChainManager{EthCrossChainManagerCaller: EthCrossChainManagerCaller{contract: contract}, EthCrossChainManagerTransactor: EthCrossChainManagerTransactor{contract: contract}, EthCrossChainManagerFilterer: EthCrossChainManagerFilterer{contract: contract}}, nil +} + +// NewEthCrossChainManagerCaller creates a new read-only instance of EthCrossChainManager, bound to a specific deployed contract. +func NewEthCrossChainManagerCaller(address common.Address, caller bind.ContractCaller) (*EthCrossChainManagerCaller, error) { + contract, err := bindEthCrossChainManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &EthCrossChainManagerCaller{contract: contract}, nil +} + +// NewEthCrossChainManagerTransactor creates a new write-only instance of EthCrossChainManager, bound to a specific deployed contract. +func NewEthCrossChainManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*EthCrossChainManagerTransactor, error) { + contract, err := bindEthCrossChainManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &EthCrossChainManagerTransactor{contract: contract}, nil +} + +// NewEthCrossChainManagerFilterer creates a new log filterer instance of EthCrossChainManager, bound to a specific deployed contract. +func NewEthCrossChainManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*EthCrossChainManagerFilterer, error) { + contract, err := bindEthCrossChainManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &EthCrossChainManagerFilterer{contract: contract}, nil +} + +// bindEthCrossChainManager binds a generic wrapper to an already deployed contract. +func bindEthCrossChainManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(EthCrossChainManagerABI)) + 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 (_EthCrossChainManager *EthCrossChainManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _EthCrossChainManager.Contract.EthCrossChainManagerCaller.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 (_EthCrossChainManager *EthCrossChainManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.EthCrossChainManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_EthCrossChainManager *EthCrossChainManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.EthCrossChainManagerTransactor.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 (_EthCrossChainManager *EthCrossChainManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_EthCrossChainManager *EthCrossChainManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.contract.Transact(opts, method, params...) +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_EthCrossChainManager *EthCrossChainManagerCaller) EthCrossChainDataAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "EthCrossChainDataAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_EthCrossChainManager *EthCrossChainManagerSession) EthCrossChainDataAddress() (common.Address, error) { + return _EthCrossChainManager.Contract.EthCrossChainDataAddress(&_EthCrossChainManager.CallOpts) +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) EthCrossChainDataAddress() (common.Address, error) { + return _EthCrossChainManager.Contract.EthCrossChainDataAddress(&_EthCrossChainManager.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerCaller) ChainId(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "chainId") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerSession) ChainId() (uint64, error) { + return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) ChainId() (uint64, error) { + return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) IsOwner(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "isOwner") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) IsOwner() (bool, error) { + return _EthCrossChainManager.Contract.IsOwner(&_EthCrossChainManager.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) IsOwner() (bool, error) { + return _EthCrossChainManager.Contract.IsOwner(&_EthCrossChainManager.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_EthCrossChainManager *EthCrossChainManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerSession) Owner() (common.Address, error) { + return _EthCrossChainManager.Contract.Owner(&_EthCrossChainManager.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) Owner() (common.Address, error) { + return _EthCrossChainManager.Contract.Owner(&_EthCrossChainManager.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerSession) Paused() (bool, error) { + return _EthCrossChainManager.Contract.Paused(&_EthCrossChainManager.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) Paused() (bool, error) { + return _EthCrossChainManager.Contract.Paused(&_EthCrossChainManager.CallOpts) +} + +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListContractMethodMap(opts *bind.CallOpts, arg0 common.Address, arg1 []byte) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListContractMethodMap", arg0, arg1) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) +} + +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListFromContract(opts *bind.CallOpts, arg0 common.Address) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListFromContract", arg0) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) +} + +// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. +// +// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) ChangeBookKeeper(opts *bind.TransactOpts, rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "changeBookKeeper", rawHeader, pubKeyList, sigList) +} + +// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. +// +// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) ChangeBookKeeper(rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.ChangeBookKeeper(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList, sigList) +} + +// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. +// +// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) ChangeBookKeeper(rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.ChangeBookKeeper(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList, sigList) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) CrossChain(opts *bind.TransactOpts, toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "crossChain", toChainId, toContract, method, txData) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) CrossChain(toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.CrossChain(&_EthCrossChainManager.TransactOpts, toChainId, toContract, method, txData) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) CrossChain(toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.CrossChain(&_EthCrossChainManager.TransactOpts, toChainId, toContract, method, txData) +} + +// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. +// +// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) InitGenesisBlock(opts *bind.TransactOpts, rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "initGenesisBlock", rawHeader, pubKeyList) +} + +// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. +// +// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) InitGenesisBlock(rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.InitGenesisBlock(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList) +} + +// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. +// +// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) InitGenesisBlock(rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.InitGenesisBlock(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) Pause() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.Pause(&_EthCrossChainManager.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) Pause() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.Pause(&_EthCrossChainManager.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_EthCrossChainManager *EthCrossChainManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_EthCrossChainManager *EthCrossChainManagerSession) RenounceOwnership() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.RenounceOwnership(&_EthCrossChainManager.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.RenounceOwnership(&_EthCrossChainManager.TransactOpts) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_EthCrossChainManager *EthCrossChainManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_EthCrossChainManager *EthCrossChainManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.TransferOwnership(&_EthCrossChainManager.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.TransferOwnership(&_EthCrossChainManager.TransactOpts, newOwner) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) Unpause() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.Unpause(&_EthCrossChainManager.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) Unpause() (*types.Transaction, error) { + return _EthCrossChainManager.Contract.Unpause(&_EthCrossChainManager.TransactOpts) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) UpgradeToNew(opts *bind.TransactOpts, newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "upgradeToNew", newEthCrossChainManagerAddress) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.UpgradeToNew(&_EthCrossChainManager.TransactOpts, newEthCrossChainManagerAddress) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.UpgradeToNew(&_EthCrossChainManager.TransactOpts, newEthCrossChainManagerAddress) +} + +// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. +// +// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) VerifyHeaderAndExecuteTx(opts *bind.TransactOpts, proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "verifyHeaderAndExecuteTx", proof, rawHeader, headerProof, curRawHeader, headerSig) +} + +// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. +// +// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) VerifyHeaderAndExecuteTx(proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.VerifyHeaderAndExecuteTx(&_EthCrossChainManager.TransactOpts, proof, rawHeader, headerProof, curRawHeader, headerSig) +} + +// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. +// +// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) VerifyHeaderAndExecuteTx(proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.VerifyHeaderAndExecuteTx(&_EthCrossChainManager.TransactOpts, proof, rawHeader, headerProof, curRawHeader, headerSig) +} + +// EthCrossChainManagerChangeBookKeeperEventIterator is returned from FilterChangeBookKeeperEvent and is used to iterate over the raw logs and unpacked data for ChangeBookKeeperEvent events raised by the EthCrossChainManager contract. +type EthCrossChainManagerChangeBookKeeperEventIterator struct { + Event *EthCrossChainManagerChangeBookKeeperEvent // 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 *EthCrossChainManagerChangeBookKeeperEventIterator) 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(EthCrossChainManagerChangeBookKeeperEvent) + 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(EthCrossChainManagerChangeBookKeeperEvent) + 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 *EthCrossChainManagerChangeBookKeeperEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerChangeBookKeeperEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerChangeBookKeeperEvent represents a ChangeBookKeeperEvent event raised by the EthCrossChainManager contract. +type EthCrossChainManagerChangeBookKeeperEvent struct { + Height *big.Int + RawHeader []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterChangeBookKeeperEvent is a free log retrieval operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. +// +// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterChangeBookKeeperEvent(opts *bind.FilterOpts) (*EthCrossChainManagerChangeBookKeeperEventIterator, error) { + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "ChangeBookKeeperEvent") + if err != nil { + return nil, err + } + return &EthCrossChainManagerChangeBookKeeperEventIterator{contract: _EthCrossChainManager.contract, event: "ChangeBookKeeperEvent", logs: logs, sub: sub}, nil +} + +// WatchChangeBookKeeperEvent is a free log subscription operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. +// +// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchChangeBookKeeperEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerChangeBookKeeperEvent) (event.Subscription, error) { + + logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "ChangeBookKeeperEvent") + 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(EthCrossChainManagerChangeBookKeeperEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "ChangeBookKeeperEvent", 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 +} + +// ParseChangeBookKeeperEvent is a log parse operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. +// +// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseChangeBookKeeperEvent(log types.Log) (*EthCrossChainManagerChangeBookKeeperEvent, error) { + event := new(EthCrossChainManagerChangeBookKeeperEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "ChangeBookKeeperEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerCrossChainEventIterator is returned from FilterCrossChainEvent and is used to iterate over the raw logs and unpacked data for CrossChainEvent events raised by the EthCrossChainManager contract. +type EthCrossChainManagerCrossChainEventIterator struct { + Event *EthCrossChainManagerCrossChainEvent // 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 *EthCrossChainManagerCrossChainEventIterator) 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(EthCrossChainManagerCrossChainEvent) + 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(EthCrossChainManagerCrossChainEvent) + 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 *EthCrossChainManagerCrossChainEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerCrossChainEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerCrossChainEvent represents a CrossChainEvent event raised by the EthCrossChainManager contract. +type EthCrossChainManagerCrossChainEvent struct { + Sender common.Address + TxId []byte + ProxyOrAssetContract common.Address + ToChainId uint64 + ToContract []byte + Rawdata []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCrossChainEvent is a free log retrieval operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. +// +// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterCrossChainEvent(opts *bind.FilterOpts, sender []common.Address) (*EthCrossChainManagerCrossChainEventIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "CrossChainEvent", senderRule) + if err != nil { + return nil, err + } + return &EthCrossChainManagerCrossChainEventIterator{contract: _EthCrossChainManager.contract, event: "CrossChainEvent", logs: logs, sub: sub}, nil +} + +// WatchCrossChainEvent is a free log subscription operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. +// +// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchCrossChainEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerCrossChainEvent, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "CrossChainEvent", senderRule) + 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(EthCrossChainManagerCrossChainEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "CrossChainEvent", 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 +} + +// ParseCrossChainEvent is a log parse operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. +// +// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseCrossChainEvent(log types.Log) (*EthCrossChainManagerCrossChainEvent, error) { + event := new(EthCrossChainManagerCrossChainEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "CrossChainEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerInitGenesisBlockEventIterator is returned from FilterInitGenesisBlockEvent and is used to iterate over the raw logs and unpacked data for InitGenesisBlockEvent events raised by the EthCrossChainManager contract. +type EthCrossChainManagerInitGenesisBlockEventIterator struct { + Event *EthCrossChainManagerInitGenesisBlockEvent // 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 *EthCrossChainManagerInitGenesisBlockEventIterator) 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(EthCrossChainManagerInitGenesisBlockEvent) + 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(EthCrossChainManagerInitGenesisBlockEvent) + 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 *EthCrossChainManagerInitGenesisBlockEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerInitGenesisBlockEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerInitGenesisBlockEvent represents a InitGenesisBlockEvent event raised by the EthCrossChainManager contract. +type EthCrossChainManagerInitGenesisBlockEvent struct { + Height *big.Int + RawHeader []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitGenesisBlockEvent is a free log retrieval operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. +// +// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterInitGenesisBlockEvent(opts *bind.FilterOpts) (*EthCrossChainManagerInitGenesisBlockEventIterator, error) { + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "InitGenesisBlockEvent") + if err != nil { + return nil, err + } + return &EthCrossChainManagerInitGenesisBlockEventIterator{contract: _EthCrossChainManager.contract, event: "InitGenesisBlockEvent", logs: logs, sub: sub}, nil +} + +// WatchInitGenesisBlockEvent is a free log subscription operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. +// +// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchInitGenesisBlockEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerInitGenesisBlockEvent) (event.Subscription, error) { + + logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "InitGenesisBlockEvent") + 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(EthCrossChainManagerInitGenesisBlockEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "InitGenesisBlockEvent", 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 +} + +// ParseInitGenesisBlockEvent is a log parse operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. +// +// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseInitGenesisBlockEvent(log types.Log) (*EthCrossChainManagerInitGenesisBlockEvent, error) { + event := new(EthCrossChainManagerInitGenesisBlockEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "InitGenesisBlockEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the EthCrossChainManager contract. +type EthCrossChainManagerOwnershipTransferredIterator struct { + Event *EthCrossChainManagerOwnershipTransferred // 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 *EthCrossChainManagerOwnershipTransferredIterator) 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(EthCrossChainManagerOwnershipTransferred) + 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(EthCrossChainManagerOwnershipTransferred) + 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 *EthCrossChainManagerOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerOwnershipTransferred represents a OwnershipTransferred event raised by the EthCrossChainManager contract. +type EthCrossChainManagerOwnershipTransferred 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*EthCrossChainManagerOwnershipTransferredIterator, 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 := _EthCrossChainManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &EthCrossChainManagerOwnershipTransferredIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerOwnershipTransferred, 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 := _EthCrossChainManager.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(EthCrossChainManagerOwnershipTransferred) + if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseOwnershipTransferred(log types.Log) (*EthCrossChainManagerOwnershipTransferred, error) { + event := new(EthCrossChainManagerOwnershipTransferred) + if err := _EthCrossChainManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the EthCrossChainManager contract. +type EthCrossChainManagerPausedIterator struct { + Event *EthCrossChainManagerPaused // 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 *EthCrossChainManagerPausedIterator) 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(EthCrossChainManagerPaused) + 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(EthCrossChainManagerPaused) + 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 *EthCrossChainManagerPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerPaused represents a Paused event raised by the EthCrossChainManager contract. +type EthCrossChainManagerPaused 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterPaused(opts *bind.FilterOpts) (*EthCrossChainManagerPausedIterator, error) { + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &EthCrossChainManagerPausedIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerPaused) (event.Subscription, error) { + + logs, sub, err := _EthCrossChainManager.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(EthCrossChainManagerPaused) + if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParsePaused(log types.Log) (*EthCrossChainManagerPaused, error) { + event := new(EthCrossChainManagerPaused) + if err := _EthCrossChainManager.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the EthCrossChainManager contract. +type EthCrossChainManagerUnpausedIterator struct { + Event *EthCrossChainManagerUnpaused // 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 *EthCrossChainManagerUnpausedIterator) 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(EthCrossChainManagerUnpaused) + 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(EthCrossChainManagerUnpaused) + 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 *EthCrossChainManagerUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerUnpaused represents a Unpaused event raised by the EthCrossChainManager contract. +type EthCrossChainManagerUnpaused 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterUnpaused(opts *bind.FilterOpts) (*EthCrossChainManagerUnpausedIterator, error) { + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &EthCrossChainManagerUnpausedIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerUnpaused) (event.Subscription, error) { + + logs, sub, err := _EthCrossChainManager.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(EthCrossChainManagerUnpaused) + if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseUnpaused(log types.Log) (*EthCrossChainManagerUnpaused, error) { + event := new(EthCrossChainManagerUnpaused) + if err := _EthCrossChainManager.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator is returned from FilterVerifyHeaderAndExecuteTxEvent and is used to iterate over the raw logs and unpacked data for VerifyHeaderAndExecuteTxEvent events raised by the EthCrossChainManager contract. +type EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator struct { + Event *EthCrossChainManagerVerifyHeaderAndExecuteTxEvent // 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 *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) + 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) + 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 *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// EthCrossChainManagerVerifyHeaderAndExecuteTxEvent represents a VerifyHeaderAndExecuteTxEvent event raised by the EthCrossChainManager contract. +type EthCrossChainManagerVerifyHeaderAndExecuteTxEvent struct { + FromChainID uint64 + ToContract []byte + CrossChainTxHash []byte + FromChainTxHash []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterVerifyHeaderAndExecuteTxEvent is a free log retrieval operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. +// +// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterVerifyHeaderAndExecuteTxEvent(opts *bind.FilterOpts) (*EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator, error) { + + logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "VerifyHeaderAndExecuteTxEvent") + if err != nil { + return nil, err + } + return &EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator{contract: _EthCrossChainManager.contract, event: "VerifyHeaderAndExecuteTxEvent", logs: logs, sub: sub}, nil +} + +// WatchVerifyHeaderAndExecuteTxEvent is a free log subscription operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. +// +// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchVerifyHeaderAndExecuteTxEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) (event.Subscription, error) { + + logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "VerifyHeaderAndExecuteTxEvent") + 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "VerifyHeaderAndExecuteTxEvent", 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 +} + +// ParseVerifyHeaderAndExecuteTxEvent is a log parse operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. +// +// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) +func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseVerifyHeaderAndExecuteTxEvent(log types.Log) (*EthCrossChainManagerVerifyHeaderAndExecuteTxEvent, error) { + event := new(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) + if err := _EthCrossChainManager.contract.UnpackLog(event, "VerifyHeaderAndExecuteTxEvent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IEthCrossChainDataABI is the input ABI used to generate the binding from. +const IEthCrossChainDataABI = "[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"checkIfFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethTxHashIndex\",\"type\":\"uint256\"}],\"name\":\"getEthTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEthTxHashIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"}],\"name\":\"getExtraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"markFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"curEpochPkBytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"curEpochStartHeight\",\"type\":\"uint32\"}],\"name\":\"putCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethTxHash\",\"type\":\"bytes32\"}],\"name\":\"putEthTxHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"putExtraData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// IEthCrossChainDataFuncSigs maps the 4-byte function signature to its string representation. +var IEthCrossChainDataFuncSigs = map[string]string{ + "0586763c": "checkIfFromChainTxExist(uint64,bytes32)", + "69d48074": "getCurEpochConPubKeyBytes()", + "5ac40790": "getCurEpochStartHeight()", + "29927875": "getEthTxHash(uint256)", + "ff3d24a1": "getEthTxHashIndex()", + "40602bb5": "getExtraData(bytes32,bytes32)", + "e90bfdcf": "markFromChainTxExist(uint64,bytes32)", + "8456cb59": "pause()", + "5c975abb": "paused()", + "41973cd9": "putCurEpochConPubKeyBytes(bytes)", + "8a8bd17f": "putCurEpochStartHeight(uint32)", + "4c3ccf64": "putEthTxHash(bytes32)", + "1afe374e": "putExtraData(bytes32,bytes32,bytes)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", +} + +// IEthCrossChainData is an auto generated Go binding around an Ethereum contract. +type IEthCrossChainData struct { + IEthCrossChainDataCaller // Read-only binding to the contract + IEthCrossChainDataTransactor // Write-only binding to the contract + IEthCrossChainDataFilterer // Log filterer for contract events +} + +// IEthCrossChainDataCaller is an auto generated read-only Go binding around an Ethereum contract. +type IEthCrossChainDataCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainDataTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IEthCrossChainDataTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainDataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IEthCrossChainDataFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainDataSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IEthCrossChainDataSession struct { + Contract *IEthCrossChainData // 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 +} + +// IEthCrossChainDataCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IEthCrossChainDataCallerSession struct { + Contract *IEthCrossChainDataCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IEthCrossChainDataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IEthCrossChainDataTransactorSession struct { + Contract *IEthCrossChainDataTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IEthCrossChainDataRaw is an auto generated low-level Go binding around an Ethereum contract. +type IEthCrossChainDataRaw struct { + Contract *IEthCrossChainData // Generic contract binding to access the raw methods on +} + +// IEthCrossChainDataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IEthCrossChainDataCallerRaw struct { + Contract *IEthCrossChainDataCaller // Generic read-only contract binding to access the raw methods on +} + +// IEthCrossChainDataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IEthCrossChainDataTransactorRaw struct { + Contract *IEthCrossChainDataTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIEthCrossChainData creates a new instance of IEthCrossChainData, bound to a specific deployed contract. +func NewIEthCrossChainData(address common.Address, backend bind.ContractBackend) (*IEthCrossChainData, error) { + contract, err := bindIEthCrossChainData(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IEthCrossChainData{IEthCrossChainDataCaller: IEthCrossChainDataCaller{contract: contract}, IEthCrossChainDataTransactor: IEthCrossChainDataTransactor{contract: contract}, IEthCrossChainDataFilterer: IEthCrossChainDataFilterer{contract: contract}}, nil +} + +// NewIEthCrossChainDataCaller creates a new read-only instance of IEthCrossChainData, bound to a specific deployed contract. +func NewIEthCrossChainDataCaller(address common.Address, caller bind.ContractCaller) (*IEthCrossChainDataCaller, error) { + contract, err := bindIEthCrossChainData(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IEthCrossChainDataCaller{contract: contract}, nil +} + +// NewIEthCrossChainDataTransactor creates a new write-only instance of IEthCrossChainData, bound to a specific deployed contract. +func NewIEthCrossChainDataTransactor(address common.Address, transactor bind.ContractTransactor) (*IEthCrossChainDataTransactor, error) { + contract, err := bindIEthCrossChainData(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IEthCrossChainDataTransactor{contract: contract}, nil +} + +// NewIEthCrossChainDataFilterer creates a new log filterer instance of IEthCrossChainData, bound to a specific deployed contract. +func NewIEthCrossChainDataFilterer(address common.Address, filterer bind.ContractFilterer) (*IEthCrossChainDataFilterer, error) { + contract, err := bindIEthCrossChainData(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IEthCrossChainDataFilterer{contract: contract}, nil +} + +// bindIEthCrossChainData binds a generic wrapper to an already deployed contract. +func bindIEthCrossChainData(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(IEthCrossChainDataABI)) + 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 (_IEthCrossChainData *IEthCrossChainDataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IEthCrossChainData.Contract.IEthCrossChainDataCaller.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 (_IEthCrossChainData *IEthCrossChainDataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.IEthCrossChainDataTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IEthCrossChainData *IEthCrossChainDataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.IEthCrossChainDataTransactor.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 (_IEthCrossChainData *IEthCrossChainDataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IEthCrossChainData.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 (_IEthCrossChainData *IEthCrossChainDataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IEthCrossChainData *IEthCrossChainDataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.contract.Transact(opts, method, params...) +} + +// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. +// +// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataCaller) CheckIfFromChainTxExist(opts *bind.CallOpts, fromChainId uint64, fromChainTx [32]byte) (bool, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "checkIfFromChainTxExist", fromChainId, fromChainTx) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. +// +// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) CheckIfFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (bool, error) { + return _IEthCrossChainData.Contract.CheckIfFromChainTxExist(&_IEthCrossChainData.CallOpts, fromChainId, fromChainTx) +} + +// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. +// +// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) CheckIfFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (bool, error) { + return _IEthCrossChainData.Contract.CheckIfFromChainTxExist(&_IEthCrossChainData.CallOpts, fromChainId, fromChainTx) +} + +// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. +// +// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataCaller) GetCurEpochConPubKeyBytes(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "getCurEpochConPubKeyBytes") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. +// +// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataSession) GetCurEpochConPubKeyBytes() ([]byte, error) { + return _IEthCrossChainData.Contract.GetCurEpochConPubKeyBytes(&_IEthCrossChainData.CallOpts) +} + +// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. +// +// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetCurEpochConPubKeyBytes() ([]byte, error) { + return _IEthCrossChainData.Contract.GetCurEpochConPubKeyBytes(&_IEthCrossChainData.CallOpts) +} + +// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. +// +// Solidity: function getCurEpochStartHeight() view returns(uint32) +func (_IEthCrossChainData *IEthCrossChainDataCaller) GetCurEpochStartHeight(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "getCurEpochStartHeight") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. +// +// Solidity: function getCurEpochStartHeight() view returns(uint32) +func (_IEthCrossChainData *IEthCrossChainDataSession) GetCurEpochStartHeight() (uint32, error) { + return _IEthCrossChainData.Contract.GetCurEpochStartHeight(&_IEthCrossChainData.CallOpts) +} + +// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. +// +// Solidity: function getCurEpochStartHeight() view returns(uint32) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetCurEpochStartHeight() (uint32, error) { + return _IEthCrossChainData.Contract.GetCurEpochStartHeight(&_IEthCrossChainData.CallOpts) +} + +// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. +// +// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) +func (_IEthCrossChainData *IEthCrossChainDataCaller) GetEthTxHash(opts *bind.CallOpts, ethTxHashIndex *big.Int) ([32]byte, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "getEthTxHash", ethTxHashIndex) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. +// +// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) +func (_IEthCrossChainData *IEthCrossChainDataSession) GetEthTxHash(ethTxHashIndex *big.Int) ([32]byte, error) { + return _IEthCrossChainData.Contract.GetEthTxHash(&_IEthCrossChainData.CallOpts, ethTxHashIndex) +} + +// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. +// +// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetEthTxHash(ethTxHashIndex *big.Int) ([32]byte, error) { + return _IEthCrossChainData.Contract.GetEthTxHash(&_IEthCrossChainData.CallOpts, ethTxHashIndex) +} + +// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. +// +// Solidity: function getEthTxHashIndex() view returns(uint256) +func (_IEthCrossChainData *IEthCrossChainDataCaller) GetEthTxHashIndex(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "getEthTxHashIndex") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. +// +// Solidity: function getEthTxHashIndex() view returns(uint256) +func (_IEthCrossChainData *IEthCrossChainDataSession) GetEthTxHashIndex() (*big.Int, error) { + return _IEthCrossChainData.Contract.GetEthTxHashIndex(&_IEthCrossChainData.CallOpts) +} + +// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. +// +// Solidity: function getEthTxHashIndex() view returns(uint256) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetEthTxHashIndex() (*big.Int, error) { + return _IEthCrossChainData.Contract.GetEthTxHashIndex(&_IEthCrossChainData.CallOpts) +} + +// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. +// +// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataCaller) GetExtraData(opts *bind.CallOpts, key1 [32]byte, key2 [32]byte) ([]byte, error) { + var out []interface{} + err := _IEthCrossChainData.contract.Call(opts, &out, "getExtraData", key1, key2) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. +// +// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataSession) GetExtraData(key1 [32]byte, key2 [32]byte) ([]byte, error) { + return _IEthCrossChainData.Contract.GetExtraData(&_IEthCrossChainData.CallOpts, key1, key2) +} + +// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. +// +// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetExtraData(key1 [32]byte, key2 [32]byte) ([]byte, error) { + return _IEthCrossChainData.Contract.GetExtraData(&_IEthCrossChainData.CallOpts, key1, key2) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IEthCrossChainData.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 (_IEthCrossChainData *IEthCrossChainDataSession) Paused() (bool, error) { + return _IEthCrossChainData.Contract.Paused(&_IEthCrossChainData.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataCallerSession) Paused() (bool, error) { + return _IEthCrossChainData.Contract.Paused(&_IEthCrossChainData.CallOpts) +} + +// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. +// +// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) MarkFromChainTxExist(opts *bind.TransactOpts, fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "markFromChainTxExist", fromChainId, fromChainTx) +} + +// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. +// +// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) MarkFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.MarkFromChainTxExist(&_IEthCrossChainData.TransactOpts, fromChainId, fromChainTx) +} + +// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. +// +// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) MarkFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.MarkFromChainTxExist(&_IEthCrossChainData.TransactOpts, fromChainId, fromChainTx) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) Pause() (*types.Transaction, error) { + return _IEthCrossChainData.Contract.Pause(&_IEthCrossChainData.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) Pause() (*types.Transaction, error) { + return _IEthCrossChainData.Contract.Pause(&_IEthCrossChainData.TransactOpts) +} + +// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. +// +// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutCurEpochConPubKeyBytes(opts *bind.TransactOpts, curEpochPkBytes []byte) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "putCurEpochConPubKeyBytes", curEpochPkBytes) +} + +// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. +// +// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) PutCurEpochConPubKeyBytes(curEpochPkBytes []byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutCurEpochConPubKeyBytes(&_IEthCrossChainData.TransactOpts, curEpochPkBytes) +} + +// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. +// +// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutCurEpochConPubKeyBytes(curEpochPkBytes []byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutCurEpochConPubKeyBytes(&_IEthCrossChainData.TransactOpts, curEpochPkBytes) +} + +// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. +// +// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutCurEpochStartHeight(opts *bind.TransactOpts, curEpochStartHeight uint32) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "putCurEpochStartHeight", curEpochStartHeight) +} + +// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. +// +// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) PutCurEpochStartHeight(curEpochStartHeight uint32) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutCurEpochStartHeight(&_IEthCrossChainData.TransactOpts, curEpochStartHeight) +} + +// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. +// +// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutCurEpochStartHeight(curEpochStartHeight uint32) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutCurEpochStartHeight(&_IEthCrossChainData.TransactOpts, curEpochStartHeight) +} + +// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. +// +// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutEthTxHash(opts *bind.TransactOpts, ethTxHash [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "putEthTxHash", ethTxHash) +} + +// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. +// +// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) PutEthTxHash(ethTxHash [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutEthTxHash(&_IEthCrossChainData.TransactOpts, ethTxHash) +} + +// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. +// +// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutEthTxHash(ethTxHash [32]byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutEthTxHash(&_IEthCrossChainData.TransactOpts, ethTxHash) +} + +// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. +// +// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutExtraData(opts *bind.TransactOpts, key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "putExtraData", key1, key2, value) +} + +// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. +// +// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) PutExtraData(key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutExtraData(&_IEthCrossChainData.TransactOpts, key1, key2, value) +} + +// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. +// +// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutExtraData(key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.PutExtraData(&_IEthCrossChainData.TransactOpts, key1, key2, value) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IEthCrossChainData *IEthCrossChainDataTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IEthCrossChainData *IEthCrossChainDataSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.TransferOwnership(&_IEthCrossChainData.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _IEthCrossChainData.Contract.TransferOwnership(&_IEthCrossChainData.TransactOpts, newOwner) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainData.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataSession) Unpause() (*types.Transaction, error) { + return _IEthCrossChainData.Contract.Unpause(&_IEthCrossChainData.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) Unpause() (*types.Transaction, error) { + return _IEthCrossChainData.Contract.Unpause(&_IEthCrossChainData.TransactOpts) +} + +// IEthCrossChainManagerABI is the input ABI used to generate the binding from. +const IEthCrossChainManagerABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// IEthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. +var IEthCrossChainManagerFuncSigs = map[string]string{ + "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", +} + +// IEthCrossChainManager is an auto generated Go binding around an Ethereum contract. +type IEthCrossChainManager struct { + IEthCrossChainManagerCaller // Read-only binding to the contract + IEthCrossChainManagerTransactor // Write-only binding to the contract + IEthCrossChainManagerFilterer // Log filterer for contract events +} + +// IEthCrossChainManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type IEthCrossChainManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IEthCrossChainManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IEthCrossChainManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IEthCrossChainManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IEthCrossChainManagerSession struct { + Contract *IEthCrossChainManager // 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 +} + +// IEthCrossChainManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IEthCrossChainManagerCallerSession struct { + Contract *IEthCrossChainManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IEthCrossChainManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IEthCrossChainManagerTransactorSession struct { + Contract *IEthCrossChainManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IEthCrossChainManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type IEthCrossChainManagerRaw struct { + Contract *IEthCrossChainManager // Generic contract binding to access the raw methods on +} + +// IEthCrossChainManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IEthCrossChainManagerCallerRaw struct { + Contract *IEthCrossChainManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// IEthCrossChainManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IEthCrossChainManagerTransactorRaw struct { + Contract *IEthCrossChainManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIEthCrossChainManager creates a new instance of IEthCrossChainManager, bound to a specific deployed contract. +func NewIEthCrossChainManager(address common.Address, backend bind.ContractBackend) (*IEthCrossChainManager, error) { + contract, err := bindIEthCrossChainManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IEthCrossChainManager{IEthCrossChainManagerCaller: IEthCrossChainManagerCaller{contract: contract}, IEthCrossChainManagerTransactor: IEthCrossChainManagerTransactor{contract: contract}, IEthCrossChainManagerFilterer: IEthCrossChainManagerFilterer{contract: contract}}, nil +} + +// NewIEthCrossChainManagerCaller creates a new read-only instance of IEthCrossChainManager, bound to a specific deployed contract. +func NewIEthCrossChainManagerCaller(address common.Address, caller bind.ContractCaller) (*IEthCrossChainManagerCaller, error) { + contract, err := bindIEthCrossChainManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IEthCrossChainManagerCaller{contract: contract}, nil +} + +// NewIEthCrossChainManagerTransactor creates a new write-only instance of IEthCrossChainManager, bound to a specific deployed contract. +func NewIEthCrossChainManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*IEthCrossChainManagerTransactor, error) { + contract, err := bindIEthCrossChainManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IEthCrossChainManagerTransactor{contract: contract}, nil +} + +// NewIEthCrossChainManagerFilterer creates a new log filterer instance of IEthCrossChainManager, bound to a specific deployed contract. +func NewIEthCrossChainManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*IEthCrossChainManagerFilterer, error) { + contract, err := bindIEthCrossChainManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IEthCrossChainManagerFilterer{contract: contract}, nil +} + +// bindIEthCrossChainManager binds a generic wrapper to an already deployed contract. +func bindIEthCrossChainManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(IEthCrossChainManagerABI)) + 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 (_IEthCrossChainManager *IEthCrossChainManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IEthCrossChainManager.Contract.IEthCrossChainManagerCaller.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 (_IEthCrossChainManager *IEthCrossChainManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.IEthCrossChainManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IEthCrossChainManager *IEthCrossChainManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.IEthCrossChainManagerTransactor.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 (_IEthCrossChainManager *IEthCrossChainManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IEthCrossChainManager.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 (_IEthCrossChainManager *IEthCrossChainManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IEthCrossChainManager *IEthCrossChainManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.contract.Transact(opts, method, params...) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) +func (_IEthCrossChainManager *IEthCrossChainManagerTransactor) CrossChain(opts *bind.TransactOpts, _toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { + return _IEthCrossChainManager.contract.Transact(opts, "crossChain", _toChainId, _toContract, _method, _txData) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) +func (_IEthCrossChainManager *IEthCrossChainManagerSession) CrossChain(_toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.CrossChain(&_IEthCrossChainManager.TransactOpts, _toChainId, _toContract, _method, _txData) +} + +// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. +// +// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) +func (_IEthCrossChainManager *IEthCrossChainManagerTransactorSession) CrossChain(_toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { + return _IEthCrossChainManager.Contract.CrossChain(&_IEthCrossChainManager.TransactOpts, _toChainId, _toContract, _method, _txData) +} + +// IUpgradableECCMABI is the input ABI used to generate the binding from. +const IUpgradableECCMABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// IUpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. +var IUpgradableECCMFuncSigs = map[string]string{ + "8f32d59b": "isOwner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "6f31031d": "setChainId(uint64)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", +} + +// IUpgradableECCM is an auto generated Go binding around an Ethereum contract. +type IUpgradableECCM struct { + IUpgradableECCMCaller // Read-only binding to the contract + IUpgradableECCMTransactor // Write-only binding to the contract + IUpgradableECCMFilterer // Log filterer for contract events +} + +// IUpgradableECCMCaller is an auto generated read-only Go binding around an Ethereum contract. +type IUpgradableECCMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradableECCMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IUpgradableECCMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradableECCMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IUpgradableECCMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IUpgradableECCMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IUpgradableECCMSession struct { + Contract *IUpgradableECCM // 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 +} + +// IUpgradableECCMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IUpgradableECCMCallerSession struct { + Contract *IUpgradableECCMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IUpgradableECCMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IUpgradableECCMTransactorSession struct { + Contract *IUpgradableECCMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IUpgradableECCMRaw is an auto generated low-level Go binding around an Ethereum contract. +type IUpgradableECCMRaw struct { + Contract *IUpgradableECCM // Generic contract binding to access the raw methods on +} + +// IUpgradableECCMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IUpgradableECCMCallerRaw struct { + Contract *IUpgradableECCMCaller // Generic read-only contract binding to access the raw methods on +} + +// IUpgradableECCMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IUpgradableECCMTransactorRaw struct { + Contract *IUpgradableECCMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIUpgradableECCM creates a new instance of IUpgradableECCM, bound to a specific deployed contract. +func NewIUpgradableECCM(address common.Address, backend bind.ContractBackend) (*IUpgradableECCM, error) { + contract, err := bindIUpgradableECCM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IUpgradableECCM{IUpgradableECCMCaller: IUpgradableECCMCaller{contract: contract}, IUpgradableECCMTransactor: IUpgradableECCMTransactor{contract: contract}, IUpgradableECCMFilterer: IUpgradableECCMFilterer{contract: contract}}, nil +} + +// NewIUpgradableECCMCaller creates a new read-only instance of IUpgradableECCM, bound to a specific deployed contract. +func NewIUpgradableECCMCaller(address common.Address, caller bind.ContractCaller) (*IUpgradableECCMCaller, error) { + contract, err := bindIUpgradableECCM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IUpgradableECCMCaller{contract: contract}, nil +} + +// NewIUpgradableECCMTransactor creates a new write-only instance of IUpgradableECCM, bound to a specific deployed contract. +func NewIUpgradableECCMTransactor(address common.Address, transactor bind.ContractTransactor) (*IUpgradableECCMTransactor, error) { + contract, err := bindIUpgradableECCM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IUpgradableECCMTransactor{contract: contract}, nil +} + +// NewIUpgradableECCMFilterer creates a new log filterer instance of IUpgradableECCM, bound to a specific deployed contract. +func NewIUpgradableECCMFilterer(address common.Address, filterer bind.ContractFilterer) (*IUpgradableECCMFilterer, error) { + contract, err := bindIUpgradableECCM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IUpgradableECCMFilterer{contract: contract}, nil +} + +// bindIUpgradableECCM binds a generic wrapper to an already deployed contract. +func bindIUpgradableECCM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(IUpgradableECCMABI)) + 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 (_IUpgradableECCM *IUpgradableECCMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradableECCM.Contract.IUpgradableECCMCaller.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 (_IUpgradableECCM *IUpgradableECCMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.IUpgradableECCMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradableECCM *IUpgradableECCMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.IUpgradableECCMTransactor.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 (_IUpgradableECCM *IUpgradableECCMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IUpgradableECCM.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 (_IUpgradableECCM *IUpgradableECCMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IUpgradableECCM *IUpgradableECCMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.contract.Transact(opts, method, params...) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_IUpgradableECCM *IUpgradableECCMCaller) IsOwner(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IUpgradableECCM.contract.Call(opts, &out, "isOwner") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) IsOwner() (bool, error) { + return _IUpgradableECCM.Contract.IsOwner(&_IUpgradableECCM.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_IUpgradableECCM *IUpgradableECCMCallerSession) IsOwner() (bool, error) { + return _IUpgradableECCM.Contract.IsOwner(&_IUpgradableECCM.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IUpgradableECCM *IUpgradableECCMCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IUpgradableECCM.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 (_IUpgradableECCM *IUpgradableECCMSession) Paused() (bool, error) { + return _IUpgradableECCM.Contract.Paused(&_IUpgradableECCM.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IUpgradableECCM *IUpgradableECCMCallerSession) Paused() (bool, error) { + return _IUpgradableECCM.Contract.Paused(&_IUpgradableECCM.CallOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradableECCM.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) Pause() (*types.Transaction, error) { + return _IUpgradableECCM.Contract.Pause(&_IUpgradableECCM.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactorSession) Pause() (*types.Transaction, error) { + return _IUpgradableECCM.Contract.Pause(&_IUpgradableECCM.TransactOpts) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IUpgradableECCM.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) Unpause() (*types.Transaction, error) { + return _IUpgradableECCM.Contract.Unpause(&_IUpgradableECCM.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactorSession) Unpause() (*types.Transaction, error) { + return _IUpgradableECCM.Contract.Unpause(&_IUpgradableECCM.TransactOpts) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address ) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactor) UpgradeToNew(opts *bind.TransactOpts, arg0 common.Address) (*types.Transaction, error) { + return _IUpgradableECCM.contract.Transact(opts, "upgradeToNew", arg0) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address ) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) UpgradeToNew(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.UpgradeToNew(&_IUpgradableECCM.TransactOpts, arg0) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address ) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactorSession) UpgradeToNew(arg0 common.Address) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.UpgradeToNew(&_IUpgradableECCM.TransactOpts, arg0) +} + +// OwnableABI is the input ABI used to generate the binding from. +const OwnableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// OwnableFuncSigs maps the 4-byte function signature to its string representation. +var OwnableFuncSigs = map[string]string{ + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "715018a6": "renounceOwnership()", + "f2fde38b": "transferOwnership(address)", +} + +// Ownable is an auto generated Go binding around an Ethereum contract. +type Ownable struct { + OwnableCaller // Read-only binding to the contract + OwnableTransactor // Write-only binding to the contract + OwnableFilterer // Log filterer for contract events +} + +// OwnableCaller is an auto generated read-only Go binding around an Ethereum contract. +type OwnableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OwnableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OwnableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OwnableSession struct { + Contract *Ownable // 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 +} + +// OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OwnableCallerSession struct { + Contract *OwnableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OwnableTransactorSession struct { + Contract *OwnableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableRaw is an auto generated low-level Go binding around an Ethereum contract. +type OwnableRaw struct { + Contract *Ownable // Generic contract binding to access the raw methods on +} + +// OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OwnableCallerRaw struct { + Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on +} + +// OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OwnableTransactorRaw struct { + Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOwnable creates a new instance of Ownable, bound to a specific deployed contract. +func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) { + contract, err := bindOwnable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil +} + +// NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) { + contract, err := bindOwnable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OwnableCaller{contract: contract}, nil +} + +// NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) { + contract, err := bindOwnable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OwnableTransactor{contract: contract}, nil +} + +// NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract. +func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) { + contract, err := bindOwnable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OwnableFilterer{contract: contract}, nil +} + +// bindOwnable binds a generic wrapper to an already deployed contract. +func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(OwnableABI)) + 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 (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Ownable.Contract.OwnableCaller.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 (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.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 (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Ownable.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 (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transact(opts, method, params...) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Ownable.contract.Call(opts, &out, "isOwner") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_Ownable *OwnableSession) IsOwner() (bool, error) { + return _Ownable.Contract.IsOwner(&_Ownable.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) { + return _Ownable.Contract.IsOwner(&_Ownable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Ownable.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 (_Ownable *OwnableSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) { + return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _Ownable.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) +} + +// OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract. +type OwnableOwnershipTransferredIterator struct { + Event *OwnableOwnershipTransferred // 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 *OwnableOwnershipTransferredIterator) 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(OwnableOwnershipTransferred) + 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(OwnableOwnershipTransferred) + 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 *OwnableOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnableOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract. +type OwnableOwnershipTransferred 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 (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, 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 := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &OwnableOwnershipTransferredIterator{contract: _Ownable.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 (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, 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 := _Ownable.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(OwnableOwnershipTransferred) + if err := _Ownable.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 (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) { + event := new(OwnableOwnershipTransferred) + if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PausableABI is the input ABI used to generate the binding from. +const PausableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" + +// PausableFuncSigs maps the 4-byte function signature to its string representation. +var PausableFuncSigs = map[string]string{ + "5c975abb": "paused()", +} + +// Pausable is an auto generated Go binding around an Ethereum contract. +type Pausable struct { + PausableCaller // Read-only binding to the contract + PausableTransactor // Write-only binding to the contract + PausableFilterer // Log filterer for contract events +} + +// PausableCaller is an auto generated read-only Go binding around an Ethereum contract. +type PausableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type PausableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type PausableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type PausableSession struct { + Contract *Pausable // 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 +} + +// PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type PausableCallerSession struct { + Contract *PausableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type PausableTransactorSession struct { + Contract *PausableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PausableRaw is an auto generated low-level Go binding around an Ethereum contract. +type PausableRaw struct { + Contract *Pausable // Generic contract binding to access the raw methods on +} + +// PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type PausableCallerRaw struct { + Contract *PausableCaller // Generic read-only contract binding to access the raw methods on +} + +// PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type PausableTransactorRaw struct { + Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewPausable creates a new instance of Pausable, bound to a specific deployed contract. +func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) { + contract, err := bindPausable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil +} + +// NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract. +func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) { + contract, err := bindPausable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PausableCaller{contract: contract}, nil +} + +// NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract. +func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) { + contract, err := bindPausable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PausableTransactor{contract: contract}, nil +} + +// NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract. +func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) { + contract, err := bindPausable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PausableFilterer{contract: contract}, nil +} + +// bindPausable binds a generic wrapper to an already deployed contract. +func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(PausableABI)) + 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 (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Pausable.Contract.PausableCaller.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 (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pausable.Contract.PausableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pausable.Contract.PausableTransactor.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 (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Pausable.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 (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pausable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pausable.Contract.contract.Transact(opts, method, params...) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Pausable.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 (_Pausable *PausableSession) Paused() (bool, error) { + return _Pausable.Contract.Paused(&_Pausable.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_Pausable *PausableCallerSession) Paused() (bool, error) { + return _Pausable.Contract.Paused(&_Pausable.CallOpts) +} + +// PausablePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the Pausable contract. +type PausablePausedIterator struct { + Event *PausablePaused // 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 *PausablePausedIterator) 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(PausablePaused) + 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(PausablePaused) + 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 *PausablePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausablePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausablePaused represents a Paused event raised by the Pausable contract. +type PausablePaused 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 (_Pausable *PausableFilterer) FilterPaused(opts *bind.FilterOpts) (*PausablePausedIterator, error) { + + logs, sub, err := _Pausable.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &PausablePausedIterator{contract: _Pausable.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 (_Pausable *PausableFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *PausablePaused) (event.Subscription, error) { + + logs, sub, err := _Pausable.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(PausablePaused) + if err := _Pausable.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 (_Pausable *PausableFilterer) ParsePaused(log types.Log) (*PausablePaused, error) { + event := new(PausablePaused) + if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PausableUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the Pausable contract. +type PausableUnpausedIterator struct { + Event *PausableUnpaused // 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 *PausableUnpausedIterator) 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(PausableUnpaused) + 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(PausableUnpaused) + 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 *PausableUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausableUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausableUnpaused represents a Unpaused event raised by the Pausable contract. +type PausableUnpaused 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 (_Pausable *PausableFilterer) FilterUnpaused(opts *bind.FilterOpts) (*PausableUnpausedIterator, error) { + + logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &PausableUnpausedIterator{contract: _Pausable.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 (_Pausable *PausableFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *PausableUnpaused) (event.Subscription, error) { + + logs, sub, err := _Pausable.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(PausableUnpaused) + if err := _Pausable.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 (_Pausable *PausableFilterer) ParseUnpaused(log types.Log) (*PausableUnpaused, error) { + event := new(PausableUnpaused) + if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// SafeMathABI is the input ABI used to generate the binding from. +const SafeMathABI = "[]" + +// SafeMathBin is the compiled bytecode used for deploying new contracts. +var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158200e6820cfc4a8509d280164004f488212b92fbfe60e92c0175ba6de94ef905b6b64736f6c63430005110032" + +// DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. +func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { + parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil +} + +// SafeMath is an auto generated Go binding around an Ethereum contract. +type SafeMath struct { + SafeMathCaller // Read-only binding to the contract + SafeMathTransactor // Write-only binding to the contract + SafeMathFilterer // Log filterer for contract events +} + +// SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract. +type SafeMathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SafeMathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SafeMathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SafeMathSession struct { + Contract *SafeMath // 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 +} + +// SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SafeMathCallerSession struct { + Contract *SafeMathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SafeMathTransactorSession struct { + Contract *SafeMathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract. +type SafeMathRaw struct { + Contract *SafeMath // Generic contract binding to access the raw methods on +} + +// SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SafeMathCallerRaw struct { + Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on +} + +// SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SafeMathTransactorRaw struct { + Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract. +func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) { + contract, err := bindSafeMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil +} + +// NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) { + contract, err := bindSafeMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SafeMathCaller{contract: contract}, nil +} + +// NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) { + contract, err := bindSafeMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SafeMathTransactor{contract: contract}, nil +} + +// NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) { + contract, err := bindSafeMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SafeMathFilterer{contract: contract}, nil +} + +// bindSafeMath binds a generic wrapper to an already deployed contract. +func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) + 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 (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SafeMath.Contract.SafeMathCaller.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 (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeMath.Contract.SafeMathTransactor.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 (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _SafeMath.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 (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeMath.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeMath.Contract.contract.Transact(opts, method, params...) +} + +// UpgradableECCMABI is the input ABI used to generate the binding from. +const UpgradableECCMABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ethCrossChainDataAddr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// UpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. +var UpgradableECCMFuncSigs = map[string]string{ + "00ba1694": "EthCrossChainDataAddress()", + "9a8a0592": "chainId()", + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "715018a6": "renounceOwnership()", + "6f31031d": "setChainId(uint64)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", +} + +// UpgradableECCMBin is the compiled bytecode used for deploying new contracts. +var UpgradableECCMBin = "0x608060405234801561001057600080fd5b50604051610b6c380380610b6c8339818101604052604081101561003357600080fd5b508051602090910151600061004f6001600160e01b036100ee16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600180546001600160401b03909216600160a01b02600160a01b600160e01b03196001600160a01b039094166001600160a01b031990931692909217929092161790556100f2565b3390565b610a6b806101016000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80637e724ff3116100715780637e724ff3146101265780638456cb591461014c5780638da5cb5b146101545780638f32d59b1461015c5780639a8a059214610164578063f2fde38b14610189576100a8565b8062ba1694146100ad5780633f4ba83a146100d15780635c975abb146100ed5780636f31031d146100f5578063715018a61461011c575b600080fd5b6100b56101af565b604080516001600160a01b039092168252519081900360200190f35b6100d96101be565b604080519115158252519081900360200190f35b6100d961033d565b6100d96004803603602081101561010b57600080fd5b503567ffffffffffffffff1661034d565b610124610418565b005b6100d96004803603602081101561013c57600080fd5b50356001600160a01b03166104a9565b6100d96105b8565b6100b561072d565b6100d961073c565b61016c610760565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101246004803603602081101561019f57600080fd5b50356001600160a01b0316610777565b6001546001600160a01b031681565b60006101c861073c565b610207576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61020f61033d565b1561021c5761021c6107ca565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561026257600080fd5b505afa158015610276573d6000803e3d6000fd5b505050506040513d602081101561028c57600080fd5b50511561033557806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102ce57600080fd5b505af11580156102e2573d6000803e3d6000fd5b505050506040513d60208110156102f857600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260298152602001806109c86029913960400191505060405180910390fd5b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff166103a3576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6103ab61073c565b6103ea576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b506001805467ffffffffffffffff8316600160a01b0267ffffffffffffffff60a01b19909116178155919050565b61042061073c565b61045f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008054600160a01b900460ff166104ff576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b61050761073c565b610546576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6001546040805163f2fde38b60e01b81526001600160a01b03858116600483015291519190921691829163f2fde38b9160248082019260009290919082900301818387803b15801561059757600080fd5b505af11580156105ab573d6000803e3d6000fd5b5060019695505050505050565b60006105c261073c565b610601576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61060961033d565b61061557610615610872565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561065b57600080fd5b505afa15801561066f573d6000803e3d6000fd5b505050506040513d602081101561068557600080fd5b505161033557806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106c657600080fd5b505af11580156106da573d6000803e3d6000fd5b505050506040513d60208110156106f057600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260278152602001806109a16027913960400191505060405180910390fd5b6000546001600160a01b031690565b600080546001600160a01b03166107516108fc565b6001600160a01b031614905090565b600154600160a01b900467ffffffffffffffff1681565b61077f61073c565b6107be576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6107c781610900565b50565b600054600160a01b900460ff1661081f576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108556108fc565b604080516001600160a01b039092168252519081900360200190a1565b600054600160a01b900460ff16156108c4576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108555b3390565b6001600160a01b0381166109455760405162461bcd60e51b81526004018080602001828103825260268152602001806109f16026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c6564756e70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c65644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582033b5f033bee166fb9485e71076385f292a8b245661fd103f687f4f56e5c4698d64736f6c63430005110032" + +// DeployUpgradableECCM deploys a new Ethereum contract, binding an instance of UpgradableECCM to it. +func DeployUpgradableECCM(auth *bind.TransactOpts, backend bind.ContractBackend, ethCrossChainDataAddr common.Address, _chainId uint64) (common.Address, *types.Transaction, *UpgradableECCM, error) { + parsed, err := abi.JSON(strings.NewReader(UpgradableECCMABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UpgradableECCMBin), backend, ethCrossChainDataAddr, _chainId) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &UpgradableECCM{UpgradableECCMCaller: UpgradableECCMCaller{contract: contract}, UpgradableECCMTransactor: UpgradableECCMTransactor{contract: contract}, UpgradableECCMFilterer: UpgradableECCMFilterer{contract: contract}}, nil +} + +// UpgradableECCM is an auto generated Go binding around an Ethereum contract. +type UpgradableECCM struct { + UpgradableECCMCaller // Read-only binding to the contract + UpgradableECCMTransactor // Write-only binding to the contract + UpgradableECCMFilterer // Log filterer for contract events +} + +// UpgradableECCMCaller is an auto generated read-only Go binding around an Ethereum contract. +type UpgradableECCMCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradableECCMTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UpgradableECCMTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradableECCMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UpgradableECCMFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradableECCMSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UpgradableECCMSession struct { + Contract *UpgradableECCM // 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 +} + +// UpgradableECCMCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UpgradableECCMCallerSession struct { + Contract *UpgradableECCMCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UpgradableECCMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UpgradableECCMTransactorSession struct { + Contract *UpgradableECCMTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradableECCMRaw is an auto generated low-level Go binding around an Ethereum contract. +type UpgradableECCMRaw struct { + Contract *UpgradableECCM // Generic contract binding to access the raw methods on +} + +// UpgradableECCMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UpgradableECCMCallerRaw struct { + Contract *UpgradableECCMCaller // Generic read-only contract binding to access the raw methods on +} + +// UpgradableECCMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UpgradableECCMTransactorRaw struct { + Contract *UpgradableECCMTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUpgradableECCM creates a new instance of UpgradableECCM, bound to a specific deployed contract. +func NewUpgradableECCM(address common.Address, backend bind.ContractBackend) (*UpgradableECCM, error) { + contract, err := bindUpgradableECCM(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UpgradableECCM{UpgradableECCMCaller: UpgradableECCMCaller{contract: contract}, UpgradableECCMTransactor: UpgradableECCMTransactor{contract: contract}, UpgradableECCMFilterer: UpgradableECCMFilterer{contract: contract}}, nil +} + +// NewUpgradableECCMCaller creates a new read-only instance of UpgradableECCM, bound to a specific deployed contract. +func NewUpgradableECCMCaller(address common.Address, caller bind.ContractCaller) (*UpgradableECCMCaller, error) { + contract, err := bindUpgradableECCM(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UpgradableECCMCaller{contract: contract}, nil +} + +// NewUpgradableECCMTransactor creates a new write-only instance of UpgradableECCM, bound to a specific deployed contract. +func NewUpgradableECCMTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradableECCMTransactor, error) { + contract, err := bindUpgradableECCM(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UpgradableECCMTransactor{contract: contract}, nil +} + +// NewUpgradableECCMFilterer creates a new log filterer instance of UpgradableECCM, bound to a specific deployed contract. +func NewUpgradableECCMFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradableECCMFilterer, error) { + contract, err := bindUpgradableECCM(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UpgradableECCMFilterer{contract: contract}, nil +} + +// bindUpgradableECCM binds a generic wrapper to an already deployed contract. +func bindUpgradableECCM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(UpgradableECCMABI)) + 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 (_UpgradableECCM *UpgradableECCMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradableECCM.Contract.UpgradableECCMCaller.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 (_UpgradableECCM *UpgradableECCMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradableECCM.Contract.UpgradableECCMTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradableECCM *UpgradableECCMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradableECCM.Contract.UpgradableECCMTransactor.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 (_UpgradableECCM *UpgradableECCMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradableECCM.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradableECCM *UpgradableECCMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradableECCM.Contract.contract.Transact(opts, method, params...) +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_UpgradableECCM *UpgradableECCMCaller) EthCrossChainDataAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradableECCM.contract.Call(opts, &out, "EthCrossChainDataAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_UpgradableECCM *UpgradableECCMSession) EthCrossChainDataAddress() (common.Address, error) { + return _UpgradableECCM.Contract.EthCrossChainDataAddress(&_UpgradableECCM.CallOpts) +} + +// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. +// +// Solidity: function EthCrossChainDataAddress() view returns(address) +func (_UpgradableECCM *UpgradableECCMCallerSession) EthCrossChainDataAddress() (common.Address, error) { + return _UpgradableECCM.Contract.EthCrossChainDataAddress(&_UpgradableECCM.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMCaller) ChainId(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _UpgradableECCM.contract.Call(opts, &out, "chainId") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMSession) ChainId() (uint64, error) { + return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMCallerSession) ChainId() (uint64, error) { + return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_UpgradableECCM *UpgradableECCMCaller) IsOwner(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _UpgradableECCM.contract.Call(opts, &out, "isOwner") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) IsOwner() (bool, error) { + return _UpgradableECCM.Contract.IsOwner(&_UpgradableECCM.CallOpts) +} + +// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. +// +// Solidity: function isOwner() view returns(bool) +func (_UpgradableECCM *UpgradableECCMCallerSession) IsOwner() (bool, error) { + return _UpgradableECCM.Contract.IsOwner(&_UpgradableECCM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradableECCM *UpgradableECCMCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMSession) Owner() (common.Address, error) { + return _UpgradableECCM.Contract.Owner(&_UpgradableECCM.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradableECCM *UpgradableECCMCallerSession) Owner() (common.Address, error) { + return _UpgradableECCM.Contract.Owner(&_UpgradableECCM.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_UpgradableECCM *UpgradableECCMCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMSession) Paused() (bool, error) { + return _UpgradableECCM.Contract.Paused(&_UpgradableECCM.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_UpgradableECCM *UpgradableECCMCallerSession) Paused() (bool, error) { + return _UpgradableECCM.Contract.Paused(&_UpgradableECCM.CallOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) Pause() (*types.Transaction, error) { + return _UpgradableECCM.Contract.Pause(&_UpgradableECCM.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactorSession) Pause() (*types.Transaction, error) { + return _UpgradableECCM.Contract.Pause(&_UpgradableECCM.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradableECCM *UpgradableECCMTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradableECCM *UpgradableECCMSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradableECCM.Contract.RenounceOwnership(&_UpgradableECCM.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradableECCM *UpgradableECCMTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradableECCM.Contract.RenounceOwnership(&_UpgradableECCM.TransactOpts) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradableECCM *UpgradableECCMTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradableECCM *UpgradableECCMSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradableECCM.Contract.TransferOwnership(&_UpgradableECCM.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradableECCM *UpgradableECCMTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradableECCM.Contract.TransferOwnership(&_UpgradableECCM.TransactOpts, newOwner) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) Unpause() (*types.Transaction, error) { + return _UpgradableECCM.Contract.Unpause(&_UpgradableECCM.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactorSession) Unpause() (*types.Transaction, error) { + return _UpgradableECCM.Contract.Unpause(&_UpgradableECCM.TransactOpts) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactor) UpgradeToNew(opts *bind.TransactOpts, newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "upgradeToNew", newEthCrossChainManagerAddress) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _UpgradableECCM.Contract.UpgradeToNew(&_UpgradableECCM.TransactOpts, newEthCrossChainManagerAddress) +} + +// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. +// +// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactorSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { + return _UpgradableECCM.Contract.UpgradeToNew(&_UpgradableECCM.TransactOpts, newEthCrossChainManagerAddress) +} + +// UpgradableECCMOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the UpgradableECCM contract. +type UpgradableECCMOwnershipTransferredIterator struct { + Event *UpgradableECCMOwnershipTransferred // 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 *UpgradableECCMOwnershipTransferredIterator) 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(UpgradableECCMOwnershipTransferred) + 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(UpgradableECCMOwnershipTransferred) + 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 *UpgradableECCMOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradableECCMOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradableECCMOwnershipTransferred represents a OwnershipTransferred event raised by the UpgradableECCM contract. +type UpgradableECCMOwnershipTransferred 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UpgradableECCMOwnershipTransferredIterator, 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 := _UpgradableECCM.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UpgradableECCMOwnershipTransferredIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UpgradableECCMOwnershipTransferred, 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 := _UpgradableECCM.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(UpgradableECCMOwnershipTransferred) + if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParseOwnershipTransferred(log types.Log) (*UpgradableECCMOwnershipTransferred, error) { + event := new(UpgradableECCMOwnershipTransferred) + if err := _UpgradableECCM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradableECCMPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the UpgradableECCM contract. +type UpgradableECCMPausedIterator struct { + Event *UpgradableECCMPaused // 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 *UpgradableECCMPausedIterator) 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(UpgradableECCMPaused) + 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(UpgradableECCMPaused) + 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 *UpgradableECCMPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradableECCMPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradableECCMPaused represents a Paused event raised by the UpgradableECCM contract. +type UpgradableECCMPaused 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterPaused(opts *bind.FilterOpts) (*UpgradableECCMPausedIterator, error) { + + logs, sub, err := _UpgradableECCM.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &UpgradableECCMPausedIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *UpgradableECCMPaused) (event.Subscription, error) { + + logs, sub, err := _UpgradableECCM.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(UpgradableECCMPaused) + if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParsePaused(log types.Log) (*UpgradableECCMPaused, error) { + event := new(UpgradableECCMPaused) + if err := _UpgradableECCM.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradableECCMUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the UpgradableECCM contract. +type UpgradableECCMUnpausedIterator struct { + Event *UpgradableECCMUnpaused // 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 *UpgradableECCMUnpausedIterator) 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(UpgradableECCMUnpaused) + 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(UpgradableECCMUnpaused) + 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 *UpgradableECCMUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradableECCMUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradableECCMUnpaused represents a Unpaused event raised by the UpgradableECCM contract. +type UpgradableECCMUnpaused 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterUnpaused(opts *bind.FilterOpts) (*UpgradableECCMUnpausedIterator, error) { + + logs, sub, err := _UpgradableECCM.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &UpgradableECCMUnpausedIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *UpgradableECCMUnpaused) (event.Subscription, error) { + + logs, sub, err := _UpgradableECCM.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(UpgradableECCMUnpaused) + if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParseUnpaused(log types.Log) (*UpgradableECCMUnpaused, error) { + event := new(UpgradableECCMUnpaused) + if err := _UpgradableECCM.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UtilsABI is the input ABI used to generate the binding from. +const UtilsABI = "[]" + +// UtilsBin is the compiled bytecode used for deploying new contracts. +var UtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582021ae6fc6ca0c6a2b393807bf67f4c3b58a9d67887c52858460d143c8bb32d45264736f6c63430005110032" + +// DeployUtils deploys a new Ethereum contract, binding an instance of Utils to it. +func DeployUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Utils, error) { + parsed, err := abi.JSON(strings.NewReader(UtilsABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UtilsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil +} + +// Utils is an auto generated Go binding around an Ethereum contract. +type Utils struct { + UtilsCaller // Read-only binding to the contract + UtilsTransactor // Write-only binding to the contract + UtilsFilterer // Log filterer for contract events +} + +// UtilsCaller is an auto generated read-only Go binding around an Ethereum contract. +type UtilsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UtilsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UtilsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UtilsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UtilsSession struct { + Contract *Utils // 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 +} + +// UtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UtilsCallerSession struct { + Contract *UtilsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UtilsTransactorSession struct { + Contract *UtilsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UtilsRaw is an auto generated low-level Go binding around an Ethereum contract. +type UtilsRaw struct { + Contract *Utils // Generic contract binding to access the raw methods on +} + +// UtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UtilsCallerRaw struct { + Contract *UtilsCaller // Generic read-only contract binding to access the raw methods on +} + +// UtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UtilsTransactorRaw struct { + Contract *UtilsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUtils creates a new instance of Utils, bound to a specific deployed contract. +func NewUtils(address common.Address, backend bind.ContractBackend) (*Utils, error) { + contract, err := bindUtils(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil +} + +// NewUtilsCaller creates a new read-only instance of Utils, bound to a specific deployed contract. +func NewUtilsCaller(address common.Address, caller bind.ContractCaller) (*UtilsCaller, error) { + contract, err := bindUtils(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UtilsCaller{contract: contract}, nil +} + +// NewUtilsTransactor creates a new write-only instance of Utils, bound to a specific deployed contract. +func NewUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*UtilsTransactor, error) { + contract, err := bindUtils(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UtilsTransactor{contract: contract}, nil +} + +// NewUtilsFilterer creates a new log filterer instance of Utils, bound to a specific deployed contract. +func NewUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*UtilsFilterer, error) { + contract, err := bindUtils(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UtilsFilterer{contract: contract}, nil +} + +// bindUtils binds a generic wrapper to an already deployed contract. +func bindUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(UtilsABI)) + 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 (_Utils *UtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Utils.Contract.UtilsCaller.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 (_Utils *UtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Utils.Contract.UtilsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Utils *UtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Utils.Contract.UtilsTransactor.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 (_Utils *UtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Utils.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 (_Utils *UtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Utils.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Utils *UtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Utils.Contract.contract.Transact(opts, method, params...) +} + +// ZeroCopySinkABI is the input ABI used to generate the binding from. +const ZeroCopySinkABI = "[]" + +// ZeroCopySinkBin is the compiled bytecode used for deploying new contracts. +var ZeroCopySinkBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820cecc9338fc54f8484e8a2ab213275b7461d0c2306c7ddb6b1cd906f640634b1164736f6c63430005110032" + +// DeployZeroCopySink deploys a new Ethereum contract, binding an instance of ZeroCopySink to it. +func DeployZeroCopySink(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySink, error) { + parsed, err := abi.JSON(strings.NewReader(ZeroCopySinkABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySinkBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZeroCopySink{ZeroCopySinkCaller: ZeroCopySinkCaller{contract: contract}, ZeroCopySinkTransactor: ZeroCopySinkTransactor{contract: contract}, ZeroCopySinkFilterer: ZeroCopySinkFilterer{contract: contract}}, nil +} + +// ZeroCopySink is an auto generated Go binding around an Ethereum contract. +type ZeroCopySink struct { + ZeroCopySinkCaller // Read-only binding to the contract + ZeroCopySinkTransactor // Write-only binding to the contract + ZeroCopySinkFilterer // Log filterer for contract events +} + +// ZeroCopySinkCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZeroCopySinkCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySinkTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZeroCopySinkTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySinkFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZeroCopySinkFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySinkSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZeroCopySinkSession struct { + Contract *ZeroCopySink // 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 +} + +// ZeroCopySinkCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZeroCopySinkCallerSession struct { + Contract *ZeroCopySinkCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZeroCopySinkTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZeroCopySinkTransactorSession struct { + Contract *ZeroCopySinkTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZeroCopySinkRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZeroCopySinkRaw struct { + Contract *ZeroCopySink // Generic contract binding to access the raw methods on +} + +// ZeroCopySinkCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZeroCopySinkCallerRaw struct { + Contract *ZeroCopySinkCaller // Generic read-only contract binding to access the raw methods on +} + +// ZeroCopySinkTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZeroCopySinkTransactorRaw struct { + Contract *ZeroCopySinkTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZeroCopySink creates a new instance of ZeroCopySink, bound to a specific deployed contract. +func NewZeroCopySink(address common.Address, backend bind.ContractBackend) (*ZeroCopySink, error) { + contract, err := bindZeroCopySink(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZeroCopySink{ZeroCopySinkCaller: ZeroCopySinkCaller{contract: contract}, ZeroCopySinkTransactor: ZeroCopySinkTransactor{contract: contract}, ZeroCopySinkFilterer: ZeroCopySinkFilterer{contract: contract}}, nil +} + +// NewZeroCopySinkCaller creates a new read-only instance of ZeroCopySink, bound to a specific deployed contract. +func NewZeroCopySinkCaller(address common.Address, caller bind.ContractCaller) (*ZeroCopySinkCaller, error) { + contract, err := bindZeroCopySink(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZeroCopySinkCaller{contract: contract}, nil +} + +// NewZeroCopySinkTransactor creates a new write-only instance of ZeroCopySink, bound to a specific deployed contract. +func NewZeroCopySinkTransactor(address common.Address, transactor bind.ContractTransactor) (*ZeroCopySinkTransactor, error) { + contract, err := bindZeroCopySink(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZeroCopySinkTransactor{contract: contract}, nil +} + +// NewZeroCopySinkFilterer creates a new log filterer instance of ZeroCopySink, bound to a specific deployed contract. +func NewZeroCopySinkFilterer(address common.Address, filterer bind.ContractFilterer) (*ZeroCopySinkFilterer, error) { + contract, err := bindZeroCopySink(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZeroCopySinkFilterer{contract: contract}, nil +} + +// bindZeroCopySink binds a generic wrapper to an already deployed contract. +func bindZeroCopySink(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ZeroCopySinkABI)) + 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 (_ZeroCopySink *ZeroCopySinkRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZeroCopySink.Contract.ZeroCopySinkCaller.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 (_ZeroCopySink *ZeroCopySinkRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZeroCopySink.Contract.ZeroCopySinkTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZeroCopySink *ZeroCopySinkRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZeroCopySink.Contract.ZeroCopySinkTransactor.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 (_ZeroCopySink *ZeroCopySinkCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZeroCopySink.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 (_ZeroCopySink *ZeroCopySinkTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZeroCopySink.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZeroCopySink *ZeroCopySinkTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZeroCopySink.Contract.contract.Transact(opts, method, params...) +} + +// ZeroCopySourceABI is the input ABI used to generate the binding from. +const ZeroCopySourceABI = "[]" + +// ZeroCopySourceBin is the compiled bytecode used for deploying new contracts. +var ZeroCopySourceBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820744137c46116f0d22c829936c9138f811cd0b2b229082db0456efd79052caf1e64736f6c63430005110032" + +// DeployZeroCopySource deploys a new Ethereum contract, binding an instance of ZeroCopySource to it. +func DeployZeroCopySource(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySource, error) { + parsed, err := abi.JSON(strings.NewReader(ZeroCopySourceABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySourceBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZeroCopySource{ZeroCopySourceCaller: ZeroCopySourceCaller{contract: contract}, ZeroCopySourceTransactor: ZeroCopySourceTransactor{contract: contract}, ZeroCopySourceFilterer: ZeroCopySourceFilterer{contract: contract}}, nil +} + +// ZeroCopySource is an auto generated Go binding around an Ethereum contract. +type ZeroCopySource struct { + ZeroCopySourceCaller // Read-only binding to the contract + ZeroCopySourceTransactor // Write-only binding to the contract + ZeroCopySourceFilterer // Log filterer for contract events +} + +// ZeroCopySourceCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZeroCopySourceCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySourceTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZeroCopySourceTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySourceFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZeroCopySourceFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZeroCopySourceSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZeroCopySourceSession struct { + Contract *ZeroCopySource // 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 +} + +// ZeroCopySourceCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZeroCopySourceCallerSession struct { + Contract *ZeroCopySourceCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZeroCopySourceTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZeroCopySourceTransactorSession struct { + Contract *ZeroCopySourceTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZeroCopySourceRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZeroCopySourceRaw struct { + Contract *ZeroCopySource // Generic contract binding to access the raw methods on +} + +// ZeroCopySourceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZeroCopySourceCallerRaw struct { + Contract *ZeroCopySourceCaller // Generic read-only contract binding to access the raw methods on +} + +// ZeroCopySourceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZeroCopySourceTransactorRaw struct { + Contract *ZeroCopySourceTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZeroCopySource creates a new instance of ZeroCopySource, bound to a specific deployed contract. +func NewZeroCopySource(address common.Address, backend bind.ContractBackend) (*ZeroCopySource, error) { + contract, err := bindZeroCopySource(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZeroCopySource{ZeroCopySourceCaller: ZeroCopySourceCaller{contract: contract}, ZeroCopySourceTransactor: ZeroCopySourceTransactor{contract: contract}, ZeroCopySourceFilterer: ZeroCopySourceFilterer{contract: contract}}, nil +} + +// NewZeroCopySourceCaller creates a new read-only instance of ZeroCopySource, bound to a specific deployed contract. +func NewZeroCopySourceCaller(address common.Address, caller bind.ContractCaller) (*ZeroCopySourceCaller, error) { + contract, err := bindZeroCopySource(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZeroCopySourceCaller{contract: contract}, nil +} + +// NewZeroCopySourceTransactor creates a new write-only instance of ZeroCopySource, bound to a specific deployed contract. +func NewZeroCopySourceTransactor(address common.Address, transactor bind.ContractTransactor) (*ZeroCopySourceTransactor, error) { + contract, err := bindZeroCopySource(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZeroCopySourceTransactor{contract: contract}, nil +} + +// NewZeroCopySourceFilterer creates a new log filterer instance of ZeroCopySource, bound to a specific deployed contract. +func NewZeroCopySourceFilterer(address common.Address, filterer bind.ContractFilterer) (*ZeroCopySourceFilterer, error) { + contract, err := bindZeroCopySource(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZeroCopySourceFilterer{contract: contract}, nil +} + +// bindZeroCopySource binds a generic wrapper to an already deployed contract. +func bindZeroCopySource(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ZeroCopySourceABI)) + 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 (_ZeroCopySource *ZeroCopySourceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZeroCopySource.Contract.ZeroCopySourceCaller.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 (_ZeroCopySource *ZeroCopySourceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZeroCopySource.Contract.ZeroCopySourceTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZeroCopySource *ZeroCopySourceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZeroCopySource.Contract.ZeroCopySourceTransactor.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 (_ZeroCopySource *ZeroCopySourceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZeroCopySource.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 (_ZeroCopySource *ZeroCopySourceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZeroCopySource.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZeroCopySource *ZeroCopySourceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZeroCopySource.Contract.contract.Transact(opts, method, params...) +} From ee94807b44ae41beb928368de35fd3c0cd963849 Mon Sep 17 00:00:00 2001 From: rain <206131521@qq.com> Date: Thu, 7 Apr 2022 01:44:29 +0800 Subject: [PATCH 3/4] now_eccm_abi --- abi/now_eccm_abi/eccm_abi.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abi/now_eccm_abi/eccm_abi.go b/abi/now_eccm_abi/eccm_abi.go index 8047a55..7136d1e 100644 --- a/abi/now_eccm_abi/eccm_abi.go +++ b/abi/now_eccm_abi/eccm_abi.go @@ -1,7 +1,7 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. -package eccm_abi +package now_eccm_abi import ( "math/big" From 85f9346ab3de15da907d97be9feeae71374bfe2d Mon Sep 17 00:00:00 2001 From: rain <206131521@qq.com> Date: Thu, 7 Apr 2022 21:53:17 +0800 Subject: [PATCH 4/4] eccm_abi --- abi/eccm_abi/eccm_abi.go | 557 ++-- abi/now_eccm_abi/eccm_abi.go | 5328 ---------------------------------- base/testnet.go | 2 +- 3 files changed, 293 insertions(+), 5594 deletions(-) delete mode 100644 abi/now_eccm_abi/eccm_abi.go diff --git a/abi/eccm_abi/eccm_abi.go b/abi/eccm_abi/eccm_abi.go index a4bbd5f..8047a55 100644 --- a/abi/eccm_abi/eccm_abi.go +++ b/abi/eccm_abi/eccm_abi.go @@ -4,7 +4,6 @@ package eccm_abi import ( - "errors" "math/big" "strings" @@ -18,7 +17,6 @@ import ( // Reference imports to suppress errors if they are not otherwise used. var ( - _ = errors.New _ = big.NewInt _ = strings.NewReader _ = ethereum.NotFound @@ -28,14 +26,8 @@ var ( _ = event.NewSubscription ) -// ContextMetaData contains all meta data concerning the Context contract. -var ContextMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]", -} - // ContextABI is the input ABI used to generate the binding from. -// Deprecated: Use ContextMetaData.ABI instead. -var ContextABI = ContextMetaData.ABI +const ContextABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]" // Context is an auto generated Go binding around an Ethereum contract. type Context struct { @@ -179,38 +171,20 @@ func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method s return _Context.Contract.contract.Transact(opts, method, params...) } -// ECCUtilsMetaData contains all meta data concerning the ECCUtils contract. -var ECCUtilsMetaData = &bind.MetaData{ - ABI: "[{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_sigList\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_keepers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_m\",\"type\":\"uint256\"}],\"name\":\"verifySigV\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "55a4a51f": "verifySigV(bytes,bytes,address[],uint256)", - }, - Bin: "0x61067e610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806355a4a51f1461003a575b600080fd5b6101ed6004803603608081101561005057600080fd5b81019060208101813564010000000081111561006b57600080fd5b82018360208201111561007d57600080fd5b8035906020019184600183028401116401000000008311171561009f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156100f257600080fd5b82018360208201111561010457600080fd5b8035906020019184600183028401116401000000008311171561012657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460208302840111640100000000831117156101ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061023d915050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610229578181015183820152602001610211565b505050509050019250505060405180910390f35b6060600061024a86610438565b905060008090506000604187518161025e57fe5b04905060608160405190808252806020026020018201604052801561028d578160200160208202803883390190505b50905060008080805b85811015610427576102b56102b08d604184026020610569565b6105e9565b93506102cc6102b08d604184026020016020610569565b92508b60418202604001815181106102e057fe5b602001015160f81c60f81b60f81c601b0191506001600289604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106103465780518252601f199092019160209182019101610327565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015610385573d6000803e3d6000fd5b5050506040513d602081101561039a57600080fd5b5051604080516000815260208181018084529390935260ff8616818301526060810188905260808101879052905160a08083019392601f198301929081900390910190855afa1580156103f1573d6000803e3d6000fd5b5050506020604051035185828151811061040757fe5b6001600160a01b0390921660209283029190910190910152600101610296565b50929b9a5050505050505050505050565b6000600280836040518082805190602001908083835b6020831061046d5780518252601f19909201916020918201910161044e565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156104ac573d6000803e3d6000fd5b5050506040513d60208110156104c157600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b6020831061050d5780518252601f1990920191602091820191016104ee565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561054c573d6000803e3d6000fd5b5050506040513d602081101561056157600080fd5b505192915050565b60608183018451101561057b57600080fd5b606082158015610596576040519150602082016040526105e0565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156105cf5780518352602092830192016105b7565b5050858452601f01601f1916604052505b50949350505050565b60008151602014610641576040805162461bcd60e51b815260206004820152601760248201527f6279746573206c656e677468206973206e6f742033322e000000000000000000604482015290519081900360640190fd5b50602001519056fea265627a7a723158209cd7a64feaaecfee0ed32fc51409bcaeee5d7bde8ff9754fdeb51982facf4d3f64736f6c63430005110032", -} - // ECCUtilsABI is the input ABI used to generate the binding from. -// Deprecated: Use ECCUtilsMetaData.ABI instead. -var ECCUtilsABI = ECCUtilsMetaData.ABI - -// Deprecated: Use ECCUtilsMetaData.Sigs instead. -// ECCUtilsFuncSigs maps the 4-byte function signature to its string representation. -var ECCUtilsFuncSigs = ECCUtilsMetaData.Sigs +const ECCUtilsABI = "[]" // ECCUtilsBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use ECCUtilsMetaData.Bin instead. -var ECCUtilsBin = ECCUtilsMetaData.Bin +var ECCUtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582068157e4171167b57137cdb287bd0f3d469960d8e34113a38b1b5e82da8552dfb64736f6c63430005110032" // DeployECCUtils deploys a new Ethereum contract, binding an instance of ECCUtils to it. func DeployECCUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ECCUtils, error) { - parsed, err := ECCUtilsMetaData.GetAbi() + parsed, err := abi.JSON(strings.NewReader(ECCUtilsABI)) 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(ECCUtilsBin), backend) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ECCUtilsBin), backend) if err != nil { return common.Address{}, nil, nil, err } @@ -359,81 +333,41 @@ func (_ECCUtils *ECCUtilsTransactorRaw) Transact(opts *bind.TransactOpts, method return _ECCUtils.Contract.contract.Transact(opts, method, params...) } -// VerifySigV is a free data retrieval call binding the contract method 0x55a4a51f. -// -// Solidity: function verifySigV(bytes _rawHeader, bytes _sigList, address[] _keepers, uint256 _m) pure returns(address[]) -func (_ECCUtils *ECCUtilsCaller) VerifySigV(opts *bind.CallOpts, _rawHeader []byte, _sigList []byte, _keepers []common.Address, _m *big.Int) ([]common.Address, error) { - var out []interface{} - err := _ECCUtils.contract.Call(opts, &out, "verifySigV", _rawHeader, _sigList, _keepers, _m) - - if err != nil { - return *new([]common.Address), err - } - - out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address) - - return out0, err - -} - -// VerifySigV is a free data retrieval call binding the contract method 0x55a4a51f. -// -// Solidity: function verifySigV(bytes _rawHeader, bytes _sigList, address[] _keepers, uint256 _m) pure returns(address[]) -func (_ECCUtils *ECCUtilsSession) VerifySigV(_rawHeader []byte, _sigList []byte, _keepers []common.Address, _m *big.Int) ([]common.Address, error) { - return _ECCUtils.Contract.VerifySigV(&_ECCUtils.CallOpts, _rawHeader, _sigList, _keepers, _m) -} - -// VerifySigV is a free data retrieval call binding the contract method 0x55a4a51f. -// -// Solidity: function verifySigV(bytes _rawHeader, bytes _sigList, address[] _keepers, uint256 _m) pure returns(address[]) -func (_ECCUtils *ECCUtilsCallerSession) VerifySigV(_rawHeader []byte, _sigList []byte, _keepers []common.Address, _m *big.Int) ([]common.Address, error) { - return _ECCUtils.Contract.VerifySigV(&_ECCUtils.CallOpts, _rawHeader, _sigList, _keepers, _m) -} - -// EthCrossChainManagerMetaData contains all meta data concerning the EthCrossChainManager contract. -var EthCrossChainManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_eccd\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"ChangeBookKeeperEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"txId\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proxyOrAssetContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawdata\",\"type\":\"bytes\"}],\"name\":\"CrossChainEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"InitGenesisBlockEvent\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fromChainID\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"crossChainTxHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"fromChainTxHash\",\"type\":\"bytes\"}],\"name\":\"VerifyHeaderAndExecuteTxEvent\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sigList\",\"type\":\"bytes\"}],\"name\":\"changeBookKeeper\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"}],\"name\":\"initGenesisBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"curRawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerSig\",\"type\":\"bytes\"}],\"name\":\"verifyHeaderAndExecuteTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "00ba1694": "EthCrossChainDataAddress()", - "29dcf4ab": "changeBookKeeper(bytes,bytes,bytes)", - "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", - "34a773eb": "initGenesisBlock(bytes,bytes)", - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "715018a6": "renounceOwnership()", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", - "d450e04c": "verifyHeaderAndExecuteTx(bytes,bytes,bytes,bytes,bytes)", - }, - Bin: "0x60806040523480156200001157600080fd5b5060405162004e3038038062004e30833981810160405260208110156200003757600080fd5b50518060006200004f6001600160e01b03620000cd16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600180546001600160a01b0319166001600160a01b039290921691909117905550620000d1565b3390565b614d4f80620000e16000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637e724ff31161008c5780638f32d59b116100665780638f32d59b14610432578063bd5cf6251461043a578063d450e04c14610558578063f2fde38b14610810576100ce565b80637e724ff3146103fc5780638456cb59146104225780638da5cb5b1461042a576100ce565b8062ba1694146100d357806329dcf4ab146100f757806334a773eb146102b95780633f4ba83a146103e25780635c975abb146103ea578063715018a6146103f2575b600080fd5b6100db610836565b604080516001600160a01b039092168252519081900360200190f35b6102a56004803603606081101561010d57600080fd5b810190602081018135600160201b81111561012757600080fd5b82018360208201111561013957600080fd5b803590602001918460018302840111600160201b8311171561015a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156101ac57600080fd5b8201836020820111156101be57600080fd5b803590602001918460018302840111600160201b831117156101df57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561023157600080fd5b82018360208201111561024357600080fd5b803590602001918460018302840111600160201b8311171561026457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610845945050505050565b604080519115158252519081900360200190f35b6102a5600480360360408110156102cf57600080fd5b810190602081018135600160201b8111156102e957600080fd5b8201836020820111156102fb57600080fd5b803590602001918460018302840111600160201b8311171561031c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460018302840111600160201b831117156103a157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6102a561133d565b6102a56114bc565b6103fa6114cc565b005b6102a56004803603602081101561041257600080fd5b50356001600160a01b031661155d565b6102a561166e565b6100db6117e3565b6102a56117f2565b6102a56004803603608081101561045057600080fd5b6001600160401b038235169190810190604081016020820135600160201b81111561047a57600080fd5b82018360208201111561048c57600080fd5b803590602001918460018302840111600160201b831117156104ad57600080fd5b919390929091602081019035600160201b8111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460018302840111600160201b831117156104fd57600080fd5b919390929091602081019035600160201b81111561051a57600080fd5b82018360208201111561052c57600080fd5b803590602001918460018302840111600160201b8311171561054d57600080fd5b509092509050611816565b6102a5600480360360a081101561056e57600080fd5b810190602081018135600160201b81111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111600160201b831117156105bb57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561060d57600080fd5b82018360208201111561061f57600080fd5b803590602001918460018302840111600160201b8311171561064057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561069257600080fd5b8201836020820111156106a457600080fd5b803590602001918460018302840111600160201b831117156106c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561071757600080fd5b82018360208201111561072957600080fd5b803590602001918460018302840111600160201b8311171561074a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611f55945050505050565b6103fa6004803603602081101561082657600080fd5b50356001600160a01b0316612636565b6001546001600160a01b031681565b60008054600160a01b900460ff1615610898576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108a0614778565b6108a985612689565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b15801561090057600080fd5b505afa158015610914573d6000803e3d6000fd5b505050506040513d602081101561092a57600080fd5b5051606084015163ffffffff91821692501681106109795760405162461bcd60e51b815260040180806020018281038252603e815260200180614993603e913960400191505060405180910390fd5b6101408301516bffffffffffffffffffffffff19166109c95760405162461bcd60e51b81526004018080602001828103825260258152602001806148656025913960400191505060405180910390fd5b6060610af7836001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b158015610a0757600080fd5b505afa158015610a1b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610a4457600080fd5b8101908080516040519392919084600160201b821115610a6357600080fd5b908301906020820185811115610a7857600080fd5b8251600160201b811182820188101715610a9157600080fd5b82525081516020918201929091019080838360005b83811015610abe578181015183820152602001610aa6565b50505050905090810190601f168015610aeb5780820380516001836020036101000a031916815260200191505b506040525050506127a8565b8051909150610b12898884600360001986015b04850361285b565b610b63576040805162461bcd60e51b815260206004820152601860248201527f566572696679207369676e6174757265206661696c6564210000000000000000604482015290519081900360640190fd5b60006060610b708a612a60565b91509150816001600160601b0319168761014001516001600160601b03191614610bd7576040805162461bcd60e51b815260206004820152601360248201527213995e1d109bdbdad95c9cc81a5b1b1959d85b606a1b604482015290519081900360640190fd5b856001600160a01b0316638a8bd17f88606001516040518263ffffffff1660e01b8152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d6020811015610c5757600080fd5b5051610c945760405162461bcd60e51b815260040180806020018281038252602d815260200180614aad602d913960400191505060405180910390fd5b856001600160a01b03166341973cd9610cac83612b3f565b6040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cf8578181015183820152602001610ce0565b50505050905090810190601f168015610d255780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b158015610d4457600080fd5b505af1158015610d58573d6000803e3d6000fd5b505050506040513d6020811015610d6e57600080fd5b5051610dab5760405162461bcd60e51b815260040180806020018281038252603b8152602001806149fc603b913960400191505060405180910390fd5b7fe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b69087606001518c604051808363ffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e1b578181015183820152602001610e03565b50505050905090810190601f168015610e485780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15060019a9950505050505050505050565b60008054600160a01b900460ff1615610eba576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60015460408051631a75201d60e21b815290516001600160a01b039092169182916369d48074916004808301926000929190829003018186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610f3d57600080fd5b8101908080516040519392919084600160201b821115610f5c57600080fd5b908301906020820185811115610f7157600080fd5b8251600160201b811182820188101715610f8a57600080fd5b82525081516020918201929091019080838360005b83811015610fb7578181015183820152602001610f9f565b50505050905090810190601f168015610fe45780820380516001836020036101000a031916815260200191505b506040525050505160001461102a5760405162461bcd60e51b8152600401808060200182810382526038815260200180614b926038913960400191505060405180910390fd5b611032614778565b61103b85612689565b90506000606061104a86612a60565b91509150816001600160601b0319168361014001516001600160601b031916146110b1576040805162461bcd60e51b815260206004820152601360248201527213995e1d109bdbdad95c9cc81a5b1b1959d85b606a1b604482015290519081900360640190fd5b836001600160a01b0316638a8bd17f84606001516040518263ffffffff1660e01b8152600401808263ffffffff1663ffffffff168152602001915050602060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050506040513d602081101561113157600080fd5b505161116e5760405162461bcd60e51b81526004018080602001828103825260438152602001806148fc6043913960600191505060405180910390fd5b836001600160a01b03166341973cd961118683612b3f565b6040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111d25781810151838201526020016111ba565b50505050905090810190601f1680156111ff5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b50516112855760405162461bcd60e51b8152600401808060200182810382526043815260200180614bca6043913960600191505060405180910390fd5b7ff01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde836060015188604051808363ffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112f55781810151838201526020016112dd565b50505050905090810190601f1680156113225780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15060019695505050505050565b60006113476117f2565b611386576040805162461bcd60e51b81526020600482018190526024820152600080516020614a37833981519152604482015290519081900360640190fd5b61138e6114bc565b1561139b5761139b612c41565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b1580156113e157600080fd5b505afa1580156113f5573d6000803e3d6000fd5b505050506040513d602081101561140b57600080fd5b5051156114b457806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561144d57600080fd5b505af1158015611461573d6000803e3d6000fd5b505050506040513d602081101561147757600080fd5b50516114b45760405162461bcd60e51b815260040180806020018281038252602981526020018061488a6029913960400191505060405180910390fd5b600191505090565b600054600160a01b900460ff1690565b6114d46117f2565b611513576040805162461bcd60e51b81526020600482018190526024820152600080516020614a37833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008054600160a01b900460ff166115b3576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6115bb6117f2565b6115fa576040805162461bcd60e51b81526020600482018190526024820152600080516020614a37833981519152604482015290519081900360640190fd5b6001546040805163f2fde38b60e01b81526001600160a01b03858116600483015291519190921691829163f2fde38b9160248082019260009290919082900301818387803b15801561164b57600080fd5b505af115801561165f573d6000803e3d6000fd5b5050505060019150505b919050565b60006116786117f2565b6116b7576040805162461bcd60e51b81526020600482018190526024820152600080516020614a37833981519152604482015290519081900360640190fd5b6116bf6114bc565b6116cb576116cb612ce9565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561171157600080fd5b505afa158015611725573d6000803e3d6000fd5b505050506040513d602081101561173b57600080fd5b50516114b457806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561177c57600080fd5b505af1158015611790573d6000803e3d6000fd5b505050506040513d60208110156117a657600080fd5b50516114b45760405162461bcd60e51b815260040180806020018281038252602781526020018061483e6027913960400191505060405180910390fd5b6000546001600160a01b031690565b600080546001600160a01b0316611807612d73565b6001600160a01b031614905090565b60008054600160a01b900460ff1615611869576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60015460408051600162c2db5f60e01b0319815290516001600160a01b0390921691600091839163ff3d24a191600480820192602092909190829003018186803b1580156118b657600080fd5b505afa1580156118ca573d6000803e3d6000fd5b505050506040513d60208110156118e057600080fd5b5051905060606118ef82612d77565b905060606118fc82612df0565b611a2a6002308560405160200180836001600160a01b03166001600160a01b031660601b815260140182805190602001908083835b602083106119505780518252601f199092019160209182019101611931565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106119b45780518252601f199092019160209182019101611995565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156119f3573d6000803e3d6000fd5b5050506040513d6020811015611a0857600080fd5b5051604080516020818101939093528151808203909301835281019052612df0565b611a3b611a3633612eb6565b612df0565b611a448f612ed1565b611a838f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612df092505050565b611ac28e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612df092505050565b611b018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612df092505050565b6040516020018088805190602001908083835b60208310611b335780518252601f199092019160209182019101611b14565b51815160209384036101000a60001901801990921691161790528a5191909301928a0191508083835b60208310611b7b5780518252601f199092019160209182019101611b5c565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b60208310611bc35780518252601f199092019160209182019101611ba4565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b60208310611c0b5780518252601f199092019160209182019101611bec565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b60208310611c535780518252601f199092019160209182019101611c34565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310611ce35780518252601f199092019160209182019101611cc4565b6001836020036101000a0380198251168184511680821785525050505050509050019750505050505050506040516020818303038152906040529050836001600160a01b0316634c3ccf6482805190602001206040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015611d6c57600080fd5b505af1158015611d80573d6000803e3d6000fd5b505050506040513d6020811015611d9657600080fd5b5051611dd35760405162461bcd60e51b8152600401808060200182810382526030815260200180614c516030913960400191505060405180910390fd5b326001600160a01b03167f6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be8848383338f8f8f876040518080602001876001600160a01b03166001600160a01b03168152602001866001600160401b03166001600160401b03168152602001806020018060200184810384528a818151815260200191508051906020019080838360005b83811015611e79578181015183820152602001611e61565b50505050905090810190601f168015611ea65780820380516001836020036101000a031916815260200191505b5084810383528681526020018787808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015611f02578181015183820152602001611eea565b50505050905090810190601f168015611f2f5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a25060019b9a5050505050505050505050565b60008054600160a01b900460ff1615611fa8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611fb0614778565b611fb986612689565b90506000600160009054906101000a90046001600160a01b031690506060612013826001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b158015610a0757600080fd5b90506000826001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b15801561205057600080fd5b505afa158015612064573d6000803e3d6000fd5b505050506040513d602081101561207a57600080fd5b50518251606086015163ffffffff928316935090911682116120e8576120a88a888560036000198601610b0a565b6120e35760405162461bcd60e51b815260040180806020018281038252602a815260200180614cf1602a913960400191505060405180910390fd5b6121c2565b6120fa88888560036000198601610b0a565b6121355760405162461bcd60e51b8152600401808060200182810382526038815260200180614ada6038913960400191505060405180910390fd5b61213d614778565b61214689612689565b905060606121598b836101000151612f14565b90506121648161303a565b61216d8d61309a565b146121bf576040805162461bcd60e51b815260206004820152601b60248201527f766572696679206865616465722070726f6f66206661696c6564210000000000604482015290519081900360640190fd5b50505b60606121d28c8760e00151612f14565b90506121dc6147d3565b6121e5826131cb565b9050856001600160a01b0316630586763c8260200151612208846000015161303a565b6040518363ffffffff1660e01b815260040180836001600160401b03166001600160401b031681526020018281526020019250505060206040518083038186803b15801561225557600080fd5b505afa158015612269573d6000803e3d6000fd5b505050506040513d602081101561227f57600080fd5b5051156122bd5760405162461bcd60e51b8152600401808060200182810382526022815260200180614c2f6022913960400191505060405180910390fd5b856001600160a01b031663e90bfdcf82602001516122de846000015161303a565b6040518363ffffffff1660e01b815260040180836001600160401b03166001600160401b0316815260200182815260200192505050602060405180830381600087803b15801561232d57600080fd5b505af1158015612341573d6000803e3d6000fd5b505050506040513d602081101561235757600080fd5b50516123aa576040805162461bcd60e51b815260206004820181905260248201527f536176652063726f7373636861696e207478206578697374206661696c656421604482015290519081900360640190fd5b6040810151606001516001600160401b03166002146123fa5760405162461bcd60e51b815260040180806020018281038252602a815260200180614c81602a913960400191505060405180910390fd5b600061240d8260400151608001516132a7565b905061243881836040015160a00151846040015160c0015185604001516040015186602001516132f1565b612489576040805162461bcd60e51b815260206004820152601d60248201527f457865637574652043726f7373436861696e205478206661696c656421000000604482015290519081900360640190fd5b7f8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae8260200151836040015160800151846000015185604001516000015160405180856001600160401b03166001600160401b03168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561252357818101518382015260200161250b565b50505050905090810190601f1680156125505780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b8381101561258357818101518382015260200161256b565b50505050905090810190601f1680156125b05780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156125e35781810151838201526020016125cb565b50505050905090810190601f1680156126105780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15060019d9c50505050505050505050505050565b61263e6117f2565b61267d576040805162461bcd60e51b81526020600482018190526024820152600080516020614a37833981519152604482015290519081900360640190fd5b612686816136c5565b50565b612691614778565b612699614778565b60006126a58482613765565b63ffffffff909116835290506126bb848261380d565b6001600160401b03909116602084015290506126d784826138b3565b60a084019190915290506126eb84826138b3565b60c084019190915290506126ff84826138b3565b60e0840191909152905061271384826138b3565b61010084019190915290506127288482613765565b63ffffffff909116604084015290506127418482613765565b63ffffffff9091166060840152905061275a848261380d565b6001600160401b0390911660808401529050612776848261392d565b610120840191909152905061278b8482613a00565b506bffffffffffffffffffffffff19166101408301525092915050565b60606000806127b7848261380d565b80935081925050506060816001600160401b03166040519080825280602002602001820160405280156127f4578160200160208202803883390190505b509050606060005b836001600160401b031681101561285057612817878661392d565b95509150612824826132a7565b83828151811061283057fe5b6001600160a01b03909216602092830291909101909101526001016127fc565b509095945050505050565b6000806128678661309a565b905060008090506000604187518161287b57fe5b0490506060816040519080825280602002602001820160405280156128aa578160200160208202803883390190505b50905060008080805b85811015612a44576128d26128cd8d604184026020613a68565b61303a565b93506128e96128cd8d604184026020016020613a68565b92508b60418202604001815181106128fd57fe5b602001015160f81c60f81b60f81c601b0191506001600289604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106129635780518252601f199092019160209182019101612944565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156129a2573d6000803e3d6000fd5b5050506040513d60208110156129b757600080fd5b5051604080516000815260208181018084529390935260ff8616818301526060810188905260808101879052905160a08083019392601f198301929081900390910190855afa158015612a0e573d6000803e3d6000fd5b50505060206040510351858281518110612a2457fe5b6001600160a01b03909216602092830291909101909101526001016128b3565b50612a508a858b613ae8565b9c9b505050505050505050505050565b600060606043835181612a6f57fe5b0615612ac2576040805162461bcd60e51b815260206004820152601b60248201527f5f7075624b65794c697374206c656e67746820696c6c6567616c210000000000604482015290519081900360640190fd5b60006043845181612acf57fe5b0490506001811015612b21576040805162461bcd60e51b8152602060048201526016602482015275746f6f2073686f7274205f7075624b65794c6973742160501b604482015290519081900360640190fd5b612b35816003600019820104830386613b89565b9250925050915091565b805160609081612b4e82612ed1565b905060005b82811015612c395781612b7b611a36878481518110612b6e57fe5b6020026020010151612eb6565b6040516020018083805190602001908083835b60208310612bad5780518252601f199092019160209182019101612b8e565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612bf55780518252601f199092019160209182019101612bd6565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405291508080600101915050612b53565b509392505050565b600054600160a01b900460ff16612c96576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612ccc612d73565b604080516001600160a01b039092168252519081900360200190a1565b600054600160a01b900460ff1615612d3b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ccc5b3390565b60606001600160ff1b03821115612dd5576040805162461bcd60e51b815260206004820152601760248201527f56616c75652065786365656473207468652072616e6765000000000000000000604482015290519081900360640190fd5b60405190506020815281602082015260408101604052919050565b8051606090612dfe81613ed6565b836040516020018083805190602001908083835b60208310612e315780518252601f199092019160209182019101612e12565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612e795780518252601f199092019160209182019101612e5a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b604080516014815260609290921b6020830152818101905290565b6040516008808252606091906000601f5b82821015612f045785811a826020860101536001919091019060001901612ee2565b5050506028810160405292915050565b6060600081612f23858361392d565b925090506000612f328261401c565b9050600060218488510381612f4357fe5b049050600080805b83811015612fee57612f5d8a886140c3565b97509150612f6b8a886138b3565b975092506001600160f81b03198216612f8f57612f888386614141565b9450612fe6565b600160f81b6001600160f81b031983161415612faf57612f888584614141565b60405162461bcd60e51b815260040180806020018281038252602e815260200180614a57602e913960400191505060405180910390fd5b600101612f4b565b5087841461302d5760405162461bcd60e51b81526004018080602001828103825260318152602001806149626031913960400191505060405180910390fd5b5092979650505050505050565b60008151602014613092576040805162461bcd60e51b815260206004820152601760248201527f6279746573206c656e677468206973206e6f742033322e000000000000000000604482015290519081900360640190fd5b506020015190565b6000600280836040518082805190602001908083835b602083106130cf5780518252601f1990920191602091820191016130b0565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561310e573d6000803e3d6000fd5b5050506040513d602081101561312357600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b6020831061316f5780518252601f199092019160209182019101613150565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156131ae573d6000803e3d6000fd5b5050506040513d60208110156131c357600080fd5b505192915050565b6131d36147d3565b6131db6147d3565b60006131e7848261392d565b90835290506131f6848261380d565b6001600160401b03909116602084015290506132106147f7565b61321a858361392d565b9082529150613229858361392d565b6020830191909152915061323d858361392d565b60408301919091529150613251858361380d565b6001600160401b039091166060830152915061326d858361392d565b60808301919091529150613281858361392d565b60a08301919091529150613295858361392d565b5060c082015260408301525092915050565b600081516014146132e95760405162461bcd60e51b81526004018080602001828103825260238152602001806148b36023913960400191505060405180910390fd5b506014015190565b60006132fc86614205565b6133375760405162461bcd60e51b8152600401808060200182810382526028815260200180614a856028913960400191505060405180910390fd5b60606000876001600160a01b0316876040516020018082805190602001908083835b602083106133785780518252601f199092019160209182019101613359565b51815160001960209485036101000a01908116901991909116179052732862797465732c62797465732c75696e7436342960601b9390910192835260408051600b19818603018152601485019091528051908201206001600160401b038b1660748501526060603485019081528d5160948601528d519196508d95508c948c945090928392605483019260b4019188019080838360005b8381101561342757818101518382015260200161340f565b50505050905090810190601f1680156134545780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561348757818101518382015260200161346f565b50505050905090810190601f1680156134b45780820380516001836020036101000a031916815260200191505b509550505050505060405160208183030381529060405260405160200180836001600160e01b0319166001600160e01b031916815260040182805190602001908083835b602083106135175780518252601f1990920191602091820191016134f8565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b6020831061357b5780518252601f19909201916020918201910161355c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146135dd576040519150601f19603f3d011682016040523d82523d6000602084013e6135e2565b606091505b50925090506001811515146136285760405162461bcd60e51b815260040180806020018281038252602b8152602001806149d1602b913960400191505060405180910390fd5b81516136655760405162461bcd60e51b8152600401808060200182810382526027815260200180614b126027913960400191505060405180910390fd5b600061367283601f614241565b5090506001811515146136b65760405162461bcd60e51b8152600401808060200182810382526037815260200180614b396037913960400191505060405180910390fd5b50600198975050505050505050565b6001600160a01b03811661370a5760405162461bcd60e51b81526004018080602001828103825260268152602001806148d66026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000808351836004011115801561377e57508260040183105b6137b95760405162461bcd60e51b8152600401808060200182810382526022815260200180614cab6022913960400191505060405180910390fd5b600060405160046000600182038760208a0101515b838310156137ee5780821a838601536001830192506001820391506137ce565b50505080820160405260200390035192505050600482015b9250929050565b6000808351836008011115801561382657508260080183105b6138615760405162461bcd60e51b8152600401808060200182810382526022815260200180614c0d6022913960400191505060405180910390fd5b600060405160086000600182038760208a0101515b838310156138965780821a83860153600183019250600182039150613876565b505050808201604052602003900351956008949094019450505050565b600080835183602001111580156138cc57508260200183105b61391d576040805162461bcd60e51b815260206004820181905260248201527f4e657874486173682c206f66667365742065786365656473206d6178696d756d604482015290519081900360640190fd5b5050602091810182015192910190565b606060008061393c8585614332565b865190955090915081850111801590613956575080840184105b6139915760405162461bcd60e51b8152600401808060200182810382526024815260200180614ccd6024913960400191505060405180910390fd5b6060811580156139ac576040519150602082016040526139f6565b6040519150601f8316801560200281840101848101888315602002848c0101015b818310156139e55780518352602092830192016139cd565b5050848452601f01601f1916604052505b5095930193505050565b60008083518360140111158015613a1957508260140183105b613a545760405162461bcd60e51b815260040180806020018281038252602381526020018061493f6023913960400191505060405180910390fd5b505081810160200151601482019250929050565b606081830184511015613a7a57600080fd5b606082158015613a9557604051915060208201604052613adf565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613ace578051835260209283019201613ab6565b5050858452601f01601f1916604052505b50949350505050565b600080805b8451811015613b7d5760005b8651811015613b7457868181518110613b0e57fe5b60200260200101516001600160a01b0316868381518110613b2b57fe5b60200260200101516001600160a01b03161415613b6c578280600101935050868181518110613b5657fe5b6020026020010160006001600160a01b03168152505b600101613af9565b50600101613aed565b50909111159392505050565b6000606080613b978661454b565b9050606086604051908082528060200260200182016040528015613bc5578160200160208202803883390190505b50905060006060815b89811015613ceb57613be588604383026043613a68565b915084613bf4611a368461458e565b6040516020018083805190602001908083835b60208310613c265780518252601f199092019160209182019101613c07565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613c6e5780518252601f199092019160209182019101613c4f565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529450613cb28260036040613a68565b8051906020012092508260001c848281518110613ccb57fe5b6001600160a01b0390921660209283029190910190910152600101613bce565b5083613cf68961454b565b6040516020018083805190602001908083835b60208310613d285780518252601f199092019160209182019101613d09565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613d705780518252601f199092019160209182019101613d51565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529350600060036002866040518082805190602001908083835b60208310613ddd5780518252601f199092019160209182019101613dbe565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015613e1c573d6000803e3d6000fd5b5050506040513d6020811015613e3157600080fd5b50516040805160208181019390935281518082038401815290820191829052805190928291908401908083835b60208310613e7d5780518252601f199092019160209182019101613e5e565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015613ebc573d6000803e3d6000fd5b50506040515160601b9b949a509398505050505050505050565b606060fd826001600160401b03161015613efa57613ef38261467c565b9050611669565b61ffff826001600160401b031611613fd857613f1960fd60f81b614698565b613f228361454b565b6040516020018083805190602001908083835b60208310613f545780518252601f199092019160209182019101613f35565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613f9c5780518252601f199092019160209182019101613f7d565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050611669565b63ffffffff826001600160401b03161161400257613ff9607f60f91b614698565b613f22836146ac565b6140136001600160f81b0319614698565b613f2283612ed1565b6040516000602080830182815284519293600293859387939260210191908401908083835b602083106140605780518252601f199092019160209182019101614041565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083836020831061316f5780518252601f199092019160209182019101613150565b600080835183600101111580156140dc57508260010183105b61412d576040805162461bcd60e51b815260206004820181905260248201527f4e657874427974652c204f66667365742065786365656473206d6178696d756d604482015290519081900360640190fd5b505081810160200151600182019250929050565b60408051600160f81b60208083019190915260218201859052604180830185905283518084039091018152606190920192839052815160009360029392909182918401908083835b602083106141a85780518252601f199092019160209182019101614189565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156141e7573d6000803e3d6000fd5b5050506040513d60208110156141fc57600080fd5b50519392505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906142395750808214155b949350505050565b6000808351836001011115801561425a57508260010183105b6142a2576040805162461bcd60e51b815260206004820152601460248201527313d9999cd95d08195e18d959591cc81b1a5b5a5d60621b604482015290519081900360640190fd5b838301602001516000600160f81b6001600160f81b0319831614156142c957506001614324565b6001600160f81b031982166142e057506000614324565b6040805162461bcd60e51b81526020600482015260146024820152732732bc3a2137b7b6103b30b63ab29032b93937b960611b604482015290519081900360640190fd5b956001949094019450505050565b600080600061434185856140c3565b94509050600060fd60f81b6001600160f81b0319831614156143df5761436786866146ef565b955061ffff16905060fd8110801590614382575061ffff8111155b6143d3576040805162461bcd60e51b815260206004820152601f60248201527f4e65787455696e7431362c2076616c7565206f7574736964652072616e676500604482015290519081900360640190fd5b92508391506138069050565b607f60f91b6001600160f81b03198316141561446f576143ff8686613765565b955063ffffffff16905061ffff8111801561441e575063ffffffff8111155b6143d3576040805162461bcd60e51b815260206004820181905260248201527f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765604482015290519081900360640190fd5b6001600160f81b031980831614156144f05761448b868661380d565b95506001600160401b0316905063ffffffff81116143d3576040805162461bcd60e51b815260206004820181905260248201527f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765604482015290519081900360640190fd5b5060f881901c60fd81106143d3576040805162461bcd60e51b815260206004820181905260248201527f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765604482015290519081900360640190fd5b6040516002808252606091906000601f5b8282101561457e5785811a82602086010153600191909101906000190161455c565b5050506022810160405292915050565b60606043825110156145e7576040805162461bcd60e51b815260206004820152601760248201527f6b6579206c656e67676820697320746f6f2073686f7274000000000000000000604482015290519081900360640190fd5b6145f48260006023613a68565b905060028260428151811061460557fe5b016020015160f81c8161461457fe5b0660ff166000141561464e57600260f81b8160028151811061463257fe5b60200101906001600160f81b031916908160001a905350611669565b600360f81b8160028151811061466057fe5b60200101906001600160f81b031916908160001a905350919050565b604080516001815260f89290921b602083015260218201905290565b60606146a68260f81c61467c565b92915050565b6040516004808252606091906000601f5b828210156146df5785811a8260208601015360019190910190600019016146bd565b5050506024810160405292915050565b6000808351836002011115801561470857508260020183105b6147435760405162461bcd60e51b8152600401808060200182810382526022815260200180614b706022913960400191505060405180910390fd5b6000604051846020870101518060011a82538060001a6001830153506002818101604052601d19909101519694019450505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082015261014081019190915290565b60408051606080820183528152600060208201529081016147f26147f7565b905290565b6040518060e0016040528060608152602001606081526020016060815260200160006001600160401b03168152602001606081526020016060815260200160608152509056fe70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c6564546865206e657874426f6f6b4b6565706572206f662068656164657220697320656d707479756e70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c65646279746573206c656e67746820646f6573206e6f74206d6174636820616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573735361766520506f6c7920636861696e2063757272656e742065706f63682073746172742068656967687420746f204461746120636f6e7472616374206661696c6564214e657874427974657332302c206f66667365742065786365656473206d6178696d756d6d65726b6c6550726f76652c2065787065637420726f6f74206973206e6f7420657175616c2061637475616c20726f6f7454686520686569676874206f6620686561646572206973206c6f776572207468616e2063757272656e742065706f6368207374617274206865696768742145746843726f7373436861696e2063616c6c20627573696e65737320636f6e7472616374206661696c65645361766520506f6c7920636861696e20626f6f6b206b65657065727320627974657320746f204461746120636f6e7472616374206661696c6564214f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726d65726b6c6550726f76652c204e6578744279746520666f7220706f736974696f6e20696e666f206661696c65645468652070617373656420696e2061646472657373206973206e6f74206120636f6e74726163742153617665204d43204c617465737448656967687420746f204461746120636f6e7472616374206661696c65642156657269667920706f6c7920636861696e2063757272656e742065706f636820686561646572207369676e6174757265206661696c6564214e6f2072657475726e2076616c75652066726f6d20627573696e65737320636f6e74726163742145746843726f7373436861696e2063616c6c20627573696e65737320636f6e74726163742072657475726e206973206e6f7420747275654e65787455696e7431362c206f66667365742065786365656473206d6178696d756d45746843726f7373436861696e4461746120636f6e74726163742068617320616c7265616479206265656e20696e697469616c697a6564215361766520506f6c7920636861696e2063757272656e742065706f636820626f6f6b206b65657065727320746f204461746120636f6e7472616374206661696c6564214e65787455696e7436342c206f66667365742065786365656473206d6178696d756d746865207472616e73616374696f6e20686173206265656e20657865637574656421536176652065746854784861736820627920696e64657820746f204461746120636f6e7472616374206661696c65642154686973205478206973206e6f742061696d696e6720617420457468657265756d206e6574776f726b214e65787455696e7433322c206f66667365742065786365656473206d6178696d756d4e65787456617242797465732c206f66667365742065786365656473206d6178696d756d56657269667920706f6c7920636861696e20686561646572207369676e6174757265206661696c656421a265627a7a723158201a1c2cf3aa3f5b3b46949d355ee0bacecadc3d049614e5ee0d9a0b26d37b43df64736f6c63430005110032", -} - // EthCrossChainManagerABI is the input ABI used to generate the binding from. -// Deprecated: Use EthCrossChainManagerMetaData.ABI instead. -var EthCrossChainManagerABI = EthCrossChainManagerMetaData.ABI +const EthCrossChainManagerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_eccd\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"fromContractWhiteList\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"contractMethodWhiteList\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"ChangeBookKeeperEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"txId\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proxyOrAssetContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawdata\",\"type\":\"bytes\"}],\"name\":\"CrossChainEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"InitGenesisBlockEvent\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fromChainID\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"crossChainTxHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"fromChainTxHash\",\"type\":\"bytes\"}],\"name\":\"VerifyHeaderAndExecuteTxEvent\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sigList\",\"type\":\"bytes\"}],\"name\":\"changeBookKeeper\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"}],\"name\":\"initGenesisBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"curRawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerSig\",\"type\":\"bytes\"}],\"name\":\"verifyHeaderAndExecuteTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"whiteListContractMethodMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whiteListFromContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" -// Deprecated: Use EthCrossChainManagerMetaData.Sigs instead. // EthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. -var EthCrossChainManagerFuncSigs = EthCrossChainManagerMetaData.Sigs +var EthCrossChainManagerFuncSigs = map[string]string{ + "00ba1694": "EthCrossChainDataAddress()", + "9a8a0592": "chainId()", + "29dcf4ab": "changeBookKeeper(bytes,bytes,bytes)", + "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", + "34a773eb": "initGenesisBlock(bytes,bytes)", + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "715018a6": "renounceOwnership()", + "6f31031d": "setChainId(uint64)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", + "d450e04c": "verifyHeaderAndExecuteTx(bytes,bytes,bytes,bytes,bytes)", + "ba1c9bc7": "whiteListContractMethodMap(address,bytes)", + "73f53ba4": "whiteListFromContract(address)", +} // EthCrossChainManagerBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use EthCrossChainManagerMetaData.Bin instead. -var EthCrossChainManagerBin = EthCrossChainManagerMetaData.Bin +var EthCrossChainManagerBin = "0x60806040523480156200001157600080fd5b5060405162004e0a38038062004e0a833981016040819052620000349162000436565b838360006200004b6001600160e01b036200021216565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19168155600180546001600160401b03909316600160a01b02600160a01b600160e01b03196001600160a01b039095166001600160a01b03199094169390931793909316919091179091555b825181101562000142576001600260008584815181106200010757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620000ea565b5060005b81518110156200020757600060608383815181106200016157fe5b60200260200101518060200190516200017e9190810190620003df565b909250905060005b8151811015620001fb576001600160a01b0383166000908152600360205260409020825160019190849084908110620001bb57fe5b6020026020010151604051620001d2919062000505565b908152604051908190036020019020805491151560ff1990921691909117905560010162000186565b50505060010162000146565b505050505062000609565b3390565b80516200022381620005e4565b92915050565b600082601f8301126200023b57600080fd5b8151620002526200024c8262000541565b6200051a565b915081818352602084019350602081019050838560208402820111156200027857600080fd5b60005b83811015620002a8578162000291888262000216565b84525060209283019291909101906001016200027b565b5050505092915050565b600082601f830112620002c457600080fd5b8151620002d56200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200030088826200037c565b8452506020928301929190910190600101620002e7565b600082601f8301126200032957600080fd5b81516200033a6200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200036588826200037c565b84525060209283019291909101906001016200034c565b600082601f8301126200038e57600080fd5b81516200039f6200024c8262000562565b91508082526020830160208301858383011115620003bc57600080fd5b620003c9838284620005b1565b50505092915050565b80516200022381620005fe565b60008060408385031215620003f357600080fd5b600062000401858562000216565b92505060208301516001600160401b038111156200041e57600080fd5b6200042c85828601620002b2565b9150509250929050565b600080600080608085870312156200044d57600080fd5b60006200045b878762000216565b94505060206200046e87828801620003d2565b93505060408501516001600160401b038111156200048b57600080fd5b620004998782880162000229565b92505060608501516001600160401b03811115620004b657600080fd5b620004c48782880162000317565b91505092959194509250565b6000620004dd826200058a565b620004e981856200058e565b9350620004fb818560208601620005b1565b9290920192915050565b6000620005138284620004d0565b9392505050565b6040518181016001600160401b03811182821017156200053957600080fd5b604052919050565b60006001600160401b038211156200055857600080fd5b5060209081020190565b60006001600160401b038211156200057957600080fd5b506020601f91909101601f19160190565b5190565b919050565b60006001600160a01b03821662000223565b6001600160401b031690565b60005b83811015620005ce578181015183820152602001620005b4565b83811115620005de576000848401525b50505050565b620005ef8162000593565b8114620005fb57600080fd5b50565b620005ef81620005a5565b6147f180620006196000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c80637e724ff3116100a25780639a8a0592116100715780639a8a0592146101cb578063ba1c9bc7146101e0578063bd5cf625146101f3578063d450e04c14610206578063f2fde38b146102195761010a565b80637e724ff3146101a05780638456cb59146101b35780638da5cb5b146101bb5780638f32d59b146101c35761010a565b80635c975abb116100de5780635c975abb146101685780636f31031d14610170578063715018a61461018357806373f53ba41461018d5761010a565b8062ba16941461010f57806329dcf4ab1461012d57806334a773eb1461014d5780633f4ba83a14610160575b600080fd5b61011761022c565b6040516101249190614194565b60405180910390f35b61014061013b366004612fd7565b61023b565b60405161012491906141b0565b61014061015b366004612fa2565b610609565b6101406108bc565b610140610a11565b61014061017e36600461316d565b610a21565b61018b610a9b565b005b61014061019b366004612ec3565b610b09565b6101406101ae366004612ec3565b610b1e565b610140610bd9565b610117610d24565b610140610d33565b6101d3610d57565b60405161012491906145d4565b6101406101ee366004612ee1565b610d6d565b61014061020136600461318b565b610d9e565b610140610214366004613068565b611127565b61018b610227366004612ec3565b6115de565b6001546001600160a01b031681565b60008054600160a01b900460ff161561026f5760405162461bcd60e51b8152600401610266906143a6565b60405180910390fd5b610277612cec565b6102808561160e565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156102d757600080fd5b505afa1580156102eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061030f919081019061314f565b63ffffffff169050806001600160401b0316836060015163ffffffff16116103495760405162461bcd60e51b8152600401610266906143d6565b6101408301516bffffffffffffffffffffffff191661037a5760405162461bcd60e51b8152600401610266906142e6565b60606103f9836001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f49190810190612f6e565b61172d565b8051909150610414898884600360001986015b0485036117e0565b6104305760405162461bcd60e51b815260040161026690614376565b6000606061043d8a6119e3565b91509150816001600160601b0319168761014001516001600160601b031916146104795760405162461bcd60e51b8152600401610266906143c6565b6060870151604051638a8bd17f60e01b81526001600160a01b03881691638a8bd17f916104a991906004016145a6565b602060405180830381600087803b1580156104c357600080fd5b505af11580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104fb9190810190612f32565b6105175760405162461bcd60e51b815260040161026690614476565b856001600160a01b03166341973cd961052f83611a5f565b6040518263ffffffff1660e01b815260040161054b9190614201565b602060405180830381600087803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061059d9190810190612f32565b6105b95760405162461bcd60e51b8152600401610266906143f6565b7fe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b69087606001518c6040516105ee9291906145b4565b60405180910390a160019750505050505050505b9392505050565b60008054600160a01b900460ff16156106345760405162461bcd60e51b8152600401610266906143a6565b60015460408051631a75201d60e21b815290516001600160a01b039092169182916369d48074916004808301926000929190829003018186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b69190810190612f6e565b51156106d45760405162461bcd60e51b8152600401610266906144f6565b6106dc612cec565b6106e58561160e565b9050600060606106f4866119e3565b91509150816001600160601b0319168361014001516001600160601b031916146107305760405162461bcd60e51b8152600401610266906143c6565b6060830151604051638a8bd17f60e01b81526001600160a01b03861691638a8bd17f9161076091906004016145a6565b602060405180830381600087803b15801561077a57600080fd5b505af115801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b29190810190612f32565b6107ce5760405162461bcd60e51b815260040161026690614346565b836001600160a01b03166341973cd96107e683611a5f565b6040518263ffffffff1660e01b81526004016108029190614201565b602060405180830381600087803b15801561081c57600080fd5b505af1158015610830573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108549190810190612f32565b6108705760405162461bcd60e51b815260040161026690614516565b7ff01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde8360600151886040516108a59291906145b4565b60405180910390a160019450505050505b92915050565b60006108c6610d33565b6108e25760405162461bcd60e51b815260040161026690614416565b6108ea610a11565b156108f7576108f7611ace565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561093d57600080fd5b505afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109759190810190612f32565b15610a0957806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109ed9190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142f6565b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff16610a4b5760405162461bcd60e51b8152600401610266906142a6565b610a53610d33565b610a6f5760405162461bcd60e51b815260040161026690614416565b506001805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021781555b919050565b610aa3610d33565b610abf5760405162461bcd60e51b815260040161026690614416565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60026020526000908152604090205460ff1681565b60008054600160a01b900460ff16610b485760405162461bcd60e51b8152600401610266906142a6565b610b50610d33565b610b6c5760405162461bcd60e51b815260040161026690614416565b60015460405163f2fde38b60e01b81526001600160a01b0390911690819063f2fde38b90610b9e908690600401614194565b600060405180830381600087803b158015610bb857600080fd5b505af1158015610bcc573d6000803e3d6000fd5b5060019695505050505050565b6000610be3610d33565b610bff5760405162461bcd60e51b815260040161026690614416565b610c07610a11565b610c1357610c13611b44565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b158015610c5957600080fd5b505afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c919190810190612f32565b610a0957806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610cd057600080fd5b505af1158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d089190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142c6565b6000546001600160a01b031690565b600080546001600160a01b0316610d48611ba6565b6001600160a01b031614905090565b600154600160a01b90046001600160401b031681565b6003602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b60008054600160a01b900460ff1615610dc95760405162461bcd60e51b8152600401610266906143a6565b3360009081526002602052604090205460ff16610df85760405162461bcd60e51b815260040161026690614396565b60015460408051600162c2db5f60e01b0319815290516001600160a01b0390921691600091839163ff3d24a191600480820192602092909190829003018186803b158015610e4557600080fd5b505afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e7d9190810190612f50565b90506060610e8a82611baa565b90506060610e9782611bee565b610f2d60023085604051602001610eaf929190614058565b60408051601f1981840301815290829052610ec9916140f8565b602060405180830381855afa158015610ee6573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250610f099190810190612f50565b604051602001610f1991906140c7565b604051602081830303815290604052611bee565b610f3e610f3933611c25565b611bee565b610f478f611c40565b610f868f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b610fc58e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b6110048d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b60405160200161101a979695949392919061411c565b60408051601f19818403018152908290528051602082012063130f33d960e21b83529092506001600160a01b03861691634c3ccf649161105c916004016141be565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110ae9190810190612f32565b6110ca5760405162461bcd60e51b815260040161026690614566565b326001600160a01b03167f6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be8848383338f8f8f8760405161110d96959493929190614212565b60405180910390a25060019b9a5050505050505050505050565b60008054600160a01b900460ff16156111525760405162461bcd60e51b8152600401610266906143a6565b61115a612cec565b6111638661160e565b90506000600160009054906101000a90046001600160a01b0316905060606111bd826001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b90506000826001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156111fa57600080fd5b505afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611232919081019061314f565b63ffffffff16905060008251905081856060015163ffffffff1610611284576112638a88856003600019860161040c565b61127f5760405162461bcd60e51b815260040161026690614596565b61130a565b6112968888856003600019860161040c565b6112b25760405162461bcd60e51b815260040161026690614496565b6112ba612cec565b6112c38961160e565b905060606112d68b836101000151611c83565b90506112e181611d82565b6112ea8d611dad565b146113075760405162461bcd60e51b815260040161026690614316565b50505b606061131a8c8760e00151611c83565b9050611324612d47565b61132d82611e6a565b9050856001600160a01b0316630586763c82602001516113508460000151611d82565b6040518363ffffffff1660e01b815260040161136d9291906145e2565b60206040518083038186803b15801561138557600080fd5b505afa158015611399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113bd9190810190612f32565b156113da5760405162461bcd60e51b815260040161026690614556565b856001600160a01b031663e90bfdcf82602001516113fb8460000151611d82565b6040518363ffffffff1660e01b81526004016114189291906145e2565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612f32565b6114865760405162461bcd60e51b815260040161026690614336565b6001546040820151606001516001600160401b03908116600160a01b90920416146114c35760405162461bcd60e51b815260040161026690614356565b60006114d6826040015160800151611f46565b6001600160a01b038116600090815260036020526040908190208482015160a0015191519293509161150891906140f8565b9081526040519081900360200190205460ff166115375760405162461bcd60e51b815260040161026690614386565b61156081836040015160a00151846040015160c001518560400151604001518660200151611f71565b61157c5760405162461bcd60e51b8152600401610266906142b6565b602082015160408084015160808101518551915192517f8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae946115c0949093916145fd565b60405180910390a16001985050505050505050505b95945050505050565b6115e6610d33565b6116025760405162461bcd60e51b815260040161026690614416565b61160b816120e2565b50565b611616612cec565b61161e612cec565b600061162a8482612163565b63ffffffff9091168352905061164084826121ec565b6001600160401b039091166020840152905061165c8482612273565b60a084019190915290506116708482612273565b60c084019190915290506116848482612273565b60e084019190915290506116988482612273565b61010084019190915290506116ad8482612163565b63ffffffff909116604084015290506116c68482612163565b63ffffffff909116606084015290506116df84826121ec565b6001600160401b03909116608084015290506116fb84826122b8565b6101208401919091529050611710848261236c565b506bffffffffffffffffffffffff19166101408301525092915050565b606060008061173c84826121ec565b80935081925050506060816001600160401b0316604051908082528060200260200182016040528015611779578160200160208202803883390190505b509050606060005b836001600160401b03168110156117d55761179c87866122b8565b955091506117a982611f46565b8382815181106117b557fe5b6001600160a01b0390921660209283029190910190910152600101611781565b509095945050505050565b6000806117ec86611dad565b90506000611805604187516123b590919063ffffffff16565b9050606081604051908082528060200260200182016040528015611833578160200160208202803883390190505b50905060008080805b858110156119c65761185b6118568c6041840260206123f7565b611d82565b93506118726118568c6041840260200160206123f7565b92508a604182026040018151811061188657fe5b602001015160f81c60f81b60f81c601b01915060016002886040516020016118ae91906140c7565b60408051601f19818403018152908290526118c8916140f8565b602060405180830381855afa1580156118e5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506119089190810190612f50565b8386866040516000815260200160405260405161192894939291906141cc565b6020604051602081039080840390855afa15801561194a573d6000803e3d6000fd5b5050506020604051035185828151811061196057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031685828151811061199757fe5b60200260200101516001600160a01b031614156119be5760009750505050505050506119db565b60010161183c565b506119d289858a612477565b96505050505050505b949350505050565b6000606060438351816119f257fe5b0615611a105760405162461bcd60e51b815260040161026690614456565b60006043845181611a1d57fe5b0490506001811015611a415760405162461bcd60e51b8152600401610266906144c6565b611a55816003600019820104830386612518565b9250925050915091565b805160609081611a6e82611c40565b905060005b82811015611ac65781611a9b610f39878481518110611a8e57fe5b6020026020010151611c25565b604051602001611aac929190614104565b60408051601f198184030181529190529150600101611a73565b509392505050565b600054600160a01b900460ff16611af75760405162461bcd60e51b8152600401610266906142a6565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b2d611ba6565b604051611b3a91906141a2565b60405180910390a1565b600054600160a01b900460ff1615611b6e5760405162461bcd60e51b8152600401610266906143a6565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b2d5b3390565b60606001600160ff1b03821115611bd35760405162461bcd60e51b815260040161026690614406565b60405190506020815281602082015260408101604052919050565b8051606090611bfc816126cd565b83604051602001611c0e929190614104565b604051602081830303815290604052915050919050565b604080516014815260609290921b6020830152818101905290565b6040516008808252606091906000601f5b82821015611c735785811a826020860101536001919091019060001901611c51565b5050506028810160405292915050565b6060600081611c9285836122b8565b925090506000611ca182612784565b90506000611cca6021611cbe868a5161279f90919063ffffffff16565b9063ffffffff6123b516565b9050600080805b83811015611d5557611ce38a886127e1565b97509150611cf18a88612273565b975092506001600160f81b03198216611d1557611d0e838661282a565b9450611d4d565b600160f81b6001600160f81b031983161415611d3557611d0e858461282a565b60405162461bcd60e51b815260040161026690614436565b600101611cd1565b50878414611d755760405162461bcd60e51b8152600401610266906143b6565b5092979650505050505050565b60008151602014611da55760405162461bcd60e51b8152600401610266906144b6565b506020015190565b600060028083604051611dc091906140f8565b602060405180830381855afa158015611ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250611e009190810190612f50565b604051602001611e1091906140c7565b60408051601f1981840301815290829052611e2a916140f8565b602060405180830381855afa158015611e47573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506108b69190810190612f50565b611e72612d47565b611e7a612d47565b6000611e8684826122b8565b9083529050611e9584826121ec565b6001600160401b0390911660208401529050611eaf612d6b565b611eb985836122b8565b9082529150611ec885836122b8565b60208301919091529150611edc85836122b8565b60408301919091529150611ef085836121ec565b6001600160401b0390911660608301529150611f0c85836122b8565b60808301919091529150611f2085836122b8565b60a08301919091529150611f3485836122b8565b5060c082015260408301525092915050565b60008151601414611f695760405162461bcd60e51b815260040161026690614306565b506014015190565b6000611f7c866128a1565b611f985760405162461bcd60e51b815260040161026690614466565b60606000876001600160a01b031687604051602001611fb7919061417d565b60405160208183030381529060405280519060200120878787604051602001611fe293929190614272565b60408051601f198184030181529082905261200092916020016140dc565b60408051601f198184030181529082905261201a916140f8565b6000604051808303816000865af19150503d8060008114612057576040519150601f19603f3d011682016040523d82523d6000602084013e61205c565b606091505b50925090506001811515146120835760405162461bcd60e51b8152600401610266906143e6565b81516120a15760405162461bcd60e51b8152600401610266906144a6565b60006120ae83601f6128d8565b5090506001811515146120d35760405162461bcd60e51b8152600401610266906144d6565b50600198975050505050505050565b6001600160a01b0381166121085760405162461bcd60e51b815260040161026690614326565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000808351836004011115801561217c57508260040183105b6121985760405162461bcd60e51b815260040161026690614576565b600060405160046000600182038760208a0101515b838310156121cd5780821a838601536001830192506001820391506121ad565b50505080820160405260200390035192505050600482015b9250929050565b6000808351836008011115801561220557508260080183105b6122215760405162461bcd60e51b815260040161026690614536565b600060405160086000600182038760208a0101515b838310156122565780821a83860153600183019250600182039150612236565b505050808201604052602003900351956008949094019450505050565b6000808351836020011115801561228c57508260200183105b6122a85760405162461bcd60e51b815260040161026690614526565b5050602091810182015192910190565b60606000806122c78585612971565b8651909550909150818501118015906122e1575080840184105b6122fd5760405162461bcd60e51b815260040161026690614586565b60608115801561231857604051915060208201604052612362565b6040519150601f8316801560200281840101848101888315602002848c0101015b81831015612351578051835260209283019201612339565b5050848452601f01601f1916604052505b5095930193505050565b6000808351836014011115801561238557508260140183105b6123a15760405162461bcd60e51b815260040161026690614366565b505081810160200151601482019250929050565b600061060283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ab6565b60608183018451101561240957600080fd5b6060821580156124245760405191506020820160405261246e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561245d578051835260209283019201612445565b5050858452601f01601f1916604052505b50949350505050565b600080805b845181101561250c5760005b86518110156125035786818151811061249d57fe5b60200260200101516001600160a01b03168683815181106124ba57fe5b60200260200101516001600160a01b031614156124fb5782806001019350508681815181106124e557fe5b6020026020010160006001600160a01b03168152505b600101612488565b5060010161247c565b50909111159392505050565b600060608061252686612aed565b9050606086604051908082528060200260200182016040528015612554578160200160208202803883390190505b50905060006060815b898110156125eb57612574886043830260436123f7565b915084612583610f3984612b30565b604051602001612594929190614104565b60405160208183030381529060405294506125b282600360406123f7565b8051906020012092508260001c8482815181106125cb57fe5b6001600160a01b039092166020928302919091019091015260010161255d565b50836125f689612aed565b604051602001612607929190614104565b60405160208183030381529060405293506000600360028660405161262c91906140f8565b602060405180830381855afa158015612649573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525061266c9190810190612f50565b60405160200161267c91906140c7565b60408051601f1981840301815290829052612696916140f8565b602060405180830381855afa1580156126b3573d6000803e3d6000fd5b50506040515160601b9b949a509398505050505050505050565b606060fd826001600160401b031610156126f1576126ea82612be9565b9050610a96565b61ffff826001600160401b0316116127405761271060fd60f81b612c05565b61271983612aed565b60405160200161272a929190614104565b6040516020818303038152906040529050610a96565b63ffffffff826001600160401b03161161276a57612761607f60f91b612c05565b61271983612c13565b61277b6001600160f81b0319612c05565b61271983611c40565b60006002600060f81b83604051602001611e109291906140ab565b600061060283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c56565b600080835183600101111580156127fa57508260010183105b6128165760405162461bcd60e51b815260040161026690614446565b505081810160200151600182019250929050565b60006002600160f81b848460405160200161284793929190614074565b60408051601f1981840301815290829052612861916140f8565b602060405180830381855afa15801561287e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506106029190810190612f50565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906119db5750141592915050565b600080835183600101111580156128f157508260010183105b61290d5760405162461bcd60e51b815260040161026690614506565b838301602001516000600160f81b6001600160f81b03198316141561293457506001612963565b6001600160f81b0319821661294b57506000612963565b60405162461bcd60e51b815260040161026690614426565b956001949094019450505050565b600080600061298085856127e1565b94509050600060fd60f81b6001600160f81b0319831614156129e9576129a68686612c82565b955061ffff16905060fd81108015906129c1575061ffff8111155b6129dd5760405162461bcd60e51b8152600401610266906142d6565b92508391506121e59050565b607f60f91b6001600160f81b031983161415612a4457612a098686612163565b955063ffffffff16905061ffff81118015612a28575063ffffffff8111155b6129dd5760405162461bcd60e51b815260040161026690614486565b6001600160f81b03198083161415612a9057612a6086866121ec565b95506001600160401b0316905063ffffffff81116129dd5760405162461bcd60e51b815260040161026690614486565b5060f881901c60fd81106129dd5760405162461bcd60e51b815260040161026690614486565b60008183612ad75760405162461bcd60e51b81526004016102669190614201565b506000838581612ae357fe5b0495945050505050565b6040516002808252606091906000601f5b82821015612b205785811a826020860101536001919091019060001901612afe565b5050506022810160405292915050565b6060604382511015612b545760405162461bcd60e51b815260040161026690614546565b612b6182600060236123f7565b9050600282604281518110612b7257fe5b016020015160f81c81612b8157fe5b0660ff1660001415612bbb57600260f81b81600281518110612b9f57fe5b60200101906001600160f81b031916908160001a905350610a96565b600360f81b81600281518110612bcd57fe5b60200101906001600160f81b031916908160001a905350919050565b604080516001815260f89290921b602083015260218201905290565b60606108b68260f81c612be9565b6040516004808252606091906000601f5b82821015612c465785811a826020860101536001919091019060001901612c24565b5050506024810160405292915050565b60008184841115612c7a5760405162461bcd60e51b81526004016102669190614201565b505050900390565b60008083518360020111158015612c9b57508260020183105b612cb75760405162461bcd60e51b8152600401610266906144e6565b6000604051846020870101518060011a82538060001a6001830153506002818101604052601d19909101519694019450505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082015261014081019190915290565b6040805160608082018352815260006020820152908101612d66612d6b565b905290565b6040518060e0016040528060608152602001606081526020016060815260200160006001600160401b031681526020016060815260200160608152602001606081525090565b80356108b681614776565b80516108b68161478a565b80516108b681614793565b60008083601f840112612de457600080fd5b5081356001600160401b03811115612dfb57600080fd5b6020830191508360018202830111156121e557600080fd5b600082601f830112612e2457600080fd5b8135612e37612e3282614675565b61464f565b91508082526020830160208301858383011115612e5357600080fd5b612e5e838284614719565b50505092915050565b600082601f830112612e7857600080fd5b8151612e86612e3282614675565b91508082526020830160208301858383011115612ea257600080fd5b612e5e838284614725565b80516108b68161479c565b80356108b6816147a5565b600060208284031215612ed557600080fd5b60006119db8484612db1565b60008060408385031215612ef457600080fd5b6000612f008585612db1565b92505060208301356001600160401b03811115612f1c57600080fd5b612f2885828601612e13565b9150509250929050565b600060208284031215612f4457600080fd5b60006119db8484612dbc565b600060208284031215612f6257600080fd5b60006119db8484612dc7565b600060208284031215612f8057600080fd5b81516001600160401b03811115612f9657600080fd5b6119db84828501612e67565b60008060408385031215612fb557600080fd5b82356001600160401b03811115612fcb57600080fd5b612f0085828601612e13565b600080600060608486031215612fec57600080fd5b83356001600160401b0381111561300257600080fd5b61300e86828701612e13565b93505060208401356001600160401b0381111561302a57600080fd5b61303686828701612e13565b92505060408401356001600160401b0381111561305257600080fd5b61305e86828701612e13565b9150509250925092565b600080600080600060a0868803121561308057600080fd5b85356001600160401b0381111561309657600080fd5b6130a288828901612e13565b95505060208601356001600160401b038111156130be57600080fd5b6130ca88828901612e13565b94505060408601356001600160401b038111156130e657600080fd5b6130f288828901612e13565b93505060608601356001600160401b0381111561310e57600080fd5b61311a88828901612e13565b92505060808601356001600160401b0381111561313657600080fd5b61314288828901612e13565b9150509295509295909350565b60006020828403121561316157600080fd5b60006119db8484612ead565b60006020828403121561317f57600080fd5b60006119db8484612eb8565b60008060008060008060006080888a0312156131a657600080fd5b60006131b28a8a612eb8565b97505060208801356001600160401b038111156131ce57600080fd5b6131da8a828b01612dd2565b965096505060408801356001600160401b038111156131f857600080fd5b6132048a828b01612dd2565b945094505060608801356001600160401b0381111561322257600080fd5b61322e8a828b01612dd2565b925092505092959891949750929550565b613248816146fd565b82525050565b613248816146a9565b613248613263826146a9565b614755565b613248816146b4565b61324861327d826146b9565b6146c6565b613248816146c6565b61324861327d826146c6565b61324861327d826146c9565b60006132af83856146a0565b93506132bc838584614719565b6132c583614766565b9093019392505050565b60006132da8261469c565b6132e481856146a0565b93506132f4818560208601614725565b6132c581614766565b60006133088261469c565b6133128185610a96565b9350613322818560208601614725565b9290920192915050565b60006133396014836146a0565b7314185d5cd8589b194e881b9bdd081c185d5cd95960621b815260200192915050565b6000613369601d836146a0565b7f457865637574652043726f7373436861696e205478206661696c656421000000815260200192915050565b60006133a26027836146a0565b7f70617573652045746843726f7373436861696e4461746120636f6e74726163748152660819985a5b195960ca1b602082015260400192915050565b60006133eb601f836146a0565b7f4e65787455696e7431362c2076616c7565206f7574736964652072616e676500815260200192915050565b60006134246025836146a0565b7f546865206e657874426f6f6b4b6565706572206f662068656164657220697320815264656d70747960d81b602082015260400192915050565b600061346b6029836146a0565b7f756e70617573652045746843726f7373436861696e4461746120636f6e74726181526818dd0819985a5b195960ba1b602082015260400192915050565b60006134b66023836146a0565b7f6279746573206c656e67746820646f6573206e6f74206d61746368206164647281526265737360e81b602082015260400192915050565b60006134fb601b836146a0565b7f766572696679206865616465722070726f6f66206661696c6564210000000000815260200192915050565b60006135346026836146a0565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b600061357c6020836146a0565b7f536176652063726f7373636861696e207478206578697374206661696c656421815260200192915050565b60006135b56043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820737481527f6172742068656967687420746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b60006136206026836146a0565b7f54686973205478206973206e6f742061696d696e672061742074686973206e6581526574776f726b2160d01b602082015260400192915050565b60006136686023836146a0565b7f4e657874427974657332302c206f66667365742065786365656473206d6178698152626d756d60e81b602082015260400192915050565b60006136ad6018836146a0565b7f566572696679207369676e6174757265206661696c6564210000000000000000815260200192915050565b60006136e6601d836146a0565b7f496e76616c696420746f20636f6e7472616374206f72206d6574686f64000000815260200192915050565b600061371f6015836146a0565b74125b9d985b1a5908199c9bdb4818dbdb9d1c9858dd605a1b815260200192915050565b60006137506010836146a0565b6f14185d5cd8589b194e881c185d5cd95960821b815260200192915050565b600061377c6031836146a0565b7f6d65726b6c6550726f76652c2065787065637420726f6f74206973206e6f7420815270195c5d585b081858dd1d585b081c9bdbdd607a1b602082015260400192915050565b60006137cf6013836146a0565b7213995e1d109bdbdad95c9cc81a5b1b1959d85b606a1b815260200192915050565b60006137fe603e836146a0565b7f54686520686569676874206f6620686561646572206973206c6f77657220746881527f616e2063757272656e742065706f636820737461727420686569676874210000602082015260400192915050565b600061385d602b836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481526a1c9858dd0819985a5b195960aa1b602082015260400192915050565b60006138aa603b836146a0565b7f5361766520506f6c7920636861696e20626f6f6b206b6565706572732062797481527f657320746f204461746120636f6e7472616374206661696c6564210000000000602082015260400192915050565b60006139096017836146a0565b7f56616c75652065786365656473207468652072616e6765000000000000000000815260200192915050565b60006139426020836146a0565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061397b6014836146a0565b732732bc3a2137b7b6103b30b63ab29032b93937b960611b815260200192915050565b60006139ab602e836146a0565b7f6d65726b6c6550726f76652c204e6578744279746520666f7220706f7369746981526d1bdb881a5b999bc819985a5b195960921b602082015260400192915050565b60006139fb6020836146a0565b7f4e657874427974652c204f66667365742065786365656473206d6178696d756d815260200192915050565b6000613a34601b836146a0565b7f5f7075624b65794c697374206c656e67746820696c6c6567616c210000000000815260200192915050565b6000613a6d6028836146a0565b7f5468652070617373656420696e2061646472657373206973206e6f74206120638152676f6e74726163742160c01b602082015260400192915050565b6000613ab7602d836146a0565b7f53617665204d43204c617465737448656967687420746f204461746120636f6e81526c7472616374206661696c65642160981b602082015260400192915050565b6000613b066020836146a0565b7f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765815260200192915050565b6000613b3f6038836146a0565b7f56657269667920706f6c7920636861696e2063757272656e742065706f63682081527f686561646572207369676e6174757265206661696c6564210000000000000000602082015260400192915050565b6000613b9e601483610a96565b732862797465732c62797465732c75696e7436342960601b815260140192915050565b6000613bce6027836146a0565b7f4e6f2072657475726e2076616c75652066726f6d20627573696e65737320636f8152666e74726163742160c81b602082015260400192915050565b6000613c176017836146a0565b7f6279746573206c656e677468206973206e6f742033322e000000000000000000815260200192915050565b6000613c506016836146a0565b75746f6f2073686f7274205f7075624b65794c6973742160501b815260200192915050565b6000613c826037836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481527f726163742072657475726e206973206e6f742074727565000000000000000000602082015260400192915050565b6000613ce16022836146a0565b7f4e65787455696e7431362c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613d256038836146a0565b7f45746843726f7373436861696e4461746120636f6e747261637420686173206181527f6c7265616479206265656e20696e697469616c697a6564210000000000000000602082015260400192915050565b6000613d846014836146a0565b7313d9999cd95d08195e18d959591cc81b1a5b5a5d60621b815260200192915050565b6000613db46043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820626f81527f6f6b206b65657065727320746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b6000613e1f6020836146a0565b7f4e657874486173682c206f66667365742065786365656473206d6178696d756d815260200192915050565b6000613e586022836146a0565b7f4e65787455696e7436342c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613e9c6017836146a0565b7f6b6579206c656e67676820697320746f6f2073686f7274000000000000000000815260200192915050565b6000613ed56022836146a0565b7f746865207472616e73616374696f6e20686173206265656e2065786563757465815261642160f01b602082015260400192915050565b6000613f196030836146a0565b7f536176652065746854784861736820627920696e64657820746f20446174612081526f636f6e7472616374206661696c65642160801b602082015260400192915050565b6000613f6b6022836146a0565b7f4e65787455696e7433322c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613faf6024836146a0565b7f4e65787456617242797465732c206f66667365742065786365656473206d6178815263696d756d60e01b602082015260400192915050565b6000613ff5602a836146a0565b7f56657269667920706f6c7920636861696e20686561646572207369676e6174758152697265206661696c65642160b01b602082015260400192915050565b6132488161470e565b613248816146e2565b613248816146eb565b613248816146f7565b60006140648285613257565b6014820191506119db82846132fd565b60006140808286613271565b600182019150614090828561328b565b6020820191506140a0828461328b565b506020019392505050565b60006140b78285613271565b6001820191506119db82846132fd565b60006140d3828461328b565b50602001919050565b60006140e88285613297565b6004820191506119db82846132fd565b600061060282846132fd565b600061411082856132fd565b91506119db82846132fd565b6000614128828a6132fd565b915061413482896132fd565b915061414082886132fd565b915061414c82876132fd565b915061415882866132fd565b915061416482856132fd565b915061417082846132fd565b9998505050505050505050565b600061418982846132fd565b915061060282613b91565b602081016108b6828461324e565b602081016108b6828461323f565b602081016108b68284613268565b602081016108b68284613282565b608081016141da8287613282565b6141e7602083018661404f565b6141f46040830185613282565b6115d56060830184613282565b6020808252810161060281846132cf565b60a0808252810161422381896132cf565b9050614232602083018861323f565b61423f6040830187614046565b81810360608301526142528185876132a3565b9050818103608083015261426681846132cf565b98975050505050505050565b6060808252810161428381866132cf565b9050818103602083015261429781856132cf565b90506119db6040830184614046565b602080825281016108b68161332c565b602080825281016108b68161335c565b602080825281016108b681613395565b602080825281016108b6816133de565b602080825281016108b681613417565b602080825281016108b68161345e565b602080825281016108b6816134a9565b602080825281016108b6816134ee565b602080825281016108b681613527565b602080825281016108b68161356f565b602080825281016108b6816135a8565b602080825281016108b681613613565b602080825281016108b68161365b565b602080825281016108b6816136a0565b602080825281016108b6816136d9565b602080825281016108b681613712565b602080825281016108b681613743565b602080825281016108b68161376f565b602080825281016108b6816137c2565b602080825281016108b6816137f1565b602080825281016108b681613850565b602080825281016108b68161389d565b602080825281016108b6816138fc565b602080825281016108b681613935565b602080825281016108b68161396e565b602080825281016108b68161399e565b602080825281016108b6816139ee565b602080825281016108b681613a27565b602080825281016108b681613a60565b602080825281016108b681613aaa565b602080825281016108b681613af9565b602080825281016108b681613b32565b602080825281016108b681613bc1565b602080825281016108b681613c0a565b602080825281016108b681613c43565b602080825281016108b681613c75565b602080825281016108b681613cd4565b602080825281016108b681613d18565b602080825281016108b681613d77565b602080825281016108b681613da7565b602080825281016108b681613e12565b602080825281016108b681613e4b565b602080825281016108b681613e8f565b602080825281016108b681613ec8565b602080825281016108b681613f0c565b602080825281016108b681613f5e565b602080825281016108b681613fa2565b602080825281016108b681613fe8565b602081016108b6828461403d565b604081016145c28285614034565b81810360208301526119db81846132cf565b602081016108b68284614046565b604081016145f08285614046565b6106026020830184613282565b6080810161460b8287614046565b818103602083015261461d81866132cf565b9050818103604083015261463181856132cf565b9050818103606083015261464581846132cf565b9695505050505050565b6040518181016001600160401b038111828210171561466d57600080fd5b604052919050565b60006001600160401b0382111561468b57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b60006108b6826146d6565b151590565b6001600160f81b03191690565b90565b6001600160e01b03191690565b6001600160a01b031690565b63ffffffff1690565b6001600160401b031690565b60ff1690565b60006108b68260006108b6826146a9565b60006108b6826146e2565b82818337506000910152565b60005b83811015614740578181015183820152602001614728565b8381111561474f576000848401525b50505050565b60006108b68260006108b682614770565b601f01601f191690565b60601b90565b61477f816146a9565b811461160b57600080fd5b61477f816146b4565b61477f816146c6565b61477f816146e2565b61477f816146eb56fea365627a7a72315820e4ae8c3b456b78904d7a7832cae32737903c831f83dc48d753a1333b333f9d776c6578706572696d656e74616cf564736f6c63430005110040" // DeployEthCrossChainManager deploys a new Ethereum contract, binding an instance of EthCrossChainManager to it. -func DeployEthCrossChainManager(auth *bind.TransactOpts, backend bind.ContractBackend, _eccd common.Address) (common.Address, *types.Transaction, *EthCrossChainManager, error) { - parsed, err := EthCrossChainManagerMetaData.GetAbi() +func DeployEthCrossChainManager(auth *bind.TransactOpts, backend bind.ContractBackend, _eccd common.Address, _chainId uint64, fromContractWhiteList []common.Address, contractMethodWhiteList [][]byte) (common.Address, *types.Transaction, *EthCrossChainManager, error) { + parsed, err := abi.JSON(strings.NewReader(EthCrossChainManagerABI)) 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(EthCrossChainManagerBin), backend, _eccd) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EthCrossChainManagerBin), backend, _eccd, _chainId, fromContractWhiteList, contractMethodWhiteList) if err != nil { return common.Address{}, nil, nil, err } @@ -613,6 +547,37 @@ func (_EthCrossChainManager *EthCrossChainManagerCallerSession) EthCrossChainDat return _EthCrossChainManager.Contract.EthCrossChainDataAddress(&_EthCrossChainManager.CallOpts) } +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerCaller) ChainId(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "chainId") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerSession) ChainId() (uint64, error) { + return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) ChainId() (uint64, error) { + return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) +} + // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. // // Solidity: function isOwner() view returns(bool) @@ -706,6 +671,68 @@ func (_EthCrossChainManager *EthCrossChainManagerCallerSession) Paused() (bool, return _EthCrossChainManager.Contract.Paused(&_EthCrossChainManager.CallOpts) } +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListContractMethodMap(opts *bind.CallOpts, arg0 common.Address, arg1 []byte) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListContractMethodMap", arg0, arg1) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) +} + +// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. +// +// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListFromContract(opts *bind.CallOpts, arg0 common.Address) (bool, error) { + var out []interface{} + err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListFromContract", arg0) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) +} + +// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. +// +// Solidity: function whiteListFromContract(address ) view returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { + return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) +} + // ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. // // Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) @@ -811,6 +838,27 @@ func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) RenounceOwne return _EthCrossChainManager.Contract.RenounceOwnership(&_EthCrossChainManager.TransactOpts) } +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) +} + // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // // Solidity: function transferOwnership(address newOwner) returns() @@ -1872,35 +1920,27 @@ func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseVerifyHeaderAndE return event, nil } -// IEthCrossChainDataMetaData contains all meta data concerning the IEthCrossChainData contract. -var IEthCrossChainDataMetaData = &bind.MetaData{ - ABI: "[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"checkIfFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethTxHashIndex\",\"type\":\"uint256\"}],\"name\":\"getEthTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEthTxHashIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"}],\"name\":\"getExtraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"markFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"curEpochPkBytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"curEpochStartHeight\",\"type\":\"uint32\"}],\"name\":\"putCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethTxHash\",\"type\":\"bytes32\"}],\"name\":\"putEthTxHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"putExtraData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "0586763c": "checkIfFromChainTxExist(uint64,bytes32)", - "69d48074": "getCurEpochConPubKeyBytes()", - "5ac40790": "getCurEpochStartHeight()", - "29927875": "getEthTxHash(uint256)", - "ff3d24a1": "getEthTxHashIndex()", - "40602bb5": "getExtraData(bytes32,bytes32)", - "e90bfdcf": "markFromChainTxExist(uint64,bytes32)", - "8456cb59": "pause()", - "5c975abb": "paused()", - "41973cd9": "putCurEpochConPubKeyBytes(bytes)", - "8a8bd17f": "putCurEpochStartHeight(uint32)", - "4c3ccf64": "putEthTxHash(bytes32)", - "1afe374e": "putExtraData(bytes32,bytes32,bytes)", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", - }, -} - // IEthCrossChainDataABI is the input ABI used to generate the binding from. -// Deprecated: Use IEthCrossChainDataMetaData.ABI instead. -var IEthCrossChainDataABI = IEthCrossChainDataMetaData.ABI +const IEthCrossChainDataABI = "[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"checkIfFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethTxHashIndex\",\"type\":\"uint256\"}],\"name\":\"getEthTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEthTxHashIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"}],\"name\":\"getExtraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"markFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"curEpochPkBytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"curEpochStartHeight\",\"type\":\"uint32\"}],\"name\":\"putCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethTxHash\",\"type\":\"bytes32\"}],\"name\":\"putEthTxHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"putExtraData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Deprecated: Use IEthCrossChainDataMetaData.Sigs instead. // IEthCrossChainDataFuncSigs maps the 4-byte function signature to its string representation. -var IEthCrossChainDataFuncSigs = IEthCrossChainDataMetaData.Sigs +var IEthCrossChainDataFuncSigs = map[string]string{ + "0586763c": "checkIfFromChainTxExist(uint64,bytes32)", + "69d48074": "getCurEpochConPubKeyBytes()", + "5ac40790": "getCurEpochStartHeight()", + "29927875": "getEthTxHash(uint256)", + "ff3d24a1": "getEthTxHashIndex()", + "40602bb5": "getExtraData(bytes32,bytes32)", + "e90bfdcf": "markFromChainTxExist(uint64,bytes32)", + "8456cb59": "pause()", + "5c975abb": "paused()", + "41973cd9": "putCurEpochConPubKeyBytes(bytes)", + "8a8bd17f": "putCurEpochStartHeight(uint32)", + "4c3ccf64": "putEthTxHash(bytes32)", + "1afe374e": "putExtraData(bytes32,bytes32,bytes)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", +} // IEthCrossChainData is an auto generated Go binding around an Ethereum contract. type IEthCrossChainData struct { @@ -2429,21 +2469,13 @@ func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) Unpause() (*type return _IEthCrossChainData.Contract.Unpause(&_IEthCrossChainData.TransactOpts) } -// IEthCrossChainManagerMetaData contains all meta data concerning the IEthCrossChainManager contract. -var IEthCrossChainManagerMetaData = &bind.MetaData{ - ABI: "[{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", - }, -} - // IEthCrossChainManagerABI is the input ABI used to generate the binding from. -// Deprecated: Use IEthCrossChainManagerMetaData.ABI instead. -var IEthCrossChainManagerABI = IEthCrossChainManagerMetaData.ABI +const IEthCrossChainManagerABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Deprecated: Use IEthCrossChainManagerMetaData.Sigs instead. // IEthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. -var IEthCrossChainManagerFuncSigs = IEthCrossChainManagerMetaData.Sigs +var IEthCrossChainManagerFuncSigs = map[string]string{ + "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", +} // IEthCrossChainManager is an auto generated Go binding around an Ethereum contract. type IEthCrossChainManager struct { @@ -2608,25 +2640,18 @@ func (_IEthCrossChainManager *IEthCrossChainManagerTransactorSession) CrossChain return _IEthCrossChainManager.Contract.CrossChain(&_IEthCrossChainManager.TransactOpts, _toChainId, _toContract, _method, _txData) } -// IUpgradableECCMMetaData contains all meta data concerning the IUpgradableECCM contract. -var IUpgradableECCMMetaData = &bind.MetaData{ - ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "8f32d59b": "isOwner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", - }, -} - // IUpgradableECCMABI is the input ABI used to generate the binding from. -// Deprecated: Use IUpgradableECCMMetaData.ABI instead. -var IUpgradableECCMABI = IUpgradableECCMMetaData.ABI +const IUpgradableECCMABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Deprecated: Use IUpgradableECCMMetaData.Sigs instead. // IUpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. -var IUpgradableECCMFuncSigs = IUpgradableECCMMetaData.Sigs +var IUpgradableECCMFuncSigs = map[string]string{ + "8f32d59b": "isOwner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "6f31031d": "setChainId(uint64)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", +} // IUpgradableECCM is an auto generated Go binding around an Ethereum contract. type IUpgradableECCM struct { @@ -2853,6 +2878,27 @@ func (_IUpgradableECCM *IUpgradableECCMTransactorSession) Pause() (*types.Transa return _IUpgradableECCM.Contract.Pause(&_IUpgradableECCM.TransactOpts) } +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_IUpgradableECCM *IUpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) +} + // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // // Solidity: function unpause() returns(bool) @@ -2895,24 +2941,16 @@ func (_IUpgradableECCM *IUpgradableECCMTransactorSession) UpgradeToNew(arg0 comm return _IUpgradableECCM.Contract.UpgradeToNew(&_IUpgradableECCM.TransactOpts, arg0) } -// OwnableMetaData contains all meta data concerning the Ownable contract. -var OwnableMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "715018a6": "renounceOwnership()", - "f2fde38b": "transferOwnership(address)", - }, -} - // OwnableABI is the input ABI used to generate the binding from. -// Deprecated: Use OwnableMetaData.ABI instead. -var OwnableABI = OwnableMetaData.ABI +const OwnableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Deprecated: Use OwnableMetaData.Sigs instead. // OwnableFuncSigs maps the 4-byte function signature to its string representation. -var OwnableFuncSigs = OwnableMetaData.Sigs +var OwnableFuncSigs = map[string]string{ + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "715018a6": "renounceOwnership()", + "f2fde38b": "transferOwnership(address)", +} // Ownable is an auto generated Go binding around an Ethereum contract. type Ownable struct { @@ -3313,21 +3351,13 @@ func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*Owna return event, nil } -// PausableMetaData contains all meta data concerning the Pausable contract. -var PausableMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "5c975abb": "paused()", - }, -} - // PausableABI is the input ABI used to generate the binding from. -// Deprecated: Use PausableMetaData.ABI instead. -var PausableABI = PausableMetaData.ABI +const PausableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" -// Deprecated: Use PausableMetaData.Sigs instead. // PausableFuncSigs maps the 4-byte function signature to its string representation. -var PausableFuncSigs = PausableMetaData.Sigs +var PausableFuncSigs = map[string]string{ + "5c975abb": "paused()", +} // Pausable is an auto generated Go binding around an Ethereum contract. type Pausable struct { @@ -3770,31 +3800,20 @@ func (_Pausable *PausableFilterer) ParseUnpaused(log types.Log) (*PausableUnpaus return event, nil } -// SafeMathMetaData contains all meta data concerning the SafeMath contract. -var SafeMathMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820f435635740da0d92874336becf86d6b5b5a450f6a869448ddd92b2a74a1af70e64736f6c63430005110032", -} - // SafeMathABI is the input ABI used to generate the binding from. -// Deprecated: Use SafeMathMetaData.ABI instead. -var SafeMathABI = SafeMathMetaData.ABI +const SafeMathABI = "[]" // SafeMathBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use SafeMathMetaData.Bin instead. -var SafeMathBin = SafeMathMetaData.Bin +var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158200e6820cfc4a8509d280164004f488212b92fbfe60e92c0175ba6de94ef905b6b64736f6c63430005110032" // DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { - parsed, err := SafeMathMetaData.GetAbi() + parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) 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(SafeMathBin), backend) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend) if err != nil { return common.Address{}, nil, nil, err } @@ -3943,46 +3962,35 @@ func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method return _SafeMath.Contract.contract.Transact(opts, method, params...) } -// UpgradableECCMMetaData contains all meta data concerning the UpgradableECCM contract. -var UpgradableECCMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ethCrossChainDataAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Sigs: map[string]string{ - "00ba1694": "EthCrossChainDataAddress()", - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "715018a6": "renounceOwnership()", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", - }, - Bin: "0x608060405234801561001057600080fd5b506040516109fe3803806109fe8339818101604052602081101561003357600080fd5b505160006100486001600160e01b036100c416565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600180546001600160a01b0319166001600160a01b03929092169190911790556100c8565b3390565b610927806100d76000396000f3fe608060405234801561001057600080fd5b50600436106100925760003560e01c80637e724ff3116100665780637e724ff3146100e95780638456cb591461010f5780638da5cb5b146101175780638f32d59b1461011f578063f2fde38b1461012757610092565b8062ba1694146100975780633f4ba83a146100bb5780635c975abb146100d7578063715018a6146100df575b600080fd5b61009f61014d565b604080516001600160a01b039092168252519081900360200190f35b6100c361015c565b604080519115158252519081900360200190f35b6100c36102db565b6100e76102eb565b005b6100c3600480360360208110156100ff57600080fd5b50356001600160a01b031661037c565b6100c361048b565b61009f610600565b6100c361060f565b6100e76004803603602081101561013d57600080fd5b50356001600160a01b0316610633565b6001546001600160a01b031681565b600061016661060f565b6101a5576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b6101ad6102db565b156101ba576101ba610686565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561020057600080fd5b505afa158015610214573d6000803e3d6000fd5b505050506040513d602081101561022a57600080fd5b5051156102d357806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561026c57600080fd5b505af1158015610280573d6000803e3d6000fd5b505050506040513d602081101561029657600080fd5b50516102d35760405162461bcd60e51b81526004018080602001828103825260298152602001806108846029913960400191505060405180910390fd5b600191505090565b600054600160a01b900460ff1690565b6102f361060f565b610332576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008054600160a01b900460ff166103d2576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6103da61060f565b610419576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b6001546040805163f2fde38b60e01b81526001600160a01b03858116600483015291519190921691829163f2fde38b9160248082019260009290919082900301818387803b15801561046a57600080fd5b505af115801561047e573d6000803e3d6000fd5b5060019695505050505050565b600061049561060f565b6104d4576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b6104dc6102db565b6104e8576104e861072e565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561052e57600080fd5b505afa158015610542573d6000803e3d6000fd5b505050506040513d602081101561055857600080fd5b50516102d357806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561059957600080fd5b505af11580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b50516102d35760405162461bcd60e51b815260040180806020018281038252602781526020018061085d6027913960400191505060405180910390fd5b6000546001600160a01b031690565b600080546001600160a01b03166106246107b8565b6001600160a01b031614905090565b61063b61060f565b61067a576040805162461bcd60e51b815260206004820181905260248201526000805160206108d3833981519152604482015290519081900360640190fd5b610683816107bc565b50565b600054600160a01b900460ff166106db576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6107116107b8565b604080516001600160a01b039092168252519081900360200190a1565b600054600160a01b900460ff1615610780576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586107115b3390565b6001600160a01b0381166108015760405162461bcd60e51b81526004018080602001828103825260268152602001806108ad6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c6564756e70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c65644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582096f31605c7632275ea6b7680e90734e14b19332a8aee5e2e1e40d7c4657ec1c964736f6c63430005110032", -} - // UpgradableECCMABI is the input ABI used to generate the binding from. -// Deprecated: Use UpgradableECCMMetaData.ABI instead. -var UpgradableECCMABI = UpgradableECCMMetaData.ABI +const UpgradableECCMABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ethCrossChainDataAddr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Deprecated: Use UpgradableECCMMetaData.Sigs instead. // UpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. -var UpgradableECCMFuncSigs = UpgradableECCMMetaData.Sigs +var UpgradableECCMFuncSigs = map[string]string{ + "00ba1694": "EthCrossChainDataAddress()", + "9a8a0592": "chainId()", + "8f32d59b": "isOwner()", + "8da5cb5b": "owner()", + "8456cb59": "pause()", + "5c975abb": "paused()", + "715018a6": "renounceOwnership()", + "6f31031d": "setChainId(uint64)", + "f2fde38b": "transferOwnership(address)", + "3f4ba83a": "unpause()", + "7e724ff3": "upgradeToNew(address)", +} // UpgradableECCMBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use UpgradableECCMMetaData.Bin instead. -var UpgradableECCMBin = UpgradableECCMMetaData.Bin +var UpgradableECCMBin = "0x608060405234801561001057600080fd5b50604051610b6c380380610b6c8339818101604052604081101561003357600080fd5b508051602090910151600061004f6001600160e01b036100ee16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600180546001600160401b03909216600160a01b02600160a01b600160e01b03196001600160a01b039094166001600160a01b031990931692909217929092161790556100f2565b3390565b610a6b806101016000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80637e724ff3116100715780637e724ff3146101265780638456cb591461014c5780638da5cb5b146101545780638f32d59b1461015c5780639a8a059214610164578063f2fde38b14610189576100a8565b8062ba1694146100ad5780633f4ba83a146100d15780635c975abb146100ed5780636f31031d146100f5578063715018a61461011c575b600080fd5b6100b56101af565b604080516001600160a01b039092168252519081900360200190f35b6100d96101be565b604080519115158252519081900360200190f35b6100d961033d565b6100d96004803603602081101561010b57600080fd5b503567ffffffffffffffff1661034d565b610124610418565b005b6100d96004803603602081101561013c57600080fd5b50356001600160a01b03166104a9565b6100d96105b8565b6100b561072d565b6100d961073c565b61016c610760565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101246004803603602081101561019f57600080fd5b50356001600160a01b0316610777565b6001546001600160a01b031681565b60006101c861073c565b610207576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61020f61033d565b1561021c5761021c6107ca565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561026257600080fd5b505afa158015610276573d6000803e3d6000fd5b505050506040513d602081101561028c57600080fd5b50511561033557806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102ce57600080fd5b505af11580156102e2573d6000803e3d6000fd5b505050506040513d60208110156102f857600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260298152602001806109c86029913960400191505060405180910390fd5b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff166103a3576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6103ab61073c565b6103ea576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b506001805467ffffffffffffffff8316600160a01b0267ffffffffffffffff60a01b19909116178155919050565b61042061073c565b61045f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008054600160a01b900460ff166104ff576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b61050761073c565b610546576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6001546040805163f2fde38b60e01b81526001600160a01b03858116600483015291519190921691829163f2fde38b9160248082019260009290919082900301818387803b15801561059757600080fd5b505af11580156105ab573d6000803e3d6000fd5b5060019695505050505050565b60006105c261073c565b610601576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61060961033d565b61061557610615610872565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561065b57600080fd5b505afa15801561066f573d6000803e3d6000fd5b505050506040513d602081101561068557600080fd5b505161033557806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106c657600080fd5b505af11580156106da573d6000803e3d6000fd5b505050506040513d60208110156106f057600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260278152602001806109a16027913960400191505060405180910390fd5b6000546001600160a01b031690565b600080546001600160a01b03166107516108fc565b6001600160a01b031614905090565b600154600160a01b900467ffffffffffffffff1681565b61077f61073c565b6107be576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6107c781610900565b50565b600054600160a01b900460ff1661081f576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108556108fc565b604080516001600160a01b039092168252519081900360200190a1565b600054600160a01b900460ff16156108c4576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108555b3390565b6001600160a01b0381166109455760405162461bcd60e51b81526004018080602001828103825260268152602001806109f16026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c6564756e70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c65644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582033b5f033bee166fb9485e71076385f292a8b245661fd103f687f4f56e5c4698d64736f6c63430005110032" // DeployUpgradableECCM deploys a new Ethereum contract, binding an instance of UpgradableECCM to it. -func DeployUpgradableECCM(auth *bind.TransactOpts, backend bind.ContractBackend, ethCrossChainDataAddr common.Address) (common.Address, *types.Transaction, *UpgradableECCM, error) { - parsed, err := UpgradableECCMMetaData.GetAbi() +func DeployUpgradableECCM(auth *bind.TransactOpts, backend bind.ContractBackend, ethCrossChainDataAddr common.Address, _chainId uint64) (common.Address, *types.Transaction, *UpgradableECCM, error) { + parsed, err := abi.JSON(strings.NewReader(UpgradableECCMABI)) 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(UpgradableECCMBin), backend, ethCrossChainDataAddr) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UpgradableECCMBin), backend, ethCrossChainDataAddr, _chainId) if err != nil { return common.Address{}, nil, nil, err } @@ -4162,6 +4170,37 @@ func (_UpgradableECCM *UpgradableECCMCallerSession) EthCrossChainDataAddress() ( return _UpgradableECCM.Contract.EthCrossChainDataAddress(&_UpgradableECCM.CallOpts) } +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMCaller) ChainId(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _UpgradableECCM.contract.Call(opts, &out, "chainId") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMSession) ChainId() (uint64, error) { + return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) +} + +// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. +// +// Solidity: function chainId() view returns(uint64) +func (_UpgradableECCM *UpgradableECCMCallerSession) ChainId() (uint64, error) { + return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) +} + // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. // // Solidity: function isOwner() view returns(bool) @@ -4297,6 +4336,27 @@ func (_UpgradableECCM *UpgradableECCMTransactorSession) RenounceOwnership() (*ty return _UpgradableECCM.Contract.RenounceOwnership(&_UpgradableECCM.TransactOpts) } +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) +} + +// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. +// +// Solidity: function setChainId(uint64 _newChainId) returns(bool) +func (_UpgradableECCM *UpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { + return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) +} + // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // // Solidity: function transferOwnership(address newOwner) returns() @@ -4781,31 +4841,20 @@ func (_UpgradableECCM *UpgradableECCMFilterer) ParseUnpaused(log types.Log) (*Up return event, nil } -// UtilsMetaData contains all meta data concerning the Utils contract. -var UtilsMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582055c5b5b5ad4e66e206e07356bff7b84962397dedf259780f82229da7454bfac664736f6c63430005110032", -} - // UtilsABI is the input ABI used to generate the binding from. -// Deprecated: Use UtilsMetaData.ABI instead. -var UtilsABI = UtilsMetaData.ABI +const UtilsABI = "[]" // UtilsBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use UtilsMetaData.Bin instead. -var UtilsBin = UtilsMetaData.Bin +var UtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582021ae6fc6ca0c6a2b393807bf67f4c3b58a9d67887c52858460d143c8bb32d45264736f6c63430005110032" // DeployUtils deploys a new Ethereum contract, binding an instance of Utils to it. func DeployUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Utils, error) { - parsed, err := UtilsMetaData.GetAbi() + parsed, err := abi.JSON(strings.NewReader(UtilsABI)) 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(UtilsBin), backend) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UtilsBin), backend) if err != nil { return common.Address{}, nil, nil, err } @@ -4954,31 +5003,20 @@ func (_Utils *UtilsTransactorRaw) Transact(opts *bind.TransactOpts, method strin return _Utils.Contract.contract.Transact(opts, method, params...) } -// ZeroCopySinkMetaData contains all meta data concerning the ZeroCopySink contract. -var ZeroCopySinkMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158208c0ac3bd67021934435b89f90f756a558ae6b60007df687645d73211a62d7e3964736f6c63430005110032", -} - // ZeroCopySinkABI is the input ABI used to generate the binding from. -// Deprecated: Use ZeroCopySinkMetaData.ABI instead. -var ZeroCopySinkABI = ZeroCopySinkMetaData.ABI +const ZeroCopySinkABI = "[]" // ZeroCopySinkBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use ZeroCopySinkMetaData.Bin instead. -var ZeroCopySinkBin = ZeroCopySinkMetaData.Bin +var ZeroCopySinkBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820cecc9338fc54f8484e8a2ab213275b7461d0c2306c7ddb6b1cd906f640634b1164736f6c63430005110032" // DeployZeroCopySink deploys a new Ethereum contract, binding an instance of ZeroCopySink to it. func DeployZeroCopySink(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySink, error) { - parsed, err := ZeroCopySinkMetaData.GetAbi() + parsed, err := abi.JSON(strings.NewReader(ZeroCopySinkABI)) 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(ZeroCopySinkBin), backend) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySinkBin), backend) if err != nil { return common.Address{}, nil, nil, err } @@ -5127,31 +5165,20 @@ func (_ZeroCopySink *ZeroCopySinkTransactorRaw) Transact(opts *bind.TransactOpts return _ZeroCopySink.Contract.contract.Transact(opts, method, params...) } -// ZeroCopySourceMetaData contains all meta data concerning the ZeroCopySource contract. -var ZeroCopySourceMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820dc0d1cc66290db3a4e92d781ba8eb79e3c356f2b5d087a01769cb6d625c1d05564736f6c63430005110032", -} - // ZeroCopySourceABI is the input ABI used to generate the binding from. -// Deprecated: Use ZeroCopySourceMetaData.ABI instead. -var ZeroCopySourceABI = ZeroCopySourceMetaData.ABI +const ZeroCopySourceABI = "[]" // ZeroCopySourceBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use ZeroCopySourceMetaData.Bin instead. -var ZeroCopySourceBin = ZeroCopySourceMetaData.Bin +var ZeroCopySourceBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820744137c46116f0d22c829936c9138f811cd0b2b229082db0456efd79052caf1e64736f6c63430005110032" // DeployZeroCopySource deploys a new Ethereum contract, binding an instance of ZeroCopySource to it. func DeployZeroCopySource(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySource, error) { - parsed, err := ZeroCopySourceMetaData.GetAbi() + parsed, err := abi.JSON(strings.NewReader(ZeroCopySourceABI)) 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(ZeroCopySourceBin), backend) + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySourceBin), backend) if err != nil { return common.Address{}, nil, nil, err } diff --git a/abi/now_eccm_abi/eccm_abi.go b/abi/now_eccm_abi/eccm_abi.go deleted file mode 100644 index 7136d1e..0000000 --- a/abi/now_eccm_abi/eccm_abi.go +++ /dev/null @@ -1,5328 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package now_eccm_abi - -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 -) - -// ContextABI is the input ABI used to generate the binding from. -const ContextABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]" - -// Context is an auto generated Go binding around an Ethereum contract. -type Context struct { - ContextCaller // Read-only binding to the contract - ContextTransactor // Write-only binding to the contract - ContextFilterer // Log filterer for contract events -} - -// ContextCaller is an auto generated read-only Go binding around an Ethereum contract. -type ContextCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ContextTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ContextTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ContextFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ContextFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ContextSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ContextSession struct { - Contract *Context // 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 -} - -// ContextCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ContextCallerSession struct { - Contract *ContextCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ContextTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ContextTransactorSession struct { - Contract *ContextTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ContextRaw is an auto generated low-level Go binding around an Ethereum contract. -type ContextRaw struct { - Contract *Context // Generic contract binding to access the raw methods on -} - -// ContextCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ContextCallerRaw struct { - Contract *ContextCaller // Generic read-only contract binding to access the raw methods on -} - -// ContextTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ContextTransactorRaw struct { - Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewContext creates a new instance of Context, bound to a specific deployed contract. -func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) { - contract, err := bindContext(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil -} - -// NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract. -func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) { - contract, err := bindContext(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ContextCaller{contract: contract}, nil -} - -// NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract. -func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) { - contract, err := bindContext(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ContextTransactor{contract: contract}, nil -} - -// NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract. -func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) { - contract, err := bindContext(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ContextFilterer{contract: contract}, nil -} - -// bindContext binds a generic wrapper to an already deployed contract. -func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(ContextABI)) - 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 (_Context *ContextRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Context.Contract.ContextCaller.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 (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Context.Contract.ContextTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Context.Contract.ContextTransactor.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 (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Context.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 (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Context.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Context.Contract.contract.Transact(opts, method, params...) -} - -// ECCUtilsABI is the input ABI used to generate the binding from. -const ECCUtilsABI = "[]" - -// ECCUtilsBin is the compiled bytecode used for deploying new contracts. -var ECCUtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582068157e4171167b57137cdb287bd0f3d469960d8e34113a38b1b5e82da8552dfb64736f6c63430005110032" - -// DeployECCUtils deploys a new Ethereum contract, binding an instance of ECCUtils to it. -func DeployECCUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ECCUtils, error) { - parsed, err := abi.JSON(strings.NewReader(ECCUtilsABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ECCUtilsBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &ECCUtils{ECCUtilsCaller: ECCUtilsCaller{contract: contract}, ECCUtilsTransactor: ECCUtilsTransactor{contract: contract}, ECCUtilsFilterer: ECCUtilsFilterer{contract: contract}}, nil -} - -// ECCUtils is an auto generated Go binding around an Ethereum contract. -type ECCUtils struct { - ECCUtilsCaller // Read-only binding to the contract - ECCUtilsTransactor // Write-only binding to the contract - ECCUtilsFilterer // Log filterer for contract events -} - -// ECCUtilsCaller is an auto generated read-only Go binding around an Ethereum contract. -type ECCUtilsCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ECCUtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ECCUtilsTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ECCUtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ECCUtilsFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ECCUtilsSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ECCUtilsSession struct { - Contract *ECCUtils // 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 -} - -// ECCUtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ECCUtilsCallerSession struct { - Contract *ECCUtilsCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ECCUtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ECCUtilsTransactorSession struct { - Contract *ECCUtilsTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ECCUtilsRaw is an auto generated low-level Go binding around an Ethereum contract. -type ECCUtilsRaw struct { - Contract *ECCUtils // Generic contract binding to access the raw methods on -} - -// ECCUtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ECCUtilsCallerRaw struct { - Contract *ECCUtilsCaller // Generic read-only contract binding to access the raw methods on -} - -// ECCUtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ECCUtilsTransactorRaw struct { - Contract *ECCUtilsTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewECCUtils creates a new instance of ECCUtils, bound to a specific deployed contract. -func NewECCUtils(address common.Address, backend bind.ContractBackend) (*ECCUtils, error) { - contract, err := bindECCUtils(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ECCUtils{ECCUtilsCaller: ECCUtilsCaller{contract: contract}, ECCUtilsTransactor: ECCUtilsTransactor{contract: contract}, ECCUtilsFilterer: ECCUtilsFilterer{contract: contract}}, nil -} - -// NewECCUtilsCaller creates a new read-only instance of ECCUtils, bound to a specific deployed contract. -func NewECCUtilsCaller(address common.Address, caller bind.ContractCaller) (*ECCUtilsCaller, error) { - contract, err := bindECCUtils(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ECCUtilsCaller{contract: contract}, nil -} - -// NewECCUtilsTransactor creates a new write-only instance of ECCUtils, bound to a specific deployed contract. -func NewECCUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*ECCUtilsTransactor, error) { - contract, err := bindECCUtils(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ECCUtilsTransactor{contract: contract}, nil -} - -// NewECCUtilsFilterer creates a new log filterer instance of ECCUtils, bound to a specific deployed contract. -func NewECCUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*ECCUtilsFilterer, error) { - contract, err := bindECCUtils(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ECCUtilsFilterer{contract: contract}, nil -} - -// bindECCUtils binds a generic wrapper to an already deployed contract. -func bindECCUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(ECCUtilsABI)) - 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 (_ECCUtils *ECCUtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ECCUtils.Contract.ECCUtilsCaller.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 (_ECCUtils *ECCUtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ECCUtils.Contract.ECCUtilsTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ECCUtils *ECCUtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ECCUtils.Contract.ECCUtilsTransactor.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 (_ECCUtils *ECCUtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ECCUtils.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 (_ECCUtils *ECCUtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ECCUtils.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ECCUtils *ECCUtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ECCUtils.Contract.contract.Transact(opts, method, params...) -} - -// EthCrossChainManagerABI is the input ABI used to generate the binding from. -const EthCrossChainManagerABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_eccd\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"fromContractWhiteList\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"contractMethodWhiteList\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"ChangeBookKeeperEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"txId\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proxyOrAssetContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawdata\",\"type\":\"bytes\"}],\"name\":\"CrossChainEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"}],\"name\":\"InitGenesisBlockEvent\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fromChainID\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"crossChainTxHash\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"fromChainTxHash\",\"type\":\"bytes\"}],\"name\":\"VerifyHeaderAndExecuteTxEvent\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sigList\",\"type\":\"bytes\"}],\"name\":\"changeBookKeeper\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"pubKeyList\",\"type\":\"bytes\"}],\"name\":\"initGenesisBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"rawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"curRawHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"headerSig\",\"type\":\"bytes\"}],\"name\":\"verifyHeaderAndExecuteTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"whiteListContractMethodMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whiteListFromContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" - -// EthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. -var EthCrossChainManagerFuncSigs = map[string]string{ - "00ba1694": "EthCrossChainDataAddress()", - "9a8a0592": "chainId()", - "29dcf4ab": "changeBookKeeper(bytes,bytes,bytes)", - "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", - "34a773eb": "initGenesisBlock(bytes,bytes)", - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "715018a6": "renounceOwnership()", - "6f31031d": "setChainId(uint64)", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", - "d450e04c": "verifyHeaderAndExecuteTx(bytes,bytes,bytes,bytes,bytes)", - "ba1c9bc7": "whiteListContractMethodMap(address,bytes)", - "73f53ba4": "whiteListFromContract(address)", -} - -// EthCrossChainManagerBin is the compiled bytecode used for deploying new contracts. -var EthCrossChainManagerBin = "0x60806040523480156200001157600080fd5b5060405162004e0a38038062004e0a833981016040819052620000349162000436565b838360006200004b6001600160e01b036200021216565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19168155600180546001600160401b03909316600160a01b02600160a01b600160e01b03196001600160a01b039095166001600160a01b03199094169390931793909316919091179091555b825181101562000142576001600260008584815181106200010757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620000ea565b5060005b81518110156200020757600060608383815181106200016157fe5b60200260200101518060200190516200017e9190810190620003df565b909250905060005b8151811015620001fb576001600160a01b0383166000908152600360205260409020825160019190849084908110620001bb57fe5b6020026020010151604051620001d2919062000505565b908152604051908190036020019020805491151560ff1990921691909117905560010162000186565b50505060010162000146565b505050505062000609565b3390565b80516200022381620005e4565b92915050565b600082601f8301126200023b57600080fd5b8151620002526200024c8262000541565b6200051a565b915081818352602084019350602081019050838560208402820111156200027857600080fd5b60005b83811015620002a8578162000291888262000216565b84525060209283019291909101906001016200027b565b5050505092915050565b600082601f830112620002c457600080fd5b8151620002d56200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200030088826200037c565b8452506020928301929190910190600101620002e7565b600082601f8301126200032957600080fd5b81516200033a6200024c8262000541565b81815260209384019390925082018360005b83811015620002a857815186016200036588826200037c565b84525060209283019291909101906001016200034c565b600082601f8301126200038e57600080fd5b81516200039f6200024c8262000562565b91508082526020830160208301858383011115620003bc57600080fd5b620003c9838284620005b1565b50505092915050565b80516200022381620005fe565b60008060408385031215620003f357600080fd5b600062000401858562000216565b92505060208301516001600160401b038111156200041e57600080fd5b6200042c85828601620002b2565b9150509250929050565b600080600080608085870312156200044d57600080fd5b60006200045b878762000216565b94505060206200046e87828801620003d2565b93505060408501516001600160401b038111156200048b57600080fd5b620004998782880162000229565b92505060608501516001600160401b03811115620004b657600080fd5b620004c48782880162000317565b91505092959194509250565b6000620004dd826200058a565b620004e981856200058e565b9350620004fb818560208601620005b1565b9290920192915050565b6000620005138284620004d0565b9392505050565b6040518181016001600160401b03811182821017156200053957600080fd5b604052919050565b60006001600160401b038211156200055857600080fd5b5060209081020190565b60006001600160401b038211156200057957600080fd5b506020601f91909101601f19160190565b5190565b919050565b60006001600160a01b03821662000223565b6001600160401b031690565b60005b83811015620005ce578181015183820152602001620005b4565b83811115620005de576000848401525b50505050565b620005ef8162000593565b8114620005fb57600080fd5b50565b620005ef81620005a5565b6147f180620006196000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c80637e724ff3116100a25780639a8a0592116100715780639a8a0592146101cb578063ba1c9bc7146101e0578063bd5cf625146101f3578063d450e04c14610206578063f2fde38b146102195761010a565b80637e724ff3146101a05780638456cb59146101b35780638da5cb5b146101bb5780638f32d59b146101c35761010a565b80635c975abb116100de5780635c975abb146101685780636f31031d14610170578063715018a61461018357806373f53ba41461018d5761010a565b8062ba16941461010f57806329dcf4ab1461012d57806334a773eb1461014d5780633f4ba83a14610160575b600080fd5b61011761022c565b6040516101249190614194565b60405180910390f35b61014061013b366004612fd7565b61023b565b60405161012491906141b0565b61014061015b366004612fa2565b610609565b6101406108bc565b610140610a11565b61014061017e36600461316d565b610a21565b61018b610a9b565b005b61014061019b366004612ec3565b610b09565b6101406101ae366004612ec3565b610b1e565b610140610bd9565b610117610d24565b610140610d33565b6101d3610d57565b60405161012491906145d4565b6101406101ee366004612ee1565b610d6d565b61014061020136600461318b565b610d9e565b610140610214366004613068565b611127565b61018b610227366004612ec3565b6115de565b6001546001600160a01b031681565b60008054600160a01b900460ff161561026f5760405162461bcd60e51b8152600401610266906143a6565b60405180910390fd5b610277612cec565b6102808561160e565b90506000600160009054906101000a90046001600160a01b031690506000816001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156102d757600080fd5b505afa1580156102eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061030f919081019061314f565b63ffffffff169050806001600160401b0316836060015163ffffffff16116103495760405162461bcd60e51b8152600401610266906143d6565b6101408301516bffffffffffffffffffffffff191661037a5760405162461bcd60e51b8152600401610266906142e6565b60606103f9836001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f49190810190612f6e565b61172d565b8051909150610414898884600360001986015b0485036117e0565b6104305760405162461bcd60e51b815260040161026690614376565b6000606061043d8a6119e3565b91509150816001600160601b0319168761014001516001600160601b031916146104795760405162461bcd60e51b8152600401610266906143c6565b6060870151604051638a8bd17f60e01b81526001600160a01b03881691638a8bd17f916104a991906004016145a6565b602060405180830381600087803b1580156104c357600080fd5b505af11580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104fb9190810190612f32565b6105175760405162461bcd60e51b815260040161026690614476565b856001600160a01b03166341973cd961052f83611a5f565b6040518263ffffffff1660e01b815260040161054b9190614201565b602060405180830381600087803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061059d9190810190612f32565b6105b95760405162461bcd60e51b8152600401610266906143f6565b7fe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b69087606001518c6040516105ee9291906145b4565b60405180910390a160019750505050505050505b9392505050565b60008054600160a01b900460ff16156106345760405162461bcd60e51b8152600401610266906143a6565b60015460408051631a75201d60e21b815290516001600160a01b039092169182916369d48074916004808301926000929190829003018186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b69190810190612f6e565b51156106d45760405162461bcd60e51b8152600401610266906144f6565b6106dc612cec565b6106e58561160e565b9050600060606106f4866119e3565b91509150816001600160601b0319168361014001516001600160601b031916146107305760405162461bcd60e51b8152600401610266906143c6565b6060830151604051638a8bd17f60e01b81526001600160a01b03861691638a8bd17f9161076091906004016145a6565b602060405180830381600087803b15801561077a57600080fd5b505af115801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b29190810190612f32565b6107ce5760405162461bcd60e51b815260040161026690614346565b836001600160a01b03166341973cd96107e683611a5f565b6040518263ffffffff1660e01b81526004016108029190614201565b602060405180830381600087803b15801561081c57600080fd5b505af1158015610830573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108549190810190612f32565b6108705760405162461bcd60e51b815260040161026690614516565b7ff01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde8360600151886040516108a59291906145b4565b60405180910390a160019450505050505b92915050565b60006108c6610d33565b6108e25760405162461bcd60e51b815260040161026690614416565b6108ea610a11565b156108f7576108f7611ace565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561093d57600080fd5b505afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109759190810190612f32565b15610a0957806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109ed9190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142f6565b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff16610a4b5760405162461bcd60e51b8152600401610266906142a6565b610a53610d33565b610a6f5760405162461bcd60e51b815260040161026690614416565b506001805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021781555b919050565b610aa3610d33565b610abf5760405162461bcd60e51b815260040161026690614416565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60026020526000908152604090205460ff1681565b60008054600160a01b900460ff16610b485760405162461bcd60e51b8152600401610266906142a6565b610b50610d33565b610b6c5760405162461bcd60e51b815260040161026690614416565b60015460405163f2fde38b60e01b81526001600160a01b0390911690819063f2fde38b90610b9e908690600401614194565b600060405180830381600087803b158015610bb857600080fd5b505af1158015610bcc573d6000803e3d6000fd5b5060019695505050505050565b6000610be3610d33565b610bff5760405162461bcd60e51b815260040161026690614416565b610c07610a11565b610c1357610c13611b44565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b158015610c5957600080fd5b505afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c919190810190612f32565b610a0957806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610cd057600080fd5b505af1158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d089190810190612f32565b610a095760405162461bcd60e51b8152600401610266906142c6565b6000546001600160a01b031690565b600080546001600160a01b0316610d48611ba6565b6001600160a01b031614905090565b600154600160a01b90046001600160401b031681565b6003602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b60008054600160a01b900460ff1615610dc95760405162461bcd60e51b8152600401610266906143a6565b3360009081526002602052604090205460ff16610df85760405162461bcd60e51b815260040161026690614396565b60015460408051600162c2db5f60e01b0319815290516001600160a01b0390921691600091839163ff3d24a191600480820192602092909190829003018186803b158015610e4557600080fd5b505afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e7d9190810190612f50565b90506060610e8a82611baa565b90506060610e9782611bee565b610f2d60023085604051602001610eaf929190614058565b60408051601f1981840301815290829052610ec9916140f8565b602060405180830381855afa158015610ee6573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250610f099190810190612f50565b604051602001610f1991906140c7565b604051602081830303815290604052611bee565b610f3e610f3933611c25565b611bee565b610f478f611c40565b610f868f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b610fc58e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b6110048d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bee92505050565b60405160200161101a979695949392919061411c565b60408051601f19818403018152908290528051602082012063130f33d960e21b83529092506001600160a01b03861691634c3ccf649161105c916004016141be565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110ae9190810190612f32565b6110ca5760405162461bcd60e51b815260040161026690614566565b326001600160a01b03167f6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be8848383338f8f8f8760405161110d96959493929190614212565b60405180910390a25060019b9a5050505050505050505050565b60008054600160a01b900460ff16156111525760405162461bcd60e51b8152600401610266906143a6565b61115a612cec565b6111638661160e565b90506000600160009054906101000a90046001600160a01b0316905060606111bd826001600160a01b03166369d480746040518163ffffffff1660e01b815260040160006040518083038186803b1580156103b857600080fd5b90506000826001600160a01b0316635ac407906040518163ffffffff1660e01b815260040160206040518083038186803b1580156111fa57600080fd5b505afa15801561120e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611232919081019061314f565b63ffffffff16905060008251905081856060015163ffffffff1610611284576112638a88856003600019860161040c565b61127f5760405162461bcd60e51b815260040161026690614596565b61130a565b6112968888856003600019860161040c565b6112b25760405162461bcd60e51b815260040161026690614496565b6112ba612cec565b6112c38961160e565b905060606112d68b836101000151611c83565b90506112e181611d82565b6112ea8d611dad565b146113075760405162461bcd60e51b815260040161026690614316565b50505b606061131a8c8760e00151611c83565b9050611324612d47565b61132d82611e6a565b9050856001600160a01b0316630586763c82602001516113508460000151611d82565b6040518363ffffffff1660e01b815260040161136d9291906145e2565b60206040518083038186803b15801561138557600080fd5b505afa158015611399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113bd9190810190612f32565b156113da5760405162461bcd60e51b815260040161026690614556565b856001600160a01b031663e90bfdcf82602001516113fb8460000151611d82565b6040518363ffffffff1660e01b81526004016114189291906145e2565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612f32565b6114865760405162461bcd60e51b815260040161026690614336565b6001546040820151606001516001600160401b03908116600160a01b90920416146114c35760405162461bcd60e51b815260040161026690614356565b60006114d6826040015160800151611f46565b6001600160a01b038116600090815260036020526040908190208482015160a0015191519293509161150891906140f8565b9081526040519081900360200190205460ff166115375760405162461bcd60e51b815260040161026690614386565b61156081836040015160a00151846040015160c001518560400151604001518660200151611f71565b61157c5760405162461bcd60e51b8152600401610266906142b6565b602082015160408084015160808101518551915192517f8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae946115c0949093916145fd565b60405180910390a16001985050505050505050505b95945050505050565b6115e6610d33565b6116025760405162461bcd60e51b815260040161026690614416565b61160b816120e2565b50565b611616612cec565b61161e612cec565b600061162a8482612163565b63ffffffff9091168352905061164084826121ec565b6001600160401b039091166020840152905061165c8482612273565b60a084019190915290506116708482612273565b60c084019190915290506116848482612273565b60e084019190915290506116988482612273565b61010084019190915290506116ad8482612163565b63ffffffff909116604084015290506116c68482612163565b63ffffffff909116606084015290506116df84826121ec565b6001600160401b03909116608084015290506116fb84826122b8565b6101208401919091529050611710848261236c565b506bffffffffffffffffffffffff19166101408301525092915050565b606060008061173c84826121ec565b80935081925050506060816001600160401b0316604051908082528060200260200182016040528015611779578160200160208202803883390190505b509050606060005b836001600160401b03168110156117d55761179c87866122b8565b955091506117a982611f46565b8382815181106117b557fe5b6001600160a01b0390921660209283029190910190910152600101611781565b509095945050505050565b6000806117ec86611dad565b90506000611805604187516123b590919063ffffffff16565b9050606081604051908082528060200260200182016040528015611833578160200160208202803883390190505b50905060008080805b858110156119c65761185b6118568c6041840260206123f7565b611d82565b93506118726118568c6041840260200160206123f7565b92508a604182026040018151811061188657fe5b602001015160f81c60f81b60f81c601b01915060016002886040516020016118ae91906140c7565b60408051601f19818403018152908290526118c8916140f8565b602060405180830381855afa1580156118e5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506119089190810190612f50565b8386866040516000815260200160405260405161192894939291906141cc565b6020604051602081039080840390855afa15801561194a573d6000803e3d6000fd5b5050506020604051035185828151811061196057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006001600160a01b031685828151811061199757fe5b60200260200101516001600160a01b031614156119be5760009750505050505050506119db565b60010161183c565b506119d289858a612477565b96505050505050505b949350505050565b6000606060438351816119f257fe5b0615611a105760405162461bcd60e51b815260040161026690614456565b60006043845181611a1d57fe5b0490506001811015611a415760405162461bcd60e51b8152600401610266906144c6565b611a55816003600019820104830386612518565b9250925050915091565b805160609081611a6e82611c40565b905060005b82811015611ac65781611a9b610f39878481518110611a8e57fe5b6020026020010151611c25565b604051602001611aac929190614104565b60408051601f198184030181529190529150600101611a73565b509392505050565b600054600160a01b900460ff16611af75760405162461bcd60e51b8152600401610266906142a6565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b2d611ba6565b604051611b3a91906141a2565b60405180910390a1565b600054600160a01b900460ff1615611b6e5760405162461bcd60e51b8152600401610266906143a6565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611b2d5b3390565b60606001600160ff1b03821115611bd35760405162461bcd60e51b815260040161026690614406565b60405190506020815281602082015260408101604052919050565b8051606090611bfc816126cd565b83604051602001611c0e929190614104565b604051602081830303815290604052915050919050565b604080516014815260609290921b6020830152818101905290565b6040516008808252606091906000601f5b82821015611c735785811a826020860101536001919091019060001901611c51565b5050506028810160405292915050565b6060600081611c9285836122b8565b925090506000611ca182612784565b90506000611cca6021611cbe868a5161279f90919063ffffffff16565b9063ffffffff6123b516565b9050600080805b83811015611d5557611ce38a886127e1565b97509150611cf18a88612273565b975092506001600160f81b03198216611d1557611d0e838661282a565b9450611d4d565b600160f81b6001600160f81b031983161415611d3557611d0e858461282a565b60405162461bcd60e51b815260040161026690614436565b600101611cd1565b50878414611d755760405162461bcd60e51b8152600401610266906143b6565b5092979650505050505050565b60008151602014611da55760405162461bcd60e51b8152600401610266906144b6565b506020015190565b600060028083604051611dc091906140f8565b602060405180830381855afa158015611ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250611e009190810190612f50565b604051602001611e1091906140c7565b60408051601f1981840301815290829052611e2a916140f8565b602060405180830381855afa158015611e47573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506108b69190810190612f50565b611e72612d47565b611e7a612d47565b6000611e8684826122b8565b9083529050611e9584826121ec565b6001600160401b0390911660208401529050611eaf612d6b565b611eb985836122b8565b9082529150611ec885836122b8565b60208301919091529150611edc85836122b8565b60408301919091529150611ef085836121ec565b6001600160401b0390911660608301529150611f0c85836122b8565b60808301919091529150611f2085836122b8565b60a08301919091529150611f3485836122b8565b5060c082015260408301525092915050565b60008151601414611f695760405162461bcd60e51b815260040161026690614306565b506014015190565b6000611f7c866128a1565b611f985760405162461bcd60e51b815260040161026690614466565b60606000876001600160a01b031687604051602001611fb7919061417d565b60405160208183030381529060405280519060200120878787604051602001611fe293929190614272565b60408051601f198184030181529082905261200092916020016140dc565b60408051601f198184030181529082905261201a916140f8565b6000604051808303816000865af19150503d8060008114612057576040519150601f19603f3d011682016040523d82523d6000602084013e61205c565b606091505b50925090506001811515146120835760405162461bcd60e51b8152600401610266906143e6565b81516120a15760405162461bcd60e51b8152600401610266906144a6565b60006120ae83601f6128d8565b5090506001811515146120d35760405162461bcd60e51b8152600401610266906144d6565b50600198975050505050505050565b6001600160a01b0381166121085760405162461bcd60e51b815260040161026690614326565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000808351836004011115801561217c57508260040183105b6121985760405162461bcd60e51b815260040161026690614576565b600060405160046000600182038760208a0101515b838310156121cd5780821a838601536001830192506001820391506121ad565b50505080820160405260200390035192505050600482015b9250929050565b6000808351836008011115801561220557508260080183105b6122215760405162461bcd60e51b815260040161026690614536565b600060405160086000600182038760208a0101515b838310156122565780821a83860153600183019250600182039150612236565b505050808201604052602003900351956008949094019450505050565b6000808351836020011115801561228c57508260200183105b6122a85760405162461bcd60e51b815260040161026690614526565b5050602091810182015192910190565b60606000806122c78585612971565b8651909550909150818501118015906122e1575080840184105b6122fd5760405162461bcd60e51b815260040161026690614586565b60608115801561231857604051915060208201604052612362565b6040519150601f8316801560200281840101848101888315602002848c0101015b81831015612351578051835260209283019201612339565b5050848452601f01601f1916604052505b5095930193505050565b6000808351836014011115801561238557508260140183105b6123a15760405162461bcd60e51b815260040161026690614366565b505081810160200151601482019250929050565b600061060283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ab6565b60608183018451101561240957600080fd5b6060821580156124245760405191506020820160405261246e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561245d578051835260209283019201612445565b5050858452601f01601f1916604052505b50949350505050565b600080805b845181101561250c5760005b86518110156125035786818151811061249d57fe5b60200260200101516001600160a01b03168683815181106124ba57fe5b60200260200101516001600160a01b031614156124fb5782806001019350508681815181106124e557fe5b6020026020010160006001600160a01b03168152505b600101612488565b5060010161247c565b50909111159392505050565b600060608061252686612aed565b9050606086604051908082528060200260200182016040528015612554578160200160208202803883390190505b50905060006060815b898110156125eb57612574886043830260436123f7565b915084612583610f3984612b30565b604051602001612594929190614104565b60405160208183030381529060405294506125b282600360406123f7565b8051906020012092508260001c8482815181106125cb57fe5b6001600160a01b039092166020928302919091019091015260010161255d565b50836125f689612aed565b604051602001612607929190614104565b60405160208183030381529060405293506000600360028660405161262c91906140f8565b602060405180830381855afa158015612649573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525061266c9190810190612f50565b60405160200161267c91906140c7565b60408051601f1981840301815290829052612696916140f8565b602060405180830381855afa1580156126b3573d6000803e3d6000fd5b50506040515160601b9b949a509398505050505050505050565b606060fd826001600160401b031610156126f1576126ea82612be9565b9050610a96565b61ffff826001600160401b0316116127405761271060fd60f81b612c05565b61271983612aed565b60405160200161272a929190614104565b6040516020818303038152906040529050610a96565b63ffffffff826001600160401b03161161276a57612761607f60f91b612c05565b61271983612c13565b61277b6001600160f81b0319612c05565b61271983611c40565b60006002600060f81b83604051602001611e109291906140ab565b600061060283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c56565b600080835183600101111580156127fa57508260010183105b6128165760405162461bcd60e51b815260040161026690614446565b505081810160200151600182019250929050565b60006002600160f81b848460405160200161284793929190614074565b60408051601f1981840301815290829052612861916140f8565b602060405180830381855afa15801561287e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506106029190810190612f50565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906119db5750141592915050565b600080835183600101111580156128f157508260010183105b61290d5760405162461bcd60e51b815260040161026690614506565b838301602001516000600160f81b6001600160f81b03198316141561293457506001612963565b6001600160f81b0319821661294b57506000612963565b60405162461bcd60e51b815260040161026690614426565b956001949094019450505050565b600080600061298085856127e1565b94509050600060fd60f81b6001600160f81b0319831614156129e9576129a68686612c82565b955061ffff16905060fd81108015906129c1575061ffff8111155b6129dd5760405162461bcd60e51b8152600401610266906142d6565b92508391506121e59050565b607f60f91b6001600160f81b031983161415612a4457612a098686612163565b955063ffffffff16905061ffff81118015612a28575063ffffffff8111155b6129dd5760405162461bcd60e51b815260040161026690614486565b6001600160f81b03198083161415612a9057612a6086866121ec565b95506001600160401b0316905063ffffffff81116129dd5760405162461bcd60e51b815260040161026690614486565b5060f881901c60fd81106129dd5760405162461bcd60e51b815260040161026690614486565b60008183612ad75760405162461bcd60e51b81526004016102669190614201565b506000838581612ae357fe5b0495945050505050565b6040516002808252606091906000601f5b82821015612b205785811a826020860101536001919091019060001901612afe565b5050506022810160405292915050565b6060604382511015612b545760405162461bcd60e51b815260040161026690614546565b612b6182600060236123f7565b9050600282604281518110612b7257fe5b016020015160f81c81612b8157fe5b0660ff1660001415612bbb57600260f81b81600281518110612b9f57fe5b60200101906001600160f81b031916908160001a905350610a96565b600360f81b81600281518110612bcd57fe5b60200101906001600160f81b031916908160001a905350919050565b604080516001815260f89290921b602083015260218201905290565b60606108b68260f81c612be9565b6040516004808252606091906000601f5b82821015612c465785811a826020860101536001919091019060001901612c24565b5050506024810160405292915050565b60008184841115612c7a5760405162461bcd60e51b81526004016102669190614201565b505050900390565b60008083518360020111158015612c9b57508260020183105b612cb75760405162461bcd60e51b8152600401610266906144e6565b6000604051846020870101518060011a82538060001a6001830153506002818101604052601d19909101519694019450505050565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082015261014081019190915290565b6040805160608082018352815260006020820152908101612d66612d6b565b905290565b6040518060e0016040528060608152602001606081526020016060815260200160006001600160401b031681526020016060815260200160608152602001606081525090565b80356108b681614776565b80516108b68161478a565b80516108b681614793565b60008083601f840112612de457600080fd5b5081356001600160401b03811115612dfb57600080fd5b6020830191508360018202830111156121e557600080fd5b600082601f830112612e2457600080fd5b8135612e37612e3282614675565b61464f565b91508082526020830160208301858383011115612e5357600080fd5b612e5e838284614719565b50505092915050565b600082601f830112612e7857600080fd5b8151612e86612e3282614675565b91508082526020830160208301858383011115612ea257600080fd5b612e5e838284614725565b80516108b68161479c565b80356108b6816147a5565b600060208284031215612ed557600080fd5b60006119db8484612db1565b60008060408385031215612ef457600080fd5b6000612f008585612db1565b92505060208301356001600160401b03811115612f1c57600080fd5b612f2885828601612e13565b9150509250929050565b600060208284031215612f4457600080fd5b60006119db8484612dbc565b600060208284031215612f6257600080fd5b60006119db8484612dc7565b600060208284031215612f8057600080fd5b81516001600160401b03811115612f9657600080fd5b6119db84828501612e67565b60008060408385031215612fb557600080fd5b82356001600160401b03811115612fcb57600080fd5b612f0085828601612e13565b600080600060608486031215612fec57600080fd5b83356001600160401b0381111561300257600080fd5b61300e86828701612e13565b93505060208401356001600160401b0381111561302a57600080fd5b61303686828701612e13565b92505060408401356001600160401b0381111561305257600080fd5b61305e86828701612e13565b9150509250925092565b600080600080600060a0868803121561308057600080fd5b85356001600160401b0381111561309657600080fd5b6130a288828901612e13565b95505060208601356001600160401b038111156130be57600080fd5b6130ca88828901612e13565b94505060408601356001600160401b038111156130e657600080fd5b6130f288828901612e13565b93505060608601356001600160401b0381111561310e57600080fd5b61311a88828901612e13565b92505060808601356001600160401b0381111561313657600080fd5b61314288828901612e13565b9150509295509295909350565b60006020828403121561316157600080fd5b60006119db8484612ead565b60006020828403121561317f57600080fd5b60006119db8484612eb8565b60008060008060008060006080888a0312156131a657600080fd5b60006131b28a8a612eb8565b97505060208801356001600160401b038111156131ce57600080fd5b6131da8a828b01612dd2565b965096505060408801356001600160401b038111156131f857600080fd5b6132048a828b01612dd2565b945094505060608801356001600160401b0381111561322257600080fd5b61322e8a828b01612dd2565b925092505092959891949750929550565b613248816146fd565b82525050565b613248816146a9565b613248613263826146a9565b614755565b613248816146b4565b61324861327d826146b9565b6146c6565b613248816146c6565b61324861327d826146c6565b61324861327d826146c9565b60006132af83856146a0565b93506132bc838584614719565b6132c583614766565b9093019392505050565b60006132da8261469c565b6132e481856146a0565b93506132f4818560208601614725565b6132c581614766565b60006133088261469c565b6133128185610a96565b9350613322818560208601614725565b9290920192915050565b60006133396014836146a0565b7314185d5cd8589b194e881b9bdd081c185d5cd95960621b815260200192915050565b6000613369601d836146a0565b7f457865637574652043726f7373436861696e205478206661696c656421000000815260200192915050565b60006133a26027836146a0565b7f70617573652045746843726f7373436861696e4461746120636f6e74726163748152660819985a5b195960ca1b602082015260400192915050565b60006133eb601f836146a0565b7f4e65787455696e7431362c2076616c7565206f7574736964652072616e676500815260200192915050565b60006134246025836146a0565b7f546865206e657874426f6f6b4b6565706572206f662068656164657220697320815264656d70747960d81b602082015260400192915050565b600061346b6029836146a0565b7f756e70617573652045746843726f7373436861696e4461746120636f6e74726181526818dd0819985a5b195960ba1b602082015260400192915050565b60006134b66023836146a0565b7f6279746573206c656e67746820646f6573206e6f74206d61746368206164647281526265737360e81b602082015260400192915050565b60006134fb601b836146a0565b7f766572696679206865616465722070726f6f66206661696c6564210000000000815260200192915050565b60006135346026836146a0565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b602082015260400192915050565b600061357c6020836146a0565b7f536176652063726f7373636861696e207478206578697374206661696c656421815260200192915050565b60006135b56043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820737481527f6172742068656967687420746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b60006136206026836146a0565b7f54686973205478206973206e6f742061696d696e672061742074686973206e6581526574776f726b2160d01b602082015260400192915050565b60006136686023836146a0565b7f4e657874427974657332302c206f66667365742065786365656473206d6178698152626d756d60e81b602082015260400192915050565b60006136ad6018836146a0565b7f566572696679207369676e6174757265206661696c6564210000000000000000815260200192915050565b60006136e6601d836146a0565b7f496e76616c696420746f20636f6e7472616374206f72206d6574686f64000000815260200192915050565b600061371f6015836146a0565b74125b9d985b1a5908199c9bdb4818dbdb9d1c9858dd605a1b815260200192915050565b60006137506010836146a0565b6f14185d5cd8589b194e881c185d5cd95960821b815260200192915050565b600061377c6031836146a0565b7f6d65726b6c6550726f76652c2065787065637420726f6f74206973206e6f7420815270195c5d585b081858dd1d585b081c9bdbdd607a1b602082015260400192915050565b60006137cf6013836146a0565b7213995e1d109bdbdad95c9cc81a5b1b1959d85b606a1b815260200192915050565b60006137fe603e836146a0565b7f54686520686569676874206f6620686561646572206973206c6f77657220746881527f616e2063757272656e742065706f636820737461727420686569676874210000602082015260400192915050565b600061385d602b836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481526a1c9858dd0819985a5b195960aa1b602082015260400192915050565b60006138aa603b836146a0565b7f5361766520506f6c7920636861696e20626f6f6b206b6565706572732062797481527f657320746f204461746120636f6e7472616374206661696c6564210000000000602082015260400192915050565b60006139096017836146a0565b7f56616c75652065786365656473207468652072616e6765000000000000000000815260200192915050565b60006139426020836146a0565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061397b6014836146a0565b732732bc3a2137b7b6103b30b63ab29032b93937b960611b815260200192915050565b60006139ab602e836146a0565b7f6d65726b6c6550726f76652c204e6578744279746520666f7220706f7369746981526d1bdb881a5b999bc819985a5b195960921b602082015260400192915050565b60006139fb6020836146a0565b7f4e657874427974652c204f66667365742065786365656473206d6178696d756d815260200192915050565b6000613a34601b836146a0565b7f5f7075624b65794c697374206c656e67746820696c6c6567616c210000000000815260200192915050565b6000613a6d6028836146a0565b7f5468652070617373656420696e2061646472657373206973206e6f74206120638152676f6e74726163742160c01b602082015260400192915050565b6000613ab7602d836146a0565b7f53617665204d43204c617465737448656967687420746f204461746120636f6e81526c7472616374206661696c65642160981b602082015260400192915050565b6000613b066020836146a0565b7f4e65787456617255696e742c2076616c7565206f7574736964652072616e6765815260200192915050565b6000613b3f6038836146a0565b7f56657269667920706f6c7920636861696e2063757272656e742065706f63682081527f686561646572207369676e6174757265206661696c6564210000000000000000602082015260400192915050565b6000613b9e601483610a96565b732862797465732c62797465732c75696e7436342960601b815260140192915050565b6000613bce6027836146a0565b7f4e6f2072657475726e2076616c75652066726f6d20627573696e65737320636f8152666e74726163742160c81b602082015260400192915050565b6000613c176017836146a0565b7f6279746573206c656e677468206973206e6f742033322e000000000000000000815260200192915050565b6000613c506016836146a0565b75746f6f2073686f7274205f7075624b65794c6973742160501b815260200192915050565b6000613c826037836146a0565b7f45746843726f7373436861696e2063616c6c20627573696e65737320636f6e7481527f726163742072657475726e206973206e6f742074727565000000000000000000602082015260400192915050565b6000613ce16022836146a0565b7f4e65787455696e7431362c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613d256038836146a0565b7f45746843726f7373436861696e4461746120636f6e747261637420686173206181527f6c7265616479206265656e20696e697469616c697a6564210000000000000000602082015260400192915050565b6000613d846014836146a0565b7313d9999cd95d08195e18d959591cc81b1a5b5a5d60621b815260200192915050565b6000613db46043836146a0565b7f5361766520506f6c7920636861696e2063757272656e742065706f636820626f81527f6f6b206b65657065727320746f204461746120636f6e7472616374206661696c60208201526265642160e81b604082015260600192915050565b6000613e1f6020836146a0565b7f4e657874486173682c206f66667365742065786365656473206d6178696d756d815260200192915050565b6000613e586022836146a0565b7f4e65787455696e7436342c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613e9c6017836146a0565b7f6b6579206c656e67676820697320746f6f2073686f7274000000000000000000815260200192915050565b6000613ed56022836146a0565b7f746865207472616e73616374696f6e20686173206265656e2065786563757465815261642160f01b602082015260400192915050565b6000613f196030836146a0565b7f536176652065746854784861736820627920696e64657820746f20446174612081526f636f6e7472616374206661696c65642160801b602082015260400192915050565b6000613f6b6022836146a0565b7f4e65787455696e7433322c206f66667365742065786365656473206d6178696d815261756d60f01b602082015260400192915050565b6000613faf6024836146a0565b7f4e65787456617242797465732c206f66667365742065786365656473206d6178815263696d756d60e01b602082015260400192915050565b6000613ff5602a836146a0565b7f56657269667920706f6c7920636861696e20686561646572207369676e6174758152697265206661696c65642160b01b602082015260400192915050565b6132488161470e565b613248816146e2565b613248816146eb565b613248816146f7565b60006140648285613257565b6014820191506119db82846132fd565b60006140808286613271565b600182019150614090828561328b565b6020820191506140a0828461328b565b506020019392505050565b60006140b78285613271565b6001820191506119db82846132fd565b60006140d3828461328b565b50602001919050565b60006140e88285613297565b6004820191506119db82846132fd565b600061060282846132fd565b600061411082856132fd565b91506119db82846132fd565b6000614128828a6132fd565b915061413482896132fd565b915061414082886132fd565b915061414c82876132fd565b915061415882866132fd565b915061416482856132fd565b915061417082846132fd565b9998505050505050505050565b600061418982846132fd565b915061060282613b91565b602081016108b6828461324e565b602081016108b6828461323f565b602081016108b68284613268565b602081016108b68284613282565b608081016141da8287613282565b6141e7602083018661404f565b6141f46040830185613282565b6115d56060830184613282565b6020808252810161060281846132cf565b60a0808252810161422381896132cf565b9050614232602083018861323f565b61423f6040830187614046565b81810360608301526142528185876132a3565b9050818103608083015261426681846132cf565b98975050505050505050565b6060808252810161428381866132cf565b9050818103602083015261429781856132cf565b90506119db6040830184614046565b602080825281016108b68161332c565b602080825281016108b68161335c565b602080825281016108b681613395565b602080825281016108b6816133de565b602080825281016108b681613417565b602080825281016108b68161345e565b602080825281016108b6816134a9565b602080825281016108b6816134ee565b602080825281016108b681613527565b602080825281016108b68161356f565b602080825281016108b6816135a8565b602080825281016108b681613613565b602080825281016108b68161365b565b602080825281016108b6816136a0565b602080825281016108b6816136d9565b602080825281016108b681613712565b602080825281016108b681613743565b602080825281016108b68161376f565b602080825281016108b6816137c2565b602080825281016108b6816137f1565b602080825281016108b681613850565b602080825281016108b68161389d565b602080825281016108b6816138fc565b602080825281016108b681613935565b602080825281016108b68161396e565b602080825281016108b68161399e565b602080825281016108b6816139ee565b602080825281016108b681613a27565b602080825281016108b681613a60565b602080825281016108b681613aaa565b602080825281016108b681613af9565b602080825281016108b681613b32565b602080825281016108b681613bc1565b602080825281016108b681613c0a565b602080825281016108b681613c43565b602080825281016108b681613c75565b602080825281016108b681613cd4565b602080825281016108b681613d18565b602080825281016108b681613d77565b602080825281016108b681613da7565b602080825281016108b681613e12565b602080825281016108b681613e4b565b602080825281016108b681613e8f565b602080825281016108b681613ec8565b602080825281016108b681613f0c565b602080825281016108b681613f5e565b602080825281016108b681613fa2565b602080825281016108b681613fe8565b602081016108b6828461403d565b604081016145c28285614034565b81810360208301526119db81846132cf565b602081016108b68284614046565b604081016145f08285614046565b6106026020830184613282565b6080810161460b8287614046565b818103602083015261461d81866132cf565b9050818103604083015261463181856132cf565b9050818103606083015261464581846132cf565b9695505050505050565b6040518181016001600160401b038111828210171561466d57600080fd5b604052919050565b60006001600160401b0382111561468b57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b60006108b6826146d6565b151590565b6001600160f81b03191690565b90565b6001600160e01b03191690565b6001600160a01b031690565b63ffffffff1690565b6001600160401b031690565b60ff1690565b60006108b68260006108b6826146a9565b60006108b6826146e2565b82818337506000910152565b60005b83811015614740578181015183820152602001614728565b8381111561474f576000848401525b50505050565b60006108b68260006108b682614770565b601f01601f191690565b60601b90565b61477f816146a9565b811461160b57600080fd5b61477f816146b4565b61477f816146c6565b61477f816146e2565b61477f816146eb56fea365627a7a72315820e4ae8c3b456b78904d7a7832cae32737903c831f83dc48d753a1333b333f9d776c6578706572696d656e74616cf564736f6c63430005110040" - -// DeployEthCrossChainManager deploys a new Ethereum contract, binding an instance of EthCrossChainManager to it. -func DeployEthCrossChainManager(auth *bind.TransactOpts, backend bind.ContractBackend, _eccd common.Address, _chainId uint64, fromContractWhiteList []common.Address, contractMethodWhiteList [][]byte) (common.Address, *types.Transaction, *EthCrossChainManager, error) { - parsed, err := abi.JSON(strings.NewReader(EthCrossChainManagerABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EthCrossChainManagerBin), backend, _eccd, _chainId, fromContractWhiteList, contractMethodWhiteList) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &EthCrossChainManager{EthCrossChainManagerCaller: EthCrossChainManagerCaller{contract: contract}, EthCrossChainManagerTransactor: EthCrossChainManagerTransactor{contract: contract}, EthCrossChainManagerFilterer: EthCrossChainManagerFilterer{contract: contract}}, nil -} - -// EthCrossChainManager is an auto generated Go binding around an Ethereum contract. -type EthCrossChainManager struct { - EthCrossChainManagerCaller // Read-only binding to the contract - EthCrossChainManagerTransactor // Write-only binding to the contract - EthCrossChainManagerFilterer // Log filterer for contract events -} - -// EthCrossChainManagerCaller is an auto generated read-only Go binding around an Ethereum contract. -type EthCrossChainManagerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// EthCrossChainManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type EthCrossChainManagerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// EthCrossChainManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type EthCrossChainManagerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// EthCrossChainManagerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type EthCrossChainManagerSession struct { - Contract *EthCrossChainManager // 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 -} - -// EthCrossChainManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type EthCrossChainManagerCallerSession struct { - Contract *EthCrossChainManagerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// EthCrossChainManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type EthCrossChainManagerTransactorSession struct { - Contract *EthCrossChainManagerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// EthCrossChainManagerRaw is an auto generated low-level Go binding around an Ethereum contract. -type EthCrossChainManagerRaw struct { - Contract *EthCrossChainManager // Generic contract binding to access the raw methods on -} - -// EthCrossChainManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type EthCrossChainManagerCallerRaw struct { - Contract *EthCrossChainManagerCaller // Generic read-only contract binding to access the raw methods on -} - -// EthCrossChainManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type EthCrossChainManagerTransactorRaw struct { - Contract *EthCrossChainManagerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewEthCrossChainManager creates a new instance of EthCrossChainManager, bound to a specific deployed contract. -func NewEthCrossChainManager(address common.Address, backend bind.ContractBackend) (*EthCrossChainManager, error) { - contract, err := bindEthCrossChainManager(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &EthCrossChainManager{EthCrossChainManagerCaller: EthCrossChainManagerCaller{contract: contract}, EthCrossChainManagerTransactor: EthCrossChainManagerTransactor{contract: contract}, EthCrossChainManagerFilterer: EthCrossChainManagerFilterer{contract: contract}}, nil -} - -// NewEthCrossChainManagerCaller creates a new read-only instance of EthCrossChainManager, bound to a specific deployed contract. -func NewEthCrossChainManagerCaller(address common.Address, caller bind.ContractCaller) (*EthCrossChainManagerCaller, error) { - contract, err := bindEthCrossChainManager(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &EthCrossChainManagerCaller{contract: contract}, nil -} - -// NewEthCrossChainManagerTransactor creates a new write-only instance of EthCrossChainManager, bound to a specific deployed contract. -func NewEthCrossChainManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*EthCrossChainManagerTransactor, error) { - contract, err := bindEthCrossChainManager(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &EthCrossChainManagerTransactor{contract: contract}, nil -} - -// NewEthCrossChainManagerFilterer creates a new log filterer instance of EthCrossChainManager, bound to a specific deployed contract. -func NewEthCrossChainManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*EthCrossChainManagerFilterer, error) { - contract, err := bindEthCrossChainManager(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &EthCrossChainManagerFilterer{contract: contract}, nil -} - -// bindEthCrossChainManager binds a generic wrapper to an already deployed contract. -func bindEthCrossChainManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(EthCrossChainManagerABI)) - 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 (_EthCrossChainManager *EthCrossChainManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _EthCrossChainManager.Contract.EthCrossChainManagerCaller.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 (_EthCrossChainManager *EthCrossChainManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.EthCrossChainManagerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_EthCrossChainManager *EthCrossChainManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.EthCrossChainManagerTransactor.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 (_EthCrossChainManager *EthCrossChainManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_EthCrossChainManager *EthCrossChainManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.contract.Transact(opts, method, params...) -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_EthCrossChainManager *EthCrossChainManagerCaller) EthCrossChainDataAddress(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _EthCrossChainManager.contract.Call(opts, &out, "EthCrossChainDataAddress") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_EthCrossChainManager *EthCrossChainManagerSession) EthCrossChainDataAddress() (common.Address, error) { - return _EthCrossChainManager.Contract.EthCrossChainDataAddress(&_EthCrossChainManager.CallOpts) -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) EthCrossChainDataAddress() (common.Address, error) { - return _EthCrossChainManager.Contract.EthCrossChainDataAddress(&_EthCrossChainManager.CallOpts) -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_EthCrossChainManager *EthCrossChainManagerCaller) ChainId(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _EthCrossChainManager.contract.Call(opts, &out, "chainId") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_EthCrossChainManager *EthCrossChainManagerSession) ChainId() (uint64, error) { - return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) ChainId() (uint64, error) { - return _EthCrossChainManager.Contract.ChainId(&_EthCrossChainManager.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCaller) IsOwner(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _EthCrossChainManager.contract.Call(opts, &out, "isOwner") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) IsOwner() (bool, error) { - return _EthCrossChainManager.Contract.IsOwner(&_EthCrossChainManager.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) IsOwner() (bool, error) { - return _EthCrossChainManager.Contract.IsOwner(&_EthCrossChainManager.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_EthCrossChainManager *EthCrossChainManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerSession) Owner() (common.Address, error) { - return _EthCrossChainManager.Contract.Owner(&_EthCrossChainManager.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) Owner() (common.Address, error) { - return _EthCrossChainManager.Contract.Owner(&_EthCrossChainManager.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerSession) Paused() (bool, error) { - return _EthCrossChainManager.Contract.Paused(&_EthCrossChainManager.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) Paused() (bool, error) { - return _EthCrossChainManager.Contract.Paused(&_EthCrossChainManager.CallOpts) -} - -// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. -// -// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListContractMethodMap(opts *bind.CallOpts, arg0 common.Address, arg1 []byte) (bool, error) { - var out []interface{} - err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListContractMethodMap", arg0, arg1) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. -// -// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { - return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) -} - -// WhiteListContractMethodMap is a free data retrieval call binding the contract method 0xba1c9bc7. -// -// Solidity: function whiteListContractMethodMap(address , bytes ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListContractMethodMap(arg0 common.Address, arg1 []byte) (bool, error) { - return _EthCrossChainManager.Contract.WhiteListContractMethodMap(&_EthCrossChainManager.CallOpts, arg0, arg1) -} - -// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. -// -// Solidity: function whiteListFromContract(address ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCaller) WhiteListFromContract(opts *bind.CallOpts, arg0 common.Address) (bool, error) { - var out []interface{} - err := _EthCrossChainManager.contract.Call(opts, &out, "whiteListFromContract", arg0) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. -// -// Solidity: function whiteListFromContract(address ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { - return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) -} - -// WhiteListFromContract is a free data retrieval call binding the contract method 0x73f53ba4. -// -// Solidity: function whiteListFromContract(address ) view returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerCallerSession) WhiteListFromContract(arg0 common.Address) (bool, error) { - return _EthCrossChainManager.Contract.WhiteListFromContract(&_EthCrossChainManager.CallOpts, arg0) -} - -// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. -// -// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) ChangeBookKeeper(opts *bind.TransactOpts, rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "changeBookKeeper", rawHeader, pubKeyList, sigList) -} - -// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. -// -// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) ChangeBookKeeper(rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.ChangeBookKeeper(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList, sigList) -} - -// ChangeBookKeeper is a paid mutator transaction binding the contract method 0x29dcf4ab. -// -// Solidity: function changeBookKeeper(bytes rawHeader, bytes pubKeyList, bytes sigList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) ChangeBookKeeper(rawHeader []byte, pubKeyList []byte, sigList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.ChangeBookKeeper(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList, sigList) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) CrossChain(opts *bind.TransactOpts, toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "crossChain", toChainId, toContract, method, txData) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) CrossChain(toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.CrossChain(&_EthCrossChainManager.TransactOpts, toChainId, toContract, method, txData) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 toChainId, bytes toContract, bytes method, bytes txData) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) CrossChain(toChainId uint64, toContract []byte, method []byte, txData []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.CrossChain(&_EthCrossChainManager.TransactOpts, toChainId, toContract, method, txData) -} - -// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. -// -// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) InitGenesisBlock(opts *bind.TransactOpts, rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "initGenesisBlock", rawHeader, pubKeyList) -} - -// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. -// -// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) InitGenesisBlock(rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.InitGenesisBlock(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList) -} - -// InitGenesisBlock is a paid mutator transaction binding the contract method 0x34a773eb. -// -// Solidity: function initGenesisBlock(bytes rawHeader, bytes pubKeyList) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) InitGenesisBlock(rawHeader []byte, pubKeyList []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.InitGenesisBlock(&_EthCrossChainManager.TransactOpts, rawHeader, pubKeyList) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) Pause() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.Pause(&_EthCrossChainManager.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) Pause() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.Pause(&_EthCrossChainManager.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_EthCrossChainManager *EthCrossChainManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_EthCrossChainManager *EthCrossChainManagerSession) RenounceOwnership() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.RenounceOwnership(&_EthCrossChainManager.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.RenounceOwnership(&_EthCrossChainManager.TransactOpts) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "setChainId", _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.SetChainId(&_EthCrossChainManager.TransactOpts, _newChainId) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_EthCrossChainManager *EthCrossChainManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_EthCrossChainManager *EthCrossChainManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.TransferOwnership(&_EthCrossChainManager.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.TransferOwnership(&_EthCrossChainManager.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) Unpause() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.Unpause(&_EthCrossChainManager.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) Unpause() (*types.Transaction, error) { - return _EthCrossChainManager.Contract.Unpause(&_EthCrossChainManager.TransactOpts) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) UpgradeToNew(opts *bind.TransactOpts, newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "upgradeToNew", newEthCrossChainManagerAddress) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.UpgradeToNew(&_EthCrossChainManager.TransactOpts, newEthCrossChainManagerAddress) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.UpgradeToNew(&_EthCrossChainManager.TransactOpts, newEthCrossChainManagerAddress) -} - -// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. -// -// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactor) VerifyHeaderAndExecuteTx(opts *bind.TransactOpts, proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { - return _EthCrossChainManager.contract.Transact(opts, "verifyHeaderAndExecuteTx", proof, rawHeader, headerProof, curRawHeader, headerSig) -} - -// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. -// -// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerSession) VerifyHeaderAndExecuteTx(proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.VerifyHeaderAndExecuteTx(&_EthCrossChainManager.TransactOpts, proof, rawHeader, headerProof, curRawHeader, headerSig) -} - -// VerifyHeaderAndExecuteTx is a paid mutator transaction binding the contract method 0xd450e04c. -// -// Solidity: function verifyHeaderAndExecuteTx(bytes proof, bytes rawHeader, bytes headerProof, bytes curRawHeader, bytes headerSig) returns(bool) -func (_EthCrossChainManager *EthCrossChainManagerTransactorSession) VerifyHeaderAndExecuteTx(proof []byte, rawHeader []byte, headerProof []byte, curRawHeader []byte, headerSig []byte) (*types.Transaction, error) { - return _EthCrossChainManager.Contract.VerifyHeaderAndExecuteTx(&_EthCrossChainManager.TransactOpts, proof, rawHeader, headerProof, curRawHeader, headerSig) -} - -// EthCrossChainManagerChangeBookKeeperEventIterator is returned from FilterChangeBookKeeperEvent and is used to iterate over the raw logs and unpacked data for ChangeBookKeeperEvent events raised by the EthCrossChainManager contract. -type EthCrossChainManagerChangeBookKeeperEventIterator struct { - Event *EthCrossChainManagerChangeBookKeeperEvent // 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 *EthCrossChainManagerChangeBookKeeperEventIterator) 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(EthCrossChainManagerChangeBookKeeperEvent) - 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(EthCrossChainManagerChangeBookKeeperEvent) - 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 *EthCrossChainManagerChangeBookKeeperEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerChangeBookKeeperEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerChangeBookKeeperEvent represents a ChangeBookKeeperEvent event raised by the EthCrossChainManager contract. -type EthCrossChainManagerChangeBookKeeperEvent struct { - Height *big.Int - RawHeader []byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterChangeBookKeeperEvent is a free log retrieval operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. -// -// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterChangeBookKeeperEvent(opts *bind.FilterOpts) (*EthCrossChainManagerChangeBookKeeperEventIterator, error) { - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "ChangeBookKeeperEvent") - if err != nil { - return nil, err - } - return &EthCrossChainManagerChangeBookKeeperEventIterator{contract: _EthCrossChainManager.contract, event: "ChangeBookKeeperEvent", logs: logs, sub: sub}, nil -} - -// WatchChangeBookKeeperEvent is a free log subscription operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. -// -// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchChangeBookKeeperEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerChangeBookKeeperEvent) (event.Subscription, error) { - - logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "ChangeBookKeeperEvent") - 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(EthCrossChainManagerChangeBookKeeperEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "ChangeBookKeeperEvent", 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 -} - -// ParseChangeBookKeeperEvent is a log parse operation binding the contract event 0xe60d33488cba3977bf65766cd2f8ac9617f64bf3b3198aff6240ce5c7d43b690. -// -// Solidity: event ChangeBookKeeperEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseChangeBookKeeperEvent(log types.Log) (*EthCrossChainManagerChangeBookKeeperEvent, error) { - event := new(EthCrossChainManagerChangeBookKeeperEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "ChangeBookKeeperEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerCrossChainEventIterator is returned from FilterCrossChainEvent and is used to iterate over the raw logs and unpacked data for CrossChainEvent events raised by the EthCrossChainManager contract. -type EthCrossChainManagerCrossChainEventIterator struct { - Event *EthCrossChainManagerCrossChainEvent // 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 *EthCrossChainManagerCrossChainEventIterator) 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(EthCrossChainManagerCrossChainEvent) - 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(EthCrossChainManagerCrossChainEvent) - 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 *EthCrossChainManagerCrossChainEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerCrossChainEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerCrossChainEvent represents a CrossChainEvent event raised by the EthCrossChainManager contract. -type EthCrossChainManagerCrossChainEvent struct { - Sender common.Address - TxId []byte - ProxyOrAssetContract common.Address - ToChainId uint64 - ToContract []byte - Rawdata []byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterCrossChainEvent is a free log retrieval operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. -// -// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterCrossChainEvent(opts *bind.FilterOpts, sender []common.Address) (*EthCrossChainManagerCrossChainEventIterator, error) { - - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) - } - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "CrossChainEvent", senderRule) - if err != nil { - return nil, err - } - return &EthCrossChainManagerCrossChainEventIterator{contract: _EthCrossChainManager.contract, event: "CrossChainEvent", logs: logs, sub: sub}, nil -} - -// WatchCrossChainEvent is a free log subscription operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. -// -// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchCrossChainEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerCrossChainEvent, sender []common.Address) (event.Subscription, error) { - - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) - } - - logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "CrossChainEvent", senderRule) - 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(EthCrossChainManagerCrossChainEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "CrossChainEvent", 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 -} - -// ParseCrossChainEvent is a log parse operation binding the contract event 0x6ad3bf15c1988bc04bc153490cab16db8efb9a3990215bf1c64ea6e28be88483. -// -// Solidity: event CrossChainEvent(address indexed sender, bytes txId, address proxyOrAssetContract, uint64 toChainId, bytes toContract, bytes rawdata) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseCrossChainEvent(log types.Log) (*EthCrossChainManagerCrossChainEvent, error) { - event := new(EthCrossChainManagerCrossChainEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "CrossChainEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerInitGenesisBlockEventIterator is returned from FilterInitGenesisBlockEvent and is used to iterate over the raw logs and unpacked data for InitGenesisBlockEvent events raised by the EthCrossChainManager contract. -type EthCrossChainManagerInitGenesisBlockEventIterator struct { - Event *EthCrossChainManagerInitGenesisBlockEvent // 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 *EthCrossChainManagerInitGenesisBlockEventIterator) 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(EthCrossChainManagerInitGenesisBlockEvent) - 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(EthCrossChainManagerInitGenesisBlockEvent) - 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 *EthCrossChainManagerInitGenesisBlockEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerInitGenesisBlockEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerInitGenesisBlockEvent represents a InitGenesisBlockEvent event raised by the EthCrossChainManager contract. -type EthCrossChainManagerInitGenesisBlockEvent struct { - Height *big.Int - RawHeader []byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitGenesisBlockEvent is a free log retrieval operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. -// -// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterInitGenesisBlockEvent(opts *bind.FilterOpts) (*EthCrossChainManagerInitGenesisBlockEventIterator, error) { - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "InitGenesisBlockEvent") - if err != nil { - return nil, err - } - return &EthCrossChainManagerInitGenesisBlockEventIterator{contract: _EthCrossChainManager.contract, event: "InitGenesisBlockEvent", logs: logs, sub: sub}, nil -} - -// WatchInitGenesisBlockEvent is a free log subscription operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. -// -// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchInitGenesisBlockEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerInitGenesisBlockEvent) (event.Subscription, error) { - - logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "InitGenesisBlockEvent") - 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(EthCrossChainManagerInitGenesisBlockEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "InitGenesisBlockEvent", 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 -} - -// ParseInitGenesisBlockEvent is a log parse operation binding the contract event 0xf01968fc3a2655cf1b5144cb32de6dc898f91b9239c103744e8457152ab2fbde. -// -// Solidity: event InitGenesisBlockEvent(uint256 height, bytes rawHeader) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseInitGenesisBlockEvent(log types.Log) (*EthCrossChainManagerInitGenesisBlockEvent, error) { - event := new(EthCrossChainManagerInitGenesisBlockEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "InitGenesisBlockEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the EthCrossChainManager contract. -type EthCrossChainManagerOwnershipTransferredIterator struct { - Event *EthCrossChainManagerOwnershipTransferred // 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 *EthCrossChainManagerOwnershipTransferredIterator) 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(EthCrossChainManagerOwnershipTransferred) - 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(EthCrossChainManagerOwnershipTransferred) - 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 *EthCrossChainManagerOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerOwnershipTransferred represents a OwnershipTransferred event raised by the EthCrossChainManager contract. -type EthCrossChainManagerOwnershipTransferred 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*EthCrossChainManagerOwnershipTransferredIterator, 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 := _EthCrossChainManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &EthCrossChainManagerOwnershipTransferredIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerOwnershipTransferred, 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 := _EthCrossChainManager.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(EthCrossChainManagerOwnershipTransferred) - if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseOwnershipTransferred(log types.Log) (*EthCrossChainManagerOwnershipTransferred, error) { - event := new(EthCrossChainManagerOwnershipTransferred) - if err := _EthCrossChainManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the EthCrossChainManager contract. -type EthCrossChainManagerPausedIterator struct { - Event *EthCrossChainManagerPaused // 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 *EthCrossChainManagerPausedIterator) 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(EthCrossChainManagerPaused) - 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(EthCrossChainManagerPaused) - 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 *EthCrossChainManagerPausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerPausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerPaused represents a Paused event raised by the EthCrossChainManager contract. -type EthCrossChainManagerPaused 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterPaused(opts *bind.FilterOpts) (*EthCrossChainManagerPausedIterator, error) { - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &EthCrossChainManagerPausedIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerPaused) (event.Subscription, error) { - - logs, sub, err := _EthCrossChainManager.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(EthCrossChainManagerPaused) - if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParsePaused(log types.Log) (*EthCrossChainManagerPaused, error) { - event := new(EthCrossChainManagerPaused) - if err := _EthCrossChainManager.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the EthCrossChainManager contract. -type EthCrossChainManagerUnpausedIterator struct { - Event *EthCrossChainManagerUnpaused // 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 *EthCrossChainManagerUnpausedIterator) 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(EthCrossChainManagerUnpaused) - 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(EthCrossChainManagerUnpaused) - 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 *EthCrossChainManagerUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerUnpaused represents a Unpaused event raised by the EthCrossChainManager contract. -type EthCrossChainManagerUnpaused 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 (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterUnpaused(opts *bind.FilterOpts) (*EthCrossChainManagerUnpausedIterator, error) { - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &EthCrossChainManagerUnpausedIterator{contract: _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerUnpaused) (event.Subscription, error) { - - logs, sub, err := _EthCrossChainManager.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(EthCrossChainManagerUnpaused) - if err := _EthCrossChainManager.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 (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseUnpaused(log types.Log) (*EthCrossChainManagerUnpaused, error) { - event := new(EthCrossChainManagerUnpaused) - if err := _EthCrossChainManager.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator is returned from FilterVerifyHeaderAndExecuteTxEvent and is used to iterate over the raw logs and unpacked data for VerifyHeaderAndExecuteTxEvent events raised by the EthCrossChainManager contract. -type EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator struct { - Event *EthCrossChainManagerVerifyHeaderAndExecuteTxEvent // 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 *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) - 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) - 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 *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// EthCrossChainManagerVerifyHeaderAndExecuteTxEvent represents a VerifyHeaderAndExecuteTxEvent event raised by the EthCrossChainManager contract. -type EthCrossChainManagerVerifyHeaderAndExecuteTxEvent struct { - FromChainID uint64 - ToContract []byte - CrossChainTxHash []byte - FromChainTxHash []byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVerifyHeaderAndExecuteTxEvent is a free log retrieval operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. -// -// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) FilterVerifyHeaderAndExecuteTxEvent(opts *bind.FilterOpts) (*EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator, error) { - - logs, sub, err := _EthCrossChainManager.contract.FilterLogs(opts, "VerifyHeaderAndExecuteTxEvent") - if err != nil { - return nil, err - } - return &EthCrossChainManagerVerifyHeaderAndExecuteTxEventIterator{contract: _EthCrossChainManager.contract, event: "VerifyHeaderAndExecuteTxEvent", logs: logs, sub: sub}, nil -} - -// WatchVerifyHeaderAndExecuteTxEvent is a free log subscription operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. -// -// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) WatchVerifyHeaderAndExecuteTxEvent(opts *bind.WatchOpts, sink chan<- *EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) (event.Subscription, error) { - - logs, sub, err := _EthCrossChainManager.contract.WatchLogs(opts, "VerifyHeaderAndExecuteTxEvent") - 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(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "VerifyHeaderAndExecuteTxEvent", 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 -} - -// ParseVerifyHeaderAndExecuteTxEvent is a log parse operation binding the contract event 0x8a4a2663ce60ce4955c595da2894de0415240f1ace024cfbff85f513b656bdae. -// -// Solidity: event VerifyHeaderAndExecuteTxEvent(uint64 fromChainID, bytes toContract, bytes crossChainTxHash, bytes fromChainTxHash) -func (_EthCrossChainManager *EthCrossChainManagerFilterer) ParseVerifyHeaderAndExecuteTxEvent(log types.Log) (*EthCrossChainManagerVerifyHeaderAndExecuteTxEvent, error) { - event := new(EthCrossChainManagerVerifyHeaderAndExecuteTxEvent) - if err := _EthCrossChainManager.contract.UnpackLog(event, "VerifyHeaderAndExecuteTxEvent", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// IEthCrossChainDataABI is the input ABI used to generate the binding from. -const IEthCrossChainDataABI = "[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"checkIfFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethTxHashIndex\",\"type\":\"uint256\"}],\"name\":\"getEthTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEthTxHashIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"}],\"name\":\"getExtraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fromChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"fromChainTx\",\"type\":\"bytes32\"}],\"name\":\"markFromChainTxExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"curEpochPkBytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"curEpochStartHeight\",\"type\":\"uint32\"}],\"name\":\"putCurEpochStartHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethTxHash\",\"type\":\"bytes32\"}],\"name\":\"putEthTxHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"key2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"putExtraData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" - -// IEthCrossChainDataFuncSigs maps the 4-byte function signature to its string representation. -var IEthCrossChainDataFuncSigs = map[string]string{ - "0586763c": "checkIfFromChainTxExist(uint64,bytes32)", - "69d48074": "getCurEpochConPubKeyBytes()", - "5ac40790": "getCurEpochStartHeight()", - "29927875": "getEthTxHash(uint256)", - "ff3d24a1": "getEthTxHashIndex()", - "40602bb5": "getExtraData(bytes32,bytes32)", - "e90bfdcf": "markFromChainTxExist(uint64,bytes32)", - "8456cb59": "pause()", - "5c975abb": "paused()", - "41973cd9": "putCurEpochConPubKeyBytes(bytes)", - "8a8bd17f": "putCurEpochStartHeight(uint32)", - "4c3ccf64": "putEthTxHash(bytes32)", - "1afe374e": "putExtraData(bytes32,bytes32,bytes)", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", -} - -// IEthCrossChainData is an auto generated Go binding around an Ethereum contract. -type IEthCrossChainData struct { - IEthCrossChainDataCaller // Read-only binding to the contract - IEthCrossChainDataTransactor // Write-only binding to the contract - IEthCrossChainDataFilterer // Log filterer for contract events -} - -// IEthCrossChainDataCaller is an auto generated read-only Go binding around an Ethereum contract. -type IEthCrossChainDataCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainDataTransactor is an auto generated write-only Go binding around an Ethereum contract. -type IEthCrossChainDataTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainDataFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type IEthCrossChainDataFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainDataSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type IEthCrossChainDataSession struct { - Contract *IEthCrossChainData // 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 -} - -// IEthCrossChainDataCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type IEthCrossChainDataCallerSession struct { - Contract *IEthCrossChainDataCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// IEthCrossChainDataTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type IEthCrossChainDataTransactorSession struct { - Contract *IEthCrossChainDataTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// IEthCrossChainDataRaw is an auto generated low-level Go binding around an Ethereum contract. -type IEthCrossChainDataRaw struct { - Contract *IEthCrossChainData // Generic contract binding to access the raw methods on -} - -// IEthCrossChainDataCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type IEthCrossChainDataCallerRaw struct { - Contract *IEthCrossChainDataCaller // Generic read-only contract binding to access the raw methods on -} - -// IEthCrossChainDataTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type IEthCrossChainDataTransactorRaw struct { - Contract *IEthCrossChainDataTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewIEthCrossChainData creates a new instance of IEthCrossChainData, bound to a specific deployed contract. -func NewIEthCrossChainData(address common.Address, backend bind.ContractBackend) (*IEthCrossChainData, error) { - contract, err := bindIEthCrossChainData(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &IEthCrossChainData{IEthCrossChainDataCaller: IEthCrossChainDataCaller{contract: contract}, IEthCrossChainDataTransactor: IEthCrossChainDataTransactor{contract: contract}, IEthCrossChainDataFilterer: IEthCrossChainDataFilterer{contract: contract}}, nil -} - -// NewIEthCrossChainDataCaller creates a new read-only instance of IEthCrossChainData, bound to a specific deployed contract. -func NewIEthCrossChainDataCaller(address common.Address, caller bind.ContractCaller) (*IEthCrossChainDataCaller, error) { - contract, err := bindIEthCrossChainData(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &IEthCrossChainDataCaller{contract: contract}, nil -} - -// NewIEthCrossChainDataTransactor creates a new write-only instance of IEthCrossChainData, bound to a specific deployed contract. -func NewIEthCrossChainDataTransactor(address common.Address, transactor bind.ContractTransactor) (*IEthCrossChainDataTransactor, error) { - contract, err := bindIEthCrossChainData(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &IEthCrossChainDataTransactor{contract: contract}, nil -} - -// NewIEthCrossChainDataFilterer creates a new log filterer instance of IEthCrossChainData, bound to a specific deployed contract. -func NewIEthCrossChainDataFilterer(address common.Address, filterer bind.ContractFilterer) (*IEthCrossChainDataFilterer, error) { - contract, err := bindIEthCrossChainData(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &IEthCrossChainDataFilterer{contract: contract}, nil -} - -// bindIEthCrossChainData binds a generic wrapper to an already deployed contract. -func bindIEthCrossChainData(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(IEthCrossChainDataABI)) - 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 (_IEthCrossChainData *IEthCrossChainDataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IEthCrossChainData.Contract.IEthCrossChainDataCaller.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 (_IEthCrossChainData *IEthCrossChainDataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.IEthCrossChainDataTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IEthCrossChainData *IEthCrossChainDataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.IEthCrossChainDataTransactor.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 (_IEthCrossChainData *IEthCrossChainDataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IEthCrossChainData.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 (_IEthCrossChainData *IEthCrossChainDataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IEthCrossChainData *IEthCrossChainDataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.contract.Transact(opts, method, params...) -} - -// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. -// -// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataCaller) CheckIfFromChainTxExist(opts *bind.CallOpts, fromChainId uint64, fromChainTx [32]byte) (bool, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "checkIfFromChainTxExist", fromChainId, fromChainTx) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. -// -// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) CheckIfFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (bool, error) { - return _IEthCrossChainData.Contract.CheckIfFromChainTxExist(&_IEthCrossChainData.CallOpts, fromChainId, fromChainTx) -} - -// CheckIfFromChainTxExist is a free data retrieval call binding the contract method 0x0586763c. -// -// Solidity: function checkIfFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) view returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) CheckIfFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (bool, error) { - return _IEthCrossChainData.Contract.CheckIfFromChainTxExist(&_IEthCrossChainData.CallOpts, fromChainId, fromChainTx) -} - -// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. -// -// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataCaller) GetCurEpochConPubKeyBytes(opts *bind.CallOpts) ([]byte, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "getCurEpochConPubKeyBytes") - - if err != nil { - return *new([]byte), err - } - - out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) - - return out0, err - -} - -// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. -// -// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataSession) GetCurEpochConPubKeyBytes() ([]byte, error) { - return _IEthCrossChainData.Contract.GetCurEpochConPubKeyBytes(&_IEthCrossChainData.CallOpts) -} - -// GetCurEpochConPubKeyBytes is a free data retrieval call binding the contract method 0x69d48074. -// -// Solidity: function getCurEpochConPubKeyBytes() view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetCurEpochConPubKeyBytes() ([]byte, error) { - return _IEthCrossChainData.Contract.GetCurEpochConPubKeyBytes(&_IEthCrossChainData.CallOpts) -} - -// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. -// -// Solidity: function getCurEpochStartHeight() view returns(uint32) -func (_IEthCrossChainData *IEthCrossChainDataCaller) GetCurEpochStartHeight(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "getCurEpochStartHeight") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. -// -// Solidity: function getCurEpochStartHeight() view returns(uint32) -func (_IEthCrossChainData *IEthCrossChainDataSession) GetCurEpochStartHeight() (uint32, error) { - return _IEthCrossChainData.Contract.GetCurEpochStartHeight(&_IEthCrossChainData.CallOpts) -} - -// GetCurEpochStartHeight is a free data retrieval call binding the contract method 0x5ac40790. -// -// Solidity: function getCurEpochStartHeight() view returns(uint32) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetCurEpochStartHeight() (uint32, error) { - return _IEthCrossChainData.Contract.GetCurEpochStartHeight(&_IEthCrossChainData.CallOpts) -} - -// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. -// -// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) -func (_IEthCrossChainData *IEthCrossChainDataCaller) GetEthTxHash(opts *bind.CallOpts, ethTxHashIndex *big.Int) ([32]byte, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "getEthTxHash", ethTxHashIndex) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. -// -// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) -func (_IEthCrossChainData *IEthCrossChainDataSession) GetEthTxHash(ethTxHashIndex *big.Int) ([32]byte, error) { - return _IEthCrossChainData.Contract.GetEthTxHash(&_IEthCrossChainData.CallOpts, ethTxHashIndex) -} - -// GetEthTxHash is a free data retrieval call binding the contract method 0x29927875. -// -// Solidity: function getEthTxHash(uint256 ethTxHashIndex) view returns(bytes32) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetEthTxHash(ethTxHashIndex *big.Int) ([32]byte, error) { - return _IEthCrossChainData.Contract.GetEthTxHash(&_IEthCrossChainData.CallOpts, ethTxHashIndex) -} - -// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. -// -// Solidity: function getEthTxHashIndex() view returns(uint256) -func (_IEthCrossChainData *IEthCrossChainDataCaller) GetEthTxHashIndex(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "getEthTxHashIndex") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. -// -// Solidity: function getEthTxHashIndex() view returns(uint256) -func (_IEthCrossChainData *IEthCrossChainDataSession) GetEthTxHashIndex() (*big.Int, error) { - return _IEthCrossChainData.Contract.GetEthTxHashIndex(&_IEthCrossChainData.CallOpts) -} - -// GetEthTxHashIndex is a free data retrieval call binding the contract method 0xff3d24a1. -// -// Solidity: function getEthTxHashIndex() view returns(uint256) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetEthTxHashIndex() (*big.Int, error) { - return _IEthCrossChainData.Contract.GetEthTxHashIndex(&_IEthCrossChainData.CallOpts) -} - -// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. -// -// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataCaller) GetExtraData(opts *bind.CallOpts, key1 [32]byte, key2 [32]byte) ([]byte, error) { - var out []interface{} - err := _IEthCrossChainData.contract.Call(opts, &out, "getExtraData", key1, key2) - - if err != nil { - return *new([]byte), err - } - - out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) - - return out0, err - -} - -// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. -// -// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataSession) GetExtraData(key1 [32]byte, key2 [32]byte) ([]byte, error) { - return _IEthCrossChainData.Contract.GetExtraData(&_IEthCrossChainData.CallOpts, key1, key2) -} - -// GetExtraData is a free data retrieval call binding the contract method 0x40602bb5. -// -// Solidity: function getExtraData(bytes32 key1, bytes32 key2) view returns(bytes) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) GetExtraData(key1 [32]byte, key2 [32]byte) ([]byte, error) { - return _IEthCrossChainData.Contract.GetExtraData(&_IEthCrossChainData.CallOpts, key1, key2) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _IEthCrossChainData.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 (_IEthCrossChainData *IEthCrossChainDataSession) Paused() (bool, error) { - return _IEthCrossChainData.Contract.Paused(&_IEthCrossChainData.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataCallerSession) Paused() (bool, error) { - return _IEthCrossChainData.Contract.Paused(&_IEthCrossChainData.CallOpts) -} - -// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. -// -// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) MarkFromChainTxExist(opts *bind.TransactOpts, fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "markFromChainTxExist", fromChainId, fromChainTx) -} - -// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. -// -// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) MarkFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.MarkFromChainTxExist(&_IEthCrossChainData.TransactOpts, fromChainId, fromChainTx) -} - -// MarkFromChainTxExist is a paid mutator transaction binding the contract method 0xe90bfdcf. -// -// Solidity: function markFromChainTxExist(uint64 fromChainId, bytes32 fromChainTx) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) MarkFromChainTxExist(fromChainId uint64, fromChainTx [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.MarkFromChainTxExist(&_IEthCrossChainData.TransactOpts, fromChainId, fromChainTx) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) Pause() (*types.Transaction, error) { - return _IEthCrossChainData.Contract.Pause(&_IEthCrossChainData.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) Pause() (*types.Transaction, error) { - return _IEthCrossChainData.Contract.Pause(&_IEthCrossChainData.TransactOpts) -} - -// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. -// -// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutCurEpochConPubKeyBytes(opts *bind.TransactOpts, curEpochPkBytes []byte) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "putCurEpochConPubKeyBytes", curEpochPkBytes) -} - -// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. -// -// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) PutCurEpochConPubKeyBytes(curEpochPkBytes []byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutCurEpochConPubKeyBytes(&_IEthCrossChainData.TransactOpts, curEpochPkBytes) -} - -// PutCurEpochConPubKeyBytes is a paid mutator transaction binding the contract method 0x41973cd9. -// -// Solidity: function putCurEpochConPubKeyBytes(bytes curEpochPkBytes) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutCurEpochConPubKeyBytes(curEpochPkBytes []byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutCurEpochConPubKeyBytes(&_IEthCrossChainData.TransactOpts, curEpochPkBytes) -} - -// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. -// -// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutCurEpochStartHeight(opts *bind.TransactOpts, curEpochStartHeight uint32) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "putCurEpochStartHeight", curEpochStartHeight) -} - -// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. -// -// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) PutCurEpochStartHeight(curEpochStartHeight uint32) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutCurEpochStartHeight(&_IEthCrossChainData.TransactOpts, curEpochStartHeight) -} - -// PutCurEpochStartHeight is a paid mutator transaction binding the contract method 0x8a8bd17f. -// -// Solidity: function putCurEpochStartHeight(uint32 curEpochStartHeight) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutCurEpochStartHeight(curEpochStartHeight uint32) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutCurEpochStartHeight(&_IEthCrossChainData.TransactOpts, curEpochStartHeight) -} - -// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. -// -// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutEthTxHash(opts *bind.TransactOpts, ethTxHash [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "putEthTxHash", ethTxHash) -} - -// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. -// -// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) PutEthTxHash(ethTxHash [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutEthTxHash(&_IEthCrossChainData.TransactOpts, ethTxHash) -} - -// PutEthTxHash is a paid mutator transaction binding the contract method 0x4c3ccf64. -// -// Solidity: function putEthTxHash(bytes32 ethTxHash) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutEthTxHash(ethTxHash [32]byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutEthTxHash(&_IEthCrossChainData.TransactOpts, ethTxHash) -} - -// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. -// -// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) PutExtraData(opts *bind.TransactOpts, key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "putExtraData", key1, key2, value) -} - -// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. -// -// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) PutExtraData(key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutExtraData(&_IEthCrossChainData.TransactOpts, key1, key2, value) -} - -// PutExtraData is a paid mutator transaction binding the contract method 0x1afe374e. -// -// Solidity: function putExtraData(bytes32 key1, bytes32 key2, bytes value) returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) PutExtraData(key1 [32]byte, key2 [32]byte, value []byte) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.PutExtraData(&_IEthCrossChainData.TransactOpts, key1, key2, value) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_IEthCrossChainData *IEthCrossChainDataTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_IEthCrossChainData *IEthCrossChainDataSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.TransferOwnership(&_IEthCrossChainData.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _IEthCrossChainData.Contract.TransferOwnership(&_IEthCrossChainData.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainData.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataSession) Unpause() (*types.Transaction, error) { - return _IEthCrossChainData.Contract.Unpause(&_IEthCrossChainData.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IEthCrossChainData *IEthCrossChainDataTransactorSession) Unpause() (*types.Transaction, error) { - return _IEthCrossChainData.Contract.Unpause(&_IEthCrossChainData.TransactOpts) -} - -// IEthCrossChainManagerABI is the input ABI used to generate the binding from. -const IEthCrossChainManagerABI = "[{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_toChainId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_toContract\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_txData\",\"type\":\"bytes\"}],\"name\":\"crossChain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" - -// IEthCrossChainManagerFuncSigs maps the 4-byte function signature to its string representation. -var IEthCrossChainManagerFuncSigs = map[string]string{ - "bd5cf625": "crossChain(uint64,bytes,bytes,bytes)", -} - -// IEthCrossChainManager is an auto generated Go binding around an Ethereum contract. -type IEthCrossChainManager struct { - IEthCrossChainManagerCaller // Read-only binding to the contract - IEthCrossChainManagerTransactor // Write-only binding to the contract - IEthCrossChainManagerFilterer // Log filterer for contract events -} - -// IEthCrossChainManagerCaller is an auto generated read-only Go binding around an Ethereum contract. -type IEthCrossChainManagerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type IEthCrossChainManagerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type IEthCrossChainManagerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IEthCrossChainManagerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type IEthCrossChainManagerSession struct { - Contract *IEthCrossChainManager // 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 -} - -// IEthCrossChainManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type IEthCrossChainManagerCallerSession struct { - Contract *IEthCrossChainManagerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// IEthCrossChainManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type IEthCrossChainManagerTransactorSession struct { - Contract *IEthCrossChainManagerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// IEthCrossChainManagerRaw is an auto generated low-level Go binding around an Ethereum contract. -type IEthCrossChainManagerRaw struct { - Contract *IEthCrossChainManager // Generic contract binding to access the raw methods on -} - -// IEthCrossChainManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type IEthCrossChainManagerCallerRaw struct { - Contract *IEthCrossChainManagerCaller // Generic read-only contract binding to access the raw methods on -} - -// IEthCrossChainManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type IEthCrossChainManagerTransactorRaw struct { - Contract *IEthCrossChainManagerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewIEthCrossChainManager creates a new instance of IEthCrossChainManager, bound to a specific deployed contract. -func NewIEthCrossChainManager(address common.Address, backend bind.ContractBackend) (*IEthCrossChainManager, error) { - contract, err := bindIEthCrossChainManager(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &IEthCrossChainManager{IEthCrossChainManagerCaller: IEthCrossChainManagerCaller{contract: contract}, IEthCrossChainManagerTransactor: IEthCrossChainManagerTransactor{contract: contract}, IEthCrossChainManagerFilterer: IEthCrossChainManagerFilterer{contract: contract}}, nil -} - -// NewIEthCrossChainManagerCaller creates a new read-only instance of IEthCrossChainManager, bound to a specific deployed contract. -func NewIEthCrossChainManagerCaller(address common.Address, caller bind.ContractCaller) (*IEthCrossChainManagerCaller, error) { - contract, err := bindIEthCrossChainManager(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &IEthCrossChainManagerCaller{contract: contract}, nil -} - -// NewIEthCrossChainManagerTransactor creates a new write-only instance of IEthCrossChainManager, bound to a specific deployed contract. -func NewIEthCrossChainManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*IEthCrossChainManagerTransactor, error) { - contract, err := bindIEthCrossChainManager(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &IEthCrossChainManagerTransactor{contract: contract}, nil -} - -// NewIEthCrossChainManagerFilterer creates a new log filterer instance of IEthCrossChainManager, bound to a specific deployed contract. -func NewIEthCrossChainManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*IEthCrossChainManagerFilterer, error) { - contract, err := bindIEthCrossChainManager(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &IEthCrossChainManagerFilterer{contract: contract}, nil -} - -// bindIEthCrossChainManager binds a generic wrapper to an already deployed contract. -func bindIEthCrossChainManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(IEthCrossChainManagerABI)) - 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 (_IEthCrossChainManager *IEthCrossChainManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IEthCrossChainManager.Contract.IEthCrossChainManagerCaller.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 (_IEthCrossChainManager *IEthCrossChainManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.IEthCrossChainManagerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IEthCrossChainManager *IEthCrossChainManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.IEthCrossChainManagerTransactor.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 (_IEthCrossChainManager *IEthCrossChainManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IEthCrossChainManager.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 (_IEthCrossChainManager *IEthCrossChainManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IEthCrossChainManager *IEthCrossChainManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.contract.Transact(opts, method, params...) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) -func (_IEthCrossChainManager *IEthCrossChainManagerTransactor) CrossChain(opts *bind.TransactOpts, _toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { - return _IEthCrossChainManager.contract.Transact(opts, "crossChain", _toChainId, _toContract, _method, _txData) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) -func (_IEthCrossChainManager *IEthCrossChainManagerSession) CrossChain(_toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.CrossChain(&_IEthCrossChainManager.TransactOpts, _toChainId, _toContract, _method, _txData) -} - -// CrossChain is a paid mutator transaction binding the contract method 0xbd5cf625. -// -// Solidity: function crossChain(uint64 _toChainId, bytes _toContract, bytes _method, bytes _txData) returns(bool) -func (_IEthCrossChainManager *IEthCrossChainManagerTransactorSession) CrossChain(_toChainId uint64, _toContract []byte, _method []byte, _txData []byte) (*types.Transaction, error) { - return _IEthCrossChainManager.Contract.CrossChain(&_IEthCrossChainManager.TransactOpts, _toChainId, _toContract, _method, _txData) -} - -// IUpgradableECCMABI is the input ABI used to generate the binding from. -const IUpgradableECCMABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" - -// IUpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. -var IUpgradableECCMFuncSigs = map[string]string{ - "8f32d59b": "isOwner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "6f31031d": "setChainId(uint64)", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", -} - -// IUpgradableECCM is an auto generated Go binding around an Ethereum contract. -type IUpgradableECCM struct { - IUpgradableECCMCaller // Read-only binding to the contract - IUpgradableECCMTransactor // Write-only binding to the contract - IUpgradableECCMFilterer // Log filterer for contract events -} - -// IUpgradableECCMCaller is an auto generated read-only Go binding around an Ethereum contract. -type IUpgradableECCMCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IUpgradableECCMTransactor is an auto generated write-only Go binding around an Ethereum contract. -type IUpgradableECCMTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IUpgradableECCMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type IUpgradableECCMFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IUpgradableECCMSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type IUpgradableECCMSession struct { - Contract *IUpgradableECCM // 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 -} - -// IUpgradableECCMCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type IUpgradableECCMCallerSession struct { - Contract *IUpgradableECCMCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// IUpgradableECCMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type IUpgradableECCMTransactorSession struct { - Contract *IUpgradableECCMTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// IUpgradableECCMRaw is an auto generated low-level Go binding around an Ethereum contract. -type IUpgradableECCMRaw struct { - Contract *IUpgradableECCM // Generic contract binding to access the raw methods on -} - -// IUpgradableECCMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type IUpgradableECCMCallerRaw struct { - Contract *IUpgradableECCMCaller // Generic read-only contract binding to access the raw methods on -} - -// IUpgradableECCMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type IUpgradableECCMTransactorRaw struct { - Contract *IUpgradableECCMTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewIUpgradableECCM creates a new instance of IUpgradableECCM, bound to a specific deployed contract. -func NewIUpgradableECCM(address common.Address, backend bind.ContractBackend) (*IUpgradableECCM, error) { - contract, err := bindIUpgradableECCM(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &IUpgradableECCM{IUpgradableECCMCaller: IUpgradableECCMCaller{contract: contract}, IUpgradableECCMTransactor: IUpgradableECCMTransactor{contract: contract}, IUpgradableECCMFilterer: IUpgradableECCMFilterer{contract: contract}}, nil -} - -// NewIUpgradableECCMCaller creates a new read-only instance of IUpgradableECCM, bound to a specific deployed contract. -func NewIUpgradableECCMCaller(address common.Address, caller bind.ContractCaller) (*IUpgradableECCMCaller, error) { - contract, err := bindIUpgradableECCM(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &IUpgradableECCMCaller{contract: contract}, nil -} - -// NewIUpgradableECCMTransactor creates a new write-only instance of IUpgradableECCM, bound to a specific deployed contract. -func NewIUpgradableECCMTransactor(address common.Address, transactor bind.ContractTransactor) (*IUpgradableECCMTransactor, error) { - contract, err := bindIUpgradableECCM(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &IUpgradableECCMTransactor{contract: contract}, nil -} - -// NewIUpgradableECCMFilterer creates a new log filterer instance of IUpgradableECCM, bound to a specific deployed contract. -func NewIUpgradableECCMFilterer(address common.Address, filterer bind.ContractFilterer) (*IUpgradableECCMFilterer, error) { - contract, err := bindIUpgradableECCM(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &IUpgradableECCMFilterer{contract: contract}, nil -} - -// bindIUpgradableECCM binds a generic wrapper to an already deployed contract. -func bindIUpgradableECCM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(IUpgradableECCMABI)) - 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 (_IUpgradableECCM *IUpgradableECCMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IUpgradableECCM.Contract.IUpgradableECCMCaller.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 (_IUpgradableECCM *IUpgradableECCMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.IUpgradableECCMTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IUpgradableECCM *IUpgradableECCMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.IUpgradableECCMTransactor.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 (_IUpgradableECCM *IUpgradableECCMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IUpgradableECCM.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 (_IUpgradableECCM *IUpgradableECCMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IUpgradableECCM *IUpgradableECCMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.contract.Transact(opts, method, params...) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_IUpgradableECCM *IUpgradableECCMCaller) IsOwner(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _IUpgradableECCM.contract.Call(opts, &out, "isOwner") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_IUpgradableECCM *IUpgradableECCMSession) IsOwner() (bool, error) { - return _IUpgradableECCM.Contract.IsOwner(&_IUpgradableECCM.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_IUpgradableECCM *IUpgradableECCMCallerSession) IsOwner() (bool, error) { - return _IUpgradableECCM.Contract.IsOwner(&_IUpgradableECCM.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_IUpgradableECCM *IUpgradableECCMCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _IUpgradableECCM.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 (_IUpgradableECCM *IUpgradableECCMSession) Paused() (bool, error) { - return _IUpgradableECCM.Contract.Paused(&_IUpgradableECCM.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_IUpgradableECCM *IUpgradableECCMCallerSession) Paused() (bool, error) { - return _IUpgradableECCM.Contract.Paused(&_IUpgradableECCM.CallOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IUpgradableECCM.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMSession) Pause() (*types.Transaction, error) { - return _IUpgradableECCM.Contract.Pause(&_IUpgradableECCM.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactorSession) Pause() (*types.Transaction, error) { - return _IUpgradableECCM.Contract.Pause(&_IUpgradableECCM.TransactOpts) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { - return _IUpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.SetChainId(&_IUpgradableECCM.TransactOpts, _newChainId) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IUpgradableECCM.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMSession) Unpause() (*types.Transaction, error) { - return _IUpgradableECCM.Contract.Unpause(&_IUpgradableECCM.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactorSession) Unpause() (*types.Transaction, error) { - return _IUpgradableECCM.Contract.Unpause(&_IUpgradableECCM.TransactOpts) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address ) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactor) UpgradeToNew(opts *bind.TransactOpts, arg0 common.Address) (*types.Transaction, error) { - return _IUpgradableECCM.contract.Transact(opts, "upgradeToNew", arg0) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address ) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMSession) UpgradeToNew(arg0 common.Address) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.UpgradeToNew(&_IUpgradableECCM.TransactOpts, arg0) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address ) returns(bool) -func (_IUpgradableECCM *IUpgradableECCMTransactorSession) UpgradeToNew(arg0 common.Address) (*types.Transaction, error) { - return _IUpgradableECCM.Contract.UpgradeToNew(&_IUpgradableECCM.TransactOpts, arg0) -} - -// OwnableABI is the input ABI used to generate the binding from. -const OwnableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" - -// OwnableFuncSigs maps the 4-byte function signature to its string representation. -var OwnableFuncSigs = map[string]string{ - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "715018a6": "renounceOwnership()", - "f2fde38b": "transferOwnership(address)", -} - -// Ownable is an auto generated Go binding around an Ethereum contract. -type Ownable struct { - OwnableCaller // Read-only binding to the contract - OwnableTransactor // Write-only binding to the contract - OwnableFilterer // Log filterer for contract events -} - -// OwnableCaller is an auto generated read-only Go binding around an Ethereum contract. -type OwnableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type OwnableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type OwnableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// OwnableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type OwnableSession struct { - Contract *Ownable // 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 -} - -// OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type OwnableCallerSession struct { - Contract *OwnableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type OwnableTransactorSession struct { - Contract *OwnableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// OwnableRaw is an auto generated low-level Go binding around an Ethereum contract. -type OwnableRaw struct { - Contract *Ownable // Generic contract binding to access the raw methods on -} - -// OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type OwnableCallerRaw struct { - Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on -} - -// OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type OwnableTransactorRaw struct { - Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewOwnable creates a new instance of Ownable, bound to a specific deployed contract. -func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) { - contract, err := bindOwnable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil -} - -// NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract. -func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) { - contract, err := bindOwnable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &OwnableCaller{contract: contract}, nil -} - -// NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract. -func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) { - contract, err := bindOwnable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &OwnableTransactor{contract: contract}, nil -} - -// NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract. -func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) { - contract, err := bindOwnable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &OwnableFilterer{contract: contract}, nil -} - -// bindOwnable binds a generic wrapper to an already deployed contract. -func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(OwnableABI)) - 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 (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Ownable.Contract.OwnableCaller.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 (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Ownable.Contract.OwnableTransactor.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 (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Ownable.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 (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Ownable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Ownable.Contract.contract.Transact(opts, method, params...) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _Ownable.contract.Call(opts, &out, "isOwner") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_Ownable *OwnableSession) IsOwner() (bool, error) { - return _Ownable.Contract.IsOwner(&_Ownable.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) { - return _Ownable.Contract.IsOwner(&_Ownable.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _Ownable.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 (_Ownable *OwnableSession) Owner() (common.Address, error) { - return _Ownable.Contract.Owner(&_Ownable.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) { - return _Ownable.Contract.Owner(&_Ownable.CallOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Ownable.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) { - return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _Ownable.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner) -} - -// OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract. -type OwnableOwnershipTransferredIterator struct { - Event *OwnableOwnershipTransferred // 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 *OwnableOwnershipTransferredIterator) 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(OwnableOwnershipTransferred) - 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(OwnableOwnershipTransferred) - 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 *OwnableOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *OwnableOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract. -type OwnableOwnershipTransferred 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 (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, 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 := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &OwnableOwnershipTransferredIterator{contract: _Ownable.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 (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, 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 := _Ownable.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(OwnableOwnershipTransferred) - if err := _Ownable.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 (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) { - event := new(OwnableOwnershipTransferred) - if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PausableABI is the input ABI used to generate the binding from. -const PausableABI = "[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" - -// PausableFuncSigs maps the 4-byte function signature to its string representation. -var PausableFuncSigs = map[string]string{ - "5c975abb": "paused()", -} - -// Pausable is an auto generated Go binding around an Ethereum contract. -type Pausable struct { - PausableCaller // Read-only binding to the contract - PausableTransactor // Write-only binding to the contract - PausableFilterer // Log filterer for contract events -} - -// PausableCaller is an auto generated read-only Go binding around an Ethereum contract. -type PausableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PausableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type PausableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type PausableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PausableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type PausableSession struct { - Contract *Pausable // 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 -} - -// PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type PausableCallerSession struct { - Contract *PausableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type PausableTransactorSession struct { - Contract *PausableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// PausableRaw is an auto generated low-level Go binding around an Ethereum contract. -type PausableRaw struct { - Contract *Pausable // Generic contract binding to access the raw methods on -} - -// PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type PausableCallerRaw struct { - Contract *PausableCaller // Generic read-only contract binding to access the raw methods on -} - -// PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type PausableTransactorRaw struct { - Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewPausable creates a new instance of Pausable, bound to a specific deployed contract. -func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) { - contract, err := bindPausable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil -} - -// NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract. -func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) { - contract, err := bindPausable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &PausableCaller{contract: contract}, nil -} - -// NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract. -func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) { - contract, err := bindPausable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &PausableTransactor{contract: contract}, nil -} - -// NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract. -func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) { - contract, err := bindPausable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &PausableFilterer{contract: contract}, nil -} - -// bindPausable binds a generic wrapper to an already deployed contract. -func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(PausableABI)) - 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 (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Pausable.Contract.PausableCaller.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 (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Pausable.Contract.PausableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Pausable.Contract.PausableTransactor.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 (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Pausable.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 (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Pausable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Pausable.Contract.contract.Transact(opts, method, params...) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _Pausable.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 (_Pausable *PausableSession) Paused() (bool, error) { - return _Pausable.Contract.Paused(&_Pausable.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_Pausable *PausableCallerSession) Paused() (bool, error) { - return _Pausable.Contract.Paused(&_Pausable.CallOpts) -} - -// PausablePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the Pausable contract. -type PausablePausedIterator struct { - Event *PausablePaused // 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 *PausablePausedIterator) 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(PausablePaused) - 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(PausablePaused) - 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 *PausablePausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PausablePausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PausablePaused represents a Paused event raised by the Pausable contract. -type PausablePaused 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 (_Pausable *PausableFilterer) FilterPaused(opts *bind.FilterOpts) (*PausablePausedIterator, error) { - - logs, sub, err := _Pausable.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &PausablePausedIterator{contract: _Pausable.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 (_Pausable *PausableFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *PausablePaused) (event.Subscription, error) { - - logs, sub, err := _Pausable.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(PausablePaused) - if err := _Pausable.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 (_Pausable *PausableFilterer) ParsePaused(log types.Log) (*PausablePaused, error) { - event := new(PausablePaused) - if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PausableUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the Pausable contract. -type PausableUnpausedIterator struct { - Event *PausableUnpaused // 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 *PausableUnpausedIterator) 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(PausableUnpaused) - 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(PausableUnpaused) - 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 *PausableUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PausableUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PausableUnpaused represents a Unpaused event raised by the Pausable contract. -type PausableUnpaused 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 (_Pausable *PausableFilterer) FilterUnpaused(opts *bind.FilterOpts) (*PausableUnpausedIterator, error) { - - logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &PausableUnpausedIterator{contract: _Pausable.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 (_Pausable *PausableFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *PausableUnpaused) (event.Subscription, error) { - - logs, sub, err := _Pausable.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(PausableUnpaused) - if err := _Pausable.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 (_Pausable *PausableFilterer) ParseUnpaused(log types.Log) (*PausableUnpaused, error) { - event := new(PausableUnpaused) - if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// SafeMathABI is the input ABI used to generate the binding from. -const SafeMathABI = "[]" - -// SafeMathBin is the compiled bytecode used for deploying new contracts. -var SafeMathBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158200e6820cfc4a8509d280164004f488212b92fbfe60e92c0175ba6de94ef905b6b64736f6c63430005110032" - -// DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. -func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { - parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil -} - -// SafeMath is an auto generated Go binding around an Ethereum contract. -type SafeMath struct { - SafeMathCaller // Read-only binding to the contract - SafeMathTransactor // Write-only binding to the contract - SafeMathFilterer // Log filterer for contract events -} - -// SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract. -type SafeMathCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract. -type SafeMathTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type SafeMathFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// SafeMathSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type SafeMathSession struct { - Contract *SafeMath // 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 -} - -// SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type SafeMathCallerSession struct { - Contract *SafeMathCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type SafeMathTransactorSession struct { - Contract *SafeMathTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract. -type SafeMathRaw struct { - Contract *SafeMath // Generic contract binding to access the raw methods on -} - -// SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type SafeMathCallerRaw struct { - Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on -} - -// SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type SafeMathTransactorRaw struct { - Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract. -func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) { - contract, err := bindSafeMath(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil -} - -// NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract. -func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) { - contract, err := bindSafeMath(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &SafeMathCaller{contract: contract}, nil -} - -// NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract. -func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) { - contract, err := bindSafeMath(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &SafeMathTransactor{contract: contract}, nil -} - -// NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract. -func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) { - contract, err := bindSafeMath(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &SafeMathFilterer{contract: contract}, nil -} - -// bindSafeMath binds a generic wrapper to an already deployed contract. -func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) - 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 (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _SafeMath.Contract.SafeMathCaller.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 (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _SafeMath.Contract.SafeMathTransactor.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 (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _SafeMath.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 (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _SafeMath.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _SafeMath.Contract.contract.Transact(opts, method, params...) -} - -// UpgradableECCMABI is the input ABI used to generate the binding from. -const UpgradableECCMABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ethCrossChainDataAddr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_chainId\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"EthCrossChainDataAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newChainId\",\"type\":\"uint64\"}],\"name\":\"setChainId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newEthCrossChainManagerAddress\",\"type\":\"address\"}],\"name\":\"upgradeToNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" - -// UpgradableECCMFuncSigs maps the 4-byte function signature to its string representation. -var UpgradableECCMFuncSigs = map[string]string{ - "00ba1694": "EthCrossChainDataAddress()", - "9a8a0592": "chainId()", - "8f32d59b": "isOwner()", - "8da5cb5b": "owner()", - "8456cb59": "pause()", - "5c975abb": "paused()", - "715018a6": "renounceOwnership()", - "6f31031d": "setChainId(uint64)", - "f2fde38b": "transferOwnership(address)", - "3f4ba83a": "unpause()", - "7e724ff3": "upgradeToNew(address)", -} - -// UpgradableECCMBin is the compiled bytecode used for deploying new contracts. -var UpgradableECCMBin = "0x608060405234801561001057600080fd5b50604051610b6c380380610b6c8339818101604052604081101561003357600080fd5b508051602090910151600061004f6001600160e01b036100ee16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b19169055600180546001600160401b03909216600160a01b02600160a01b600160e01b03196001600160a01b039094166001600160a01b031990931692909217929092161790556100f2565b3390565b610a6b806101016000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80637e724ff3116100715780637e724ff3146101265780638456cb591461014c5780638da5cb5b146101545780638f32d59b1461015c5780639a8a059214610164578063f2fde38b14610189576100a8565b8062ba1694146100ad5780633f4ba83a146100d15780635c975abb146100ed5780636f31031d146100f5578063715018a61461011c575b600080fd5b6100b56101af565b604080516001600160a01b039092168252519081900360200190f35b6100d96101be565b604080519115158252519081900360200190f35b6100d961033d565b6100d96004803603602081101561010b57600080fd5b503567ffffffffffffffff1661034d565b610124610418565b005b6100d96004803603602081101561013c57600080fd5b50356001600160a01b03166104a9565b6100d96105b8565b6100b561072d565b6100d961073c565b61016c610760565b6040805167ffffffffffffffff9092168252519081900360200190f35b6101246004803603602081101561019f57600080fd5b50356001600160a01b0316610777565b6001546001600160a01b031681565b60006101c861073c565b610207576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61020f61033d565b1561021c5761021c6107ca565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561026257600080fd5b505afa158015610276573d6000803e3d6000fd5b505050506040513d602081101561028c57600080fd5b50511561033557806001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102ce57600080fd5b505af11580156102e2573d6000803e3d6000fd5b505050506040513d60208110156102f857600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260298152602001806109c86029913960400191505060405180910390fd5b600191505090565b600054600160a01b900460ff1690565b60008054600160a01b900460ff166103a3576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6103ab61073c565b6103ea576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b506001805467ffffffffffffffff8316600160a01b0267ffffffffffffffff60a01b19909116178155919050565b61042061073c565b61045f576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008054600160a01b900460ff166104ff576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b61050761073c565b610546576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6001546040805163f2fde38b60e01b81526001600160a01b03858116600483015291519190921691829163f2fde38b9160248082019260009290919082900301818387803b15801561059757600080fd5b505af11580156105ab573d6000803e3d6000fd5b5060019695505050505050565b60006105c261073c565b610601576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b61060961033d565b61061557610615610872565b60015460408051635c975abb60e01b815290516001600160a01b03909216918291635c975abb916004808301926020929190829003018186803b15801561065b57600080fd5b505afa15801561066f573d6000803e3d6000fd5b505050506040513d602081101561068557600080fd5b505161033557806001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106c657600080fd5b505af11580156106da573d6000803e3d6000fd5b505050506040513d60208110156106f057600080fd5b50516103355760405162461bcd60e51b81526004018080602001828103825260278152602001806109a16027913960400191505060405180910390fd5b6000546001600160a01b031690565b600080546001600160a01b03166107516108fc565b6001600160a01b031614905090565b600154600160a01b900467ffffffffffffffff1681565b61077f61073c565b6107be576040805162461bcd60e51b81526020600482018190526024820152600080516020610a17833981519152604482015290519081900360640190fd5b6107c781610900565b50565b600054600160a01b900460ff1661081f576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108556108fc565b604080516001600160a01b039092168252519081900360200190a1565b600054600160a01b900460ff16156108c4576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108555b3390565b6001600160a01b0381166109455760405162461bcd60e51b81526004018080602001828103825260268152602001806109f16026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c6564756e70617573652045746843726f7373436861696e4461746120636f6e7472616374206661696c65644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a265627a7a7231582033b5f033bee166fb9485e71076385f292a8b245661fd103f687f4f56e5c4698d64736f6c63430005110032" - -// DeployUpgradableECCM deploys a new Ethereum contract, binding an instance of UpgradableECCM to it. -func DeployUpgradableECCM(auth *bind.TransactOpts, backend bind.ContractBackend, ethCrossChainDataAddr common.Address, _chainId uint64) (common.Address, *types.Transaction, *UpgradableECCM, error) { - parsed, err := abi.JSON(strings.NewReader(UpgradableECCMABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UpgradableECCMBin), backend, ethCrossChainDataAddr, _chainId) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &UpgradableECCM{UpgradableECCMCaller: UpgradableECCMCaller{contract: contract}, UpgradableECCMTransactor: UpgradableECCMTransactor{contract: contract}, UpgradableECCMFilterer: UpgradableECCMFilterer{contract: contract}}, nil -} - -// UpgradableECCM is an auto generated Go binding around an Ethereum contract. -type UpgradableECCM struct { - UpgradableECCMCaller // Read-only binding to the contract - UpgradableECCMTransactor // Write-only binding to the contract - UpgradableECCMFilterer // Log filterer for contract events -} - -// UpgradableECCMCaller is an auto generated read-only Go binding around an Ethereum contract. -type UpgradableECCMCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UpgradableECCMTransactor is an auto generated write-only Go binding around an Ethereum contract. -type UpgradableECCMTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UpgradableECCMFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type UpgradableECCMFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UpgradableECCMSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type UpgradableECCMSession struct { - Contract *UpgradableECCM // 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 -} - -// UpgradableECCMCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type UpgradableECCMCallerSession struct { - Contract *UpgradableECCMCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// UpgradableECCMTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type UpgradableECCMTransactorSession struct { - Contract *UpgradableECCMTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// UpgradableECCMRaw is an auto generated low-level Go binding around an Ethereum contract. -type UpgradableECCMRaw struct { - Contract *UpgradableECCM // Generic contract binding to access the raw methods on -} - -// UpgradableECCMCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type UpgradableECCMCallerRaw struct { - Contract *UpgradableECCMCaller // Generic read-only contract binding to access the raw methods on -} - -// UpgradableECCMTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type UpgradableECCMTransactorRaw struct { - Contract *UpgradableECCMTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewUpgradableECCM creates a new instance of UpgradableECCM, bound to a specific deployed contract. -func NewUpgradableECCM(address common.Address, backend bind.ContractBackend) (*UpgradableECCM, error) { - contract, err := bindUpgradableECCM(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &UpgradableECCM{UpgradableECCMCaller: UpgradableECCMCaller{contract: contract}, UpgradableECCMTransactor: UpgradableECCMTransactor{contract: contract}, UpgradableECCMFilterer: UpgradableECCMFilterer{contract: contract}}, nil -} - -// NewUpgradableECCMCaller creates a new read-only instance of UpgradableECCM, bound to a specific deployed contract. -func NewUpgradableECCMCaller(address common.Address, caller bind.ContractCaller) (*UpgradableECCMCaller, error) { - contract, err := bindUpgradableECCM(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &UpgradableECCMCaller{contract: contract}, nil -} - -// NewUpgradableECCMTransactor creates a new write-only instance of UpgradableECCM, bound to a specific deployed contract. -func NewUpgradableECCMTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradableECCMTransactor, error) { - contract, err := bindUpgradableECCM(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &UpgradableECCMTransactor{contract: contract}, nil -} - -// NewUpgradableECCMFilterer creates a new log filterer instance of UpgradableECCM, bound to a specific deployed contract. -func NewUpgradableECCMFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradableECCMFilterer, error) { - contract, err := bindUpgradableECCM(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &UpgradableECCMFilterer{contract: contract}, nil -} - -// bindUpgradableECCM binds a generic wrapper to an already deployed contract. -func bindUpgradableECCM(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(UpgradableECCMABI)) - 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 (_UpgradableECCM *UpgradableECCMRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _UpgradableECCM.Contract.UpgradableECCMCaller.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 (_UpgradableECCM *UpgradableECCMRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _UpgradableECCM.Contract.UpgradableECCMTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_UpgradableECCM *UpgradableECCMRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _UpgradableECCM.Contract.UpgradableECCMTransactor.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 (_UpgradableECCM *UpgradableECCMCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _UpgradableECCM.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_UpgradableECCM *UpgradableECCMTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _UpgradableECCM.Contract.contract.Transact(opts, method, params...) -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_UpgradableECCM *UpgradableECCMCaller) EthCrossChainDataAddress(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _UpgradableECCM.contract.Call(opts, &out, "EthCrossChainDataAddress") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_UpgradableECCM *UpgradableECCMSession) EthCrossChainDataAddress() (common.Address, error) { - return _UpgradableECCM.Contract.EthCrossChainDataAddress(&_UpgradableECCM.CallOpts) -} - -// EthCrossChainDataAddress is a free data retrieval call binding the contract method 0x00ba1694. -// -// Solidity: function EthCrossChainDataAddress() view returns(address) -func (_UpgradableECCM *UpgradableECCMCallerSession) EthCrossChainDataAddress() (common.Address, error) { - return _UpgradableECCM.Contract.EthCrossChainDataAddress(&_UpgradableECCM.CallOpts) -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_UpgradableECCM *UpgradableECCMCaller) ChainId(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _UpgradableECCM.contract.Call(opts, &out, "chainId") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_UpgradableECCM *UpgradableECCMSession) ChainId() (uint64, error) { - return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) -} - -// ChainId is a free data retrieval call binding the contract method 0x9a8a0592. -// -// Solidity: function chainId() view returns(uint64) -func (_UpgradableECCM *UpgradableECCMCallerSession) ChainId() (uint64, error) { - return _UpgradableECCM.Contract.ChainId(&_UpgradableECCM.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_UpgradableECCM *UpgradableECCMCaller) IsOwner(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _UpgradableECCM.contract.Call(opts, &out, "isOwner") - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_UpgradableECCM *UpgradableECCMSession) IsOwner() (bool, error) { - return _UpgradableECCM.Contract.IsOwner(&_UpgradableECCM.CallOpts) -} - -// IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. -// -// Solidity: function isOwner() view returns(bool) -func (_UpgradableECCM *UpgradableECCMCallerSession) IsOwner() (bool, error) { - return _UpgradableECCM.Contract.IsOwner(&_UpgradableECCM.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_UpgradableECCM *UpgradableECCMCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMSession) Owner() (common.Address, error) { - return _UpgradableECCM.Contract.Owner(&_UpgradableECCM.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_UpgradableECCM *UpgradableECCMCallerSession) Owner() (common.Address, error) { - return _UpgradableECCM.Contract.Owner(&_UpgradableECCM.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_UpgradableECCM *UpgradableECCMCaller) Paused(opts *bind.CallOpts) (bool, error) { - var out []interface{} - err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMSession) Paused() (bool, error) { - return _UpgradableECCM.Contract.Paused(&_UpgradableECCM.CallOpts) -} - -// Paused is a free data retrieval call binding the contract method 0x5c975abb. -// -// Solidity: function paused() view returns(bool) -func (_UpgradableECCM *UpgradableECCMCallerSession) Paused() (bool, error) { - return _UpgradableECCM.Contract.Paused(&_UpgradableECCM.CallOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "pause") -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_UpgradableECCM *UpgradableECCMSession) Pause() (*types.Transaction, error) { - return _UpgradableECCM.Contract.Pause(&_UpgradableECCM.TransactOpts) -} - -// Pause is a paid mutator transaction binding the contract method 0x8456cb59. -// -// Solidity: function pause() returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactorSession) Pause() (*types.Transaction, error) { - return _UpgradableECCM.Contract.Pause(&_UpgradableECCM.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_UpgradableECCM *UpgradableECCMTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_UpgradableECCM *UpgradableECCMSession) RenounceOwnership() (*types.Transaction, error) { - return _UpgradableECCM.Contract.RenounceOwnership(&_UpgradableECCM.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_UpgradableECCM *UpgradableECCMTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _UpgradableECCM.Contract.RenounceOwnership(&_UpgradableECCM.TransactOpts) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactor) SetChainId(opts *bind.TransactOpts, _newChainId uint64) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "setChainId", _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_UpgradableECCM *UpgradableECCMSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) -} - -// SetChainId is a paid mutator transaction binding the contract method 0x6f31031d. -// -// Solidity: function setChainId(uint64 _newChainId) returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactorSession) SetChainId(_newChainId uint64) (*types.Transaction, error) { - return _UpgradableECCM.Contract.SetChainId(&_UpgradableECCM.TransactOpts, _newChainId) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_UpgradableECCM *UpgradableECCMTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_UpgradableECCM *UpgradableECCMSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _UpgradableECCM.Contract.TransferOwnership(&_UpgradableECCM.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_UpgradableECCM *UpgradableECCMTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _UpgradableECCM.Contract.TransferOwnership(&_UpgradableECCM.TransactOpts, newOwner) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "unpause") -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_UpgradableECCM *UpgradableECCMSession) Unpause() (*types.Transaction, error) { - return _UpgradableECCM.Contract.Unpause(&_UpgradableECCM.TransactOpts) -} - -// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. -// -// Solidity: function unpause() returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactorSession) Unpause() (*types.Transaction, error) { - return _UpgradableECCM.Contract.Unpause(&_UpgradableECCM.TransactOpts) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactor) UpgradeToNew(opts *bind.TransactOpts, newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _UpgradableECCM.contract.Transact(opts, "upgradeToNew", newEthCrossChainManagerAddress) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_UpgradableECCM *UpgradableECCMSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _UpgradableECCM.Contract.UpgradeToNew(&_UpgradableECCM.TransactOpts, newEthCrossChainManagerAddress) -} - -// UpgradeToNew is a paid mutator transaction binding the contract method 0x7e724ff3. -// -// Solidity: function upgradeToNew(address newEthCrossChainManagerAddress) returns(bool) -func (_UpgradableECCM *UpgradableECCMTransactorSession) UpgradeToNew(newEthCrossChainManagerAddress common.Address) (*types.Transaction, error) { - return _UpgradableECCM.Contract.UpgradeToNew(&_UpgradableECCM.TransactOpts, newEthCrossChainManagerAddress) -} - -// UpgradableECCMOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the UpgradableECCM contract. -type UpgradableECCMOwnershipTransferredIterator struct { - Event *UpgradableECCMOwnershipTransferred // 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 *UpgradableECCMOwnershipTransferredIterator) 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(UpgradableECCMOwnershipTransferred) - 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(UpgradableECCMOwnershipTransferred) - 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 *UpgradableECCMOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *UpgradableECCMOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// UpgradableECCMOwnershipTransferred represents a OwnershipTransferred event raised by the UpgradableECCM contract. -type UpgradableECCMOwnershipTransferred 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UpgradableECCMOwnershipTransferredIterator, 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 := _UpgradableECCM.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &UpgradableECCMOwnershipTransferredIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UpgradableECCMOwnershipTransferred, 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 := _UpgradableECCM.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(UpgradableECCMOwnershipTransferred) - if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParseOwnershipTransferred(log types.Log) (*UpgradableECCMOwnershipTransferred, error) { - event := new(UpgradableECCMOwnershipTransferred) - if err := _UpgradableECCM.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// UpgradableECCMPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the UpgradableECCM contract. -type UpgradableECCMPausedIterator struct { - Event *UpgradableECCMPaused // 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 *UpgradableECCMPausedIterator) 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(UpgradableECCMPaused) - 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(UpgradableECCMPaused) - 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 *UpgradableECCMPausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *UpgradableECCMPausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// UpgradableECCMPaused represents a Paused event raised by the UpgradableECCM contract. -type UpgradableECCMPaused 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterPaused(opts *bind.FilterOpts) (*UpgradableECCMPausedIterator, error) { - - logs, sub, err := _UpgradableECCM.contract.FilterLogs(opts, "Paused") - if err != nil { - return nil, err - } - return &UpgradableECCMPausedIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *UpgradableECCMPaused) (event.Subscription, error) { - - logs, sub, err := _UpgradableECCM.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(UpgradableECCMPaused) - if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParsePaused(log types.Log) (*UpgradableECCMPaused, error) { - event := new(UpgradableECCMPaused) - if err := _UpgradableECCM.contract.UnpackLog(event, "Paused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// UpgradableECCMUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the UpgradableECCM contract. -type UpgradableECCMUnpausedIterator struct { - Event *UpgradableECCMUnpaused // 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 *UpgradableECCMUnpausedIterator) 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(UpgradableECCMUnpaused) - 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(UpgradableECCMUnpaused) - 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 *UpgradableECCMUnpausedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *UpgradableECCMUnpausedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// UpgradableECCMUnpaused represents a Unpaused event raised by the UpgradableECCM contract. -type UpgradableECCMUnpaused 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 (_UpgradableECCM *UpgradableECCMFilterer) FilterUnpaused(opts *bind.FilterOpts) (*UpgradableECCMUnpausedIterator, error) { - - logs, sub, err := _UpgradableECCM.contract.FilterLogs(opts, "Unpaused") - if err != nil { - return nil, err - } - return &UpgradableECCMUnpausedIterator{contract: _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *UpgradableECCMUnpaused) (event.Subscription, error) { - - logs, sub, err := _UpgradableECCM.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(UpgradableECCMUnpaused) - if err := _UpgradableECCM.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 (_UpgradableECCM *UpgradableECCMFilterer) ParseUnpaused(log types.Log) (*UpgradableECCMUnpaused, error) { - event := new(UpgradableECCMUnpaused) - if err := _UpgradableECCM.contract.UnpackLog(event, "Unpaused", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// UtilsABI is the input ABI used to generate the binding from. -const UtilsABI = "[]" - -// UtilsBin is the compiled bytecode used for deploying new contracts. -var UtilsBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582021ae6fc6ca0c6a2b393807bf67f4c3b58a9d67887c52858460d143c8bb32d45264736f6c63430005110032" - -// DeployUtils deploys a new Ethereum contract, binding an instance of Utils to it. -func DeployUtils(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Utils, error) { - parsed, err := abi.JSON(strings.NewReader(UtilsABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(UtilsBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil -} - -// Utils is an auto generated Go binding around an Ethereum contract. -type Utils struct { - UtilsCaller // Read-only binding to the contract - UtilsTransactor // Write-only binding to the contract - UtilsFilterer // Log filterer for contract events -} - -// UtilsCaller is an auto generated read-only Go binding around an Ethereum contract. -type UtilsCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UtilsTransactor is an auto generated write-only Go binding around an Ethereum contract. -type UtilsTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UtilsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type UtilsFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// UtilsSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type UtilsSession struct { - Contract *Utils // 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 -} - -// UtilsCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type UtilsCallerSession struct { - Contract *UtilsCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// UtilsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type UtilsTransactorSession struct { - Contract *UtilsTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// UtilsRaw is an auto generated low-level Go binding around an Ethereum contract. -type UtilsRaw struct { - Contract *Utils // Generic contract binding to access the raw methods on -} - -// UtilsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type UtilsCallerRaw struct { - Contract *UtilsCaller // Generic read-only contract binding to access the raw methods on -} - -// UtilsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type UtilsTransactorRaw struct { - Contract *UtilsTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewUtils creates a new instance of Utils, bound to a specific deployed contract. -func NewUtils(address common.Address, backend bind.ContractBackend) (*Utils, error) { - contract, err := bindUtils(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &Utils{UtilsCaller: UtilsCaller{contract: contract}, UtilsTransactor: UtilsTransactor{contract: contract}, UtilsFilterer: UtilsFilterer{contract: contract}}, nil -} - -// NewUtilsCaller creates a new read-only instance of Utils, bound to a specific deployed contract. -func NewUtilsCaller(address common.Address, caller bind.ContractCaller) (*UtilsCaller, error) { - contract, err := bindUtils(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &UtilsCaller{contract: contract}, nil -} - -// NewUtilsTransactor creates a new write-only instance of Utils, bound to a specific deployed contract. -func NewUtilsTransactor(address common.Address, transactor bind.ContractTransactor) (*UtilsTransactor, error) { - contract, err := bindUtils(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &UtilsTransactor{contract: contract}, nil -} - -// NewUtilsFilterer creates a new log filterer instance of Utils, bound to a specific deployed contract. -func NewUtilsFilterer(address common.Address, filterer bind.ContractFilterer) (*UtilsFilterer, error) { - contract, err := bindUtils(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &UtilsFilterer{contract: contract}, nil -} - -// bindUtils binds a generic wrapper to an already deployed contract. -func bindUtils(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(UtilsABI)) - 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 (_Utils *UtilsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Utils.Contract.UtilsCaller.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 (_Utils *UtilsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Utils.Contract.UtilsTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Utils *UtilsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Utils.Contract.UtilsTransactor.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 (_Utils *UtilsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _Utils.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 (_Utils *UtilsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Utils.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_Utils *UtilsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Utils.Contract.contract.Transact(opts, method, params...) -} - -// ZeroCopySinkABI is the input ABI used to generate the binding from. -const ZeroCopySinkABI = "[]" - -// ZeroCopySinkBin is the compiled bytecode used for deploying new contracts. -var ZeroCopySinkBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820cecc9338fc54f8484e8a2ab213275b7461d0c2306c7ddb6b1cd906f640634b1164736f6c63430005110032" - -// DeployZeroCopySink deploys a new Ethereum contract, binding an instance of ZeroCopySink to it. -func DeployZeroCopySink(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySink, error) { - parsed, err := abi.JSON(strings.NewReader(ZeroCopySinkABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySinkBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &ZeroCopySink{ZeroCopySinkCaller: ZeroCopySinkCaller{contract: contract}, ZeroCopySinkTransactor: ZeroCopySinkTransactor{contract: contract}, ZeroCopySinkFilterer: ZeroCopySinkFilterer{contract: contract}}, nil -} - -// ZeroCopySink is an auto generated Go binding around an Ethereum contract. -type ZeroCopySink struct { - ZeroCopySinkCaller // Read-only binding to the contract - ZeroCopySinkTransactor // Write-only binding to the contract - ZeroCopySinkFilterer // Log filterer for contract events -} - -// ZeroCopySinkCaller is an auto generated read-only Go binding around an Ethereum contract. -type ZeroCopySinkCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySinkTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ZeroCopySinkTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySinkFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ZeroCopySinkFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySinkSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ZeroCopySinkSession struct { - Contract *ZeroCopySink // 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 -} - -// ZeroCopySinkCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ZeroCopySinkCallerSession struct { - Contract *ZeroCopySinkCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ZeroCopySinkTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ZeroCopySinkTransactorSession struct { - Contract *ZeroCopySinkTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ZeroCopySinkRaw is an auto generated low-level Go binding around an Ethereum contract. -type ZeroCopySinkRaw struct { - Contract *ZeroCopySink // Generic contract binding to access the raw methods on -} - -// ZeroCopySinkCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ZeroCopySinkCallerRaw struct { - Contract *ZeroCopySinkCaller // Generic read-only contract binding to access the raw methods on -} - -// ZeroCopySinkTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ZeroCopySinkTransactorRaw struct { - Contract *ZeroCopySinkTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewZeroCopySink creates a new instance of ZeroCopySink, bound to a specific deployed contract. -func NewZeroCopySink(address common.Address, backend bind.ContractBackend) (*ZeroCopySink, error) { - contract, err := bindZeroCopySink(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ZeroCopySink{ZeroCopySinkCaller: ZeroCopySinkCaller{contract: contract}, ZeroCopySinkTransactor: ZeroCopySinkTransactor{contract: contract}, ZeroCopySinkFilterer: ZeroCopySinkFilterer{contract: contract}}, nil -} - -// NewZeroCopySinkCaller creates a new read-only instance of ZeroCopySink, bound to a specific deployed contract. -func NewZeroCopySinkCaller(address common.Address, caller bind.ContractCaller) (*ZeroCopySinkCaller, error) { - contract, err := bindZeroCopySink(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ZeroCopySinkCaller{contract: contract}, nil -} - -// NewZeroCopySinkTransactor creates a new write-only instance of ZeroCopySink, bound to a specific deployed contract. -func NewZeroCopySinkTransactor(address common.Address, transactor bind.ContractTransactor) (*ZeroCopySinkTransactor, error) { - contract, err := bindZeroCopySink(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ZeroCopySinkTransactor{contract: contract}, nil -} - -// NewZeroCopySinkFilterer creates a new log filterer instance of ZeroCopySink, bound to a specific deployed contract. -func NewZeroCopySinkFilterer(address common.Address, filterer bind.ContractFilterer) (*ZeroCopySinkFilterer, error) { - contract, err := bindZeroCopySink(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ZeroCopySinkFilterer{contract: contract}, nil -} - -// bindZeroCopySink binds a generic wrapper to an already deployed contract. -func bindZeroCopySink(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(ZeroCopySinkABI)) - 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 (_ZeroCopySink *ZeroCopySinkRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ZeroCopySink.Contract.ZeroCopySinkCaller.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 (_ZeroCopySink *ZeroCopySinkRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ZeroCopySink.Contract.ZeroCopySinkTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ZeroCopySink *ZeroCopySinkRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ZeroCopySink.Contract.ZeroCopySinkTransactor.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 (_ZeroCopySink *ZeroCopySinkCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ZeroCopySink.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 (_ZeroCopySink *ZeroCopySinkTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ZeroCopySink.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ZeroCopySink *ZeroCopySinkTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ZeroCopySink.Contract.contract.Transact(opts, method, params...) -} - -// ZeroCopySourceABI is the input ABI used to generate the binding from. -const ZeroCopySourceABI = "[]" - -// ZeroCopySourceBin is the compiled bytecode used for deploying new contracts. -var ZeroCopySourceBin = "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820744137c46116f0d22c829936c9138f811cd0b2b229082db0456efd79052caf1e64736f6c63430005110032" - -// DeployZeroCopySource deploys a new Ethereum contract, binding an instance of ZeroCopySource to it. -func DeployZeroCopySource(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ZeroCopySource, error) { - parsed, err := abi.JSON(strings.NewReader(ZeroCopySourceABI)) - if err != nil { - return common.Address{}, nil, nil, err - } - - address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ZeroCopySourceBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &ZeroCopySource{ZeroCopySourceCaller: ZeroCopySourceCaller{contract: contract}, ZeroCopySourceTransactor: ZeroCopySourceTransactor{contract: contract}, ZeroCopySourceFilterer: ZeroCopySourceFilterer{contract: contract}}, nil -} - -// ZeroCopySource is an auto generated Go binding around an Ethereum contract. -type ZeroCopySource struct { - ZeroCopySourceCaller // Read-only binding to the contract - ZeroCopySourceTransactor // Write-only binding to the contract - ZeroCopySourceFilterer // Log filterer for contract events -} - -// ZeroCopySourceCaller is an auto generated read-only Go binding around an Ethereum contract. -type ZeroCopySourceCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySourceTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ZeroCopySourceTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySourceFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ZeroCopySourceFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ZeroCopySourceSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ZeroCopySourceSession struct { - Contract *ZeroCopySource // 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 -} - -// ZeroCopySourceCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ZeroCopySourceCallerSession struct { - Contract *ZeroCopySourceCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ZeroCopySourceTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ZeroCopySourceTransactorSession struct { - Contract *ZeroCopySourceTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ZeroCopySourceRaw is an auto generated low-level Go binding around an Ethereum contract. -type ZeroCopySourceRaw struct { - Contract *ZeroCopySource // Generic contract binding to access the raw methods on -} - -// ZeroCopySourceCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ZeroCopySourceCallerRaw struct { - Contract *ZeroCopySourceCaller // Generic read-only contract binding to access the raw methods on -} - -// ZeroCopySourceTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ZeroCopySourceTransactorRaw struct { - Contract *ZeroCopySourceTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewZeroCopySource creates a new instance of ZeroCopySource, bound to a specific deployed contract. -func NewZeroCopySource(address common.Address, backend bind.ContractBackend) (*ZeroCopySource, error) { - contract, err := bindZeroCopySource(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ZeroCopySource{ZeroCopySourceCaller: ZeroCopySourceCaller{contract: contract}, ZeroCopySourceTransactor: ZeroCopySourceTransactor{contract: contract}, ZeroCopySourceFilterer: ZeroCopySourceFilterer{contract: contract}}, nil -} - -// NewZeroCopySourceCaller creates a new read-only instance of ZeroCopySource, bound to a specific deployed contract. -func NewZeroCopySourceCaller(address common.Address, caller bind.ContractCaller) (*ZeroCopySourceCaller, error) { - contract, err := bindZeroCopySource(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ZeroCopySourceCaller{contract: contract}, nil -} - -// NewZeroCopySourceTransactor creates a new write-only instance of ZeroCopySource, bound to a specific deployed contract. -func NewZeroCopySourceTransactor(address common.Address, transactor bind.ContractTransactor) (*ZeroCopySourceTransactor, error) { - contract, err := bindZeroCopySource(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ZeroCopySourceTransactor{contract: contract}, nil -} - -// NewZeroCopySourceFilterer creates a new log filterer instance of ZeroCopySource, bound to a specific deployed contract. -func NewZeroCopySourceFilterer(address common.Address, filterer bind.ContractFilterer) (*ZeroCopySourceFilterer, error) { - contract, err := bindZeroCopySource(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ZeroCopySourceFilterer{contract: contract}, nil -} - -// bindZeroCopySource binds a generic wrapper to an already deployed contract. -func bindZeroCopySource(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(ZeroCopySourceABI)) - 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 (_ZeroCopySource *ZeroCopySourceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ZeroCopySource.Contract.ZeroCopySourceCaller.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 (_ZeroCopySource *ZeroCopySourceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ZeroCopySource.Contract.ZeroCopySourceTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ZeroCopySource *ZeroCopySourceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ZeroCopySource.Contract.ZeroCopySourceTransactor.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 (_ZeroCopySource *ZeroCopySourceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ZeroCopySource.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 (_ZeroCopySource *ZeroCopySourceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ZeroCopySource.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ZeroCopySource *ZeroCopySourceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ZeroCopySource.Contract.contract.Transact(opts, method, params...) -} diff --git a/base/testnet.go b/base/testnet.go index 010d677..cb256cc 100644 --- a/base/testnet.go +++ b/base/testnet.go @@ -35,7 +35,7 @@ var ( HEIMDALL uint64 = 201 MATIC uint64 = 202 ARBITRUM uint64 = 205 - ONTEVM uint64 = 5555 + ONTEVM uint64 = 333 SWITCHEO uint64 = 1000