From 62e1d385d6b80f65093e49267e92dea2e50d60b3 Mon Sep 17 00:00:00 2001 From: h5law Date: Wed, 26 Jun 2024 19:57:52 +0100 Subject: [PATCH] chore: generate all go bindings --- Makefile | 4 +- bindings/moon/moon.go | 1028 ++++++++++ .../universalchannelhandler.go | 1657 +++++++++++++++++ 3 files changed, 2688 insertions(+), 1 deletion(-) create mode 100644 bindings/moon/moon.go create mode 100644 bindings/universalchannelhandler/universalchannelhandler.go diff --git a/Makefile b/Makefile index 2a312ab8..47563a82 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,10 @@ CONTRACT_ABI_FILES = \ ./out/Dispatcher.sol/Dispatcher.json \ + ./out/UniversalChannelHandler.sol/UniversalChannelHandler.json \ ./out/Mars.sol/Mars.json \ - ./out/Earth.sol/Earth.json + ./out/Earth.sol/Earth.json \ + ./out/Moon.sol/Moon.json TMP_ABI_DIR = .tmp_abi_vibc diff --git a/bindings/moon/moon.go b/bindings/moon/moon.go new file mode 100644 index 00000000..c8448e26 --- /dev/null +++ b/bindings/moon/moon.go @@ -0,0 +1,1028 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package moon + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// AckPacket is an auto generated low-level Go binding around an user-defined struct. +type AckPacket struct { + Success bool + Data []byte +} + +// Height is an auto generated low-level Go binding around an user-defined struct. +type Height struct { + RevisionNumber uint64 + RevisionHeight uint64 +} + +// IbcEndpoint is an auto generated low-level Go binding around an user-defined struct. +type IbcEndpoint struct { + PortId string + ChannelId [32]byte +} + +// IbcPacket is an auto generated low-level Go binding around an user-defined struct. +type IbcPacket struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +} + +// MoonMetaData contains all meta data concerning the Moon contract. +var MoonMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_dispatcher\",\"type\":\"address\",\"internalType\":\"contractIbcDispatcher\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"ackPackets\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"connectedChannels\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"dispatcher\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIbcDispatcher\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"greet\",\"inputs\":[{\"name\":\"message\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"greetWithFee\",\"inputs\":[{\"name\":\"message\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasLimits\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"gasPrices\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}],\"outputs\":[{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"onAcknowledgementPacket\",\"inputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"ack\",\"type\":\"tuple\",\"internalType\":\"structAckPacket\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanCloseConfirm\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanCloseInit\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanOpenAck\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"counterpartyVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanOpenConfirm\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanOpenInit\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"selectedVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onChanOpenTry\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"counterpartyVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"selectedVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onRecvPacket\",\"inputs\":[{\"name\":\"packet\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[{\"name\":\"ackPacket\",\"type\":\"tuple\",\"internalType\":\"structAckPacket\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onTimeoutPacket\",\"inputs\":[{\"name\":\"packet\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"recvedPackets\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportedVersions\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"timeoutPackets\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"triggerChannelClose\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"triggerChannelInit\",\"inputs\":[{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"ordering\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"feeEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"connectionHops\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"counterpartyPortId\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"triggerChannelInitWithFee\",\"inputs\":[{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"ordering\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"feeEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"connectionHops\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"counterpartyPortId\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ChannelNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnsupportedVersion\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"notIbcDispatcher\",\"inputs\":[]}]", +} + +// MoonABI is the input ABI used to generate the binding from. +// Deprecated: Use MoonMetaData.ABI instead. +var MoonABI = MoonMetaData.ABI + +// Moon is an auto generated Go binding around an Ethereum contract. +type Moon struct { + MoonCaller // Read-only binding to the contract + MoonTransactor // Write-only binding to the contract + MoonFilterer // Log filterer for contract events +} + +// MoonCaller is an auto generated read-only Go binding around an Ethereum contract. +type MoonCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MoonTransactor is an auto generated write-only Go binding around an Ethereum contract. +type MoonTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MoonFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MoonFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MoonSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MoonSession struct { + Contract *Moon // 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 +} + +// MoonCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MoonCallerSession struct { + Contract *MoonCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MoonTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MoonTransactorSession struct { + Contract *MoonTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MoonRaw is an auto generated low-level Go binding around an Ethereum contract. +type MoonRaw struct { + Contract *Moon // Generic contract binding to access the raw methods on +} + +// MoonCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MoonCallerRaw struct { + Contract *MoonCaller // Generic read-only contract binding to access the raw methods on +} + +// MoonTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MoonTransactorRaw struct { + Contract *MoonTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMoon creates a new instance of Moon, bound to a specific deployed contract. +func NewMoon(address common.Address, backend bind.ContractBackend) (*Moon, error) { + contract, err := bindMoon(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Moon{MoonCaller: MoonCaller{contract: contract}, MoonTransactor: MoonTransactor{contract: contract}, MoonFilterer: MoonFilterer{contract: contract}}, nil +} + +// NewMoonCaller creates a new read-only instance of Moon, bound to a specific deployed contract. +func NewMoonCaller(address common.Address, caller bind.ContractCaller) (*MoonCaller, error) { + contract, err := bindMoon(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MoonCaller{contract: contract}, nil +} + +// NewMoonTransactor creates a new write-only instance of Moon, bound to a specific deployed contract. +func NewMoonTransactor(address common.Address, transactor bind.ContractTransactor) (*MoonTransactor, error) { + contract, err := bindMoon(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MoonTransactor{contract: contract}, nil +} + +// NewMoonFilterer creates a new log filterer instance of Moon, bound to a specific deployed contract. +func NewMoonFilterer(address common.Address, filterer bind.ContractFilterer) (*MoonFilterer, error) { + contract, err := bindMoon(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MoonFilterer{contract: contract}, nil +} + +// bindMoon binds a generic wrapper to an already deployed contract. +func bindMoon(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := MoonMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Moon *MoonRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Moon.Contract.MoonCaller.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 (_Moon *MoonRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Moon.Contract.MoonTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Moon *MoonRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Moon.Contract.MoonTransactor.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 (_Moon *MoonCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Moon.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 (_Moon *MoonTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Moon.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Moon *MoonTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Moon.Contract.contract.Transact(opts, method, params...) +} + +// AckPackets is a free data retrieval call binding the contract method 0x4252ae9b. +// +// Solidity: function ackPackets(uint256 ) view returns(bool success, bytes data) +func (_Moon *MoonCaller) AckPackets(opts *bind.CallOpts, arg0 *big.Int) (struct { + Success bool + Data []byte +}, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "ackPackets", arg0) + + outstruct := new(struct { + Success bool + Data []byte + }) + if err != nil { + return *outstruct, err + } + + outstruct.Success = *abi.ConvertType(out[0], new(bool)).(*bool) + outstruct.Data = *abi.ConvertType(out[1], new([]byte)).(*[]byte) + + return *outstruct, err + +} + +// AckPackets is a free data retrieval call binding the contract method 0x4252ae9b. +// +// Solidity: function ackPackets(uint256 ) view returns(bool success, bytes data) +func (_Moon *MoonSession) AckPackets(arg0 *big.Int) (struct { + Success bool + Data []byte +}, error) { + return _Moon.Contract.AckPackets(&_Moon.CallOpts, arg0) +} + +// AckPackets is a free data retrieval call binding the contract method 0x4252ae9b. +// +// Solidity: function ackPackets(uint256 ) view returns(bool success, bytes data) +func (_Moon *MoonCallerSession) AckPackets(arg0 *big.Int) (struct { + Success bool + Data []byte +}, error) { + return _Moon.Contract.AckPackets(&_Moon.CallOpts, arg0) +} + +// ConnectedChannels is a free data retrieval call binding the contract method 0xbb3f9f8d. +// +// Solidity: function connectedChannels(uint256 ) view returns(bytes32) +func (_Moon *MoonCaller) ConnectedChannels(opts *bind.CallOpts, arg0 *big.Int) ([32]byte, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "connectedChannels", arg0) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ConnectedChannels is a free data retrieval call binding the contract method 0xbb3f9f8d. +// +// Solidity: function connectedChannels(uint256 ) view returns(bytes32) +func (_Moon *MoonSession) ConnectedChannels(arg0 *big.Int) ([32]byte, error) { + return _Moon.Contract.ConnectedChannels(&_Moon.CallOpts, arg0) +} + +// ConnectedChannels is a free data retrieval call binding the contract method 0xbb3f9f8d. +// +// Solidity: function connectedChannels(uint256 ) view returns(bytes32) +func (_Moon *MoonCallerSession) ConnectedChannels(arg0 *big.Int) ([32]byte, error) { + return _Moon.Contract.ConnectedChannels(&_Moon.CallOpts, arg0) +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Moon *MoonCaller) Dispatcher(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "dispatcher") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Moon *MoonSession) Dispatcher() (common.Address, error) { + return _Moon.Contract.Dispatcher(&_Moon.CallOpts) +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Moon *MoonCallerSession) Dispatcher() (common.Address, error) { + return _Moon.Contract.Dispatcher(&_Moon.CallOpts) +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Moon *MoonCaller) OnChanOpenInit(opts *bind.CallOpts, arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "onChanOpenInit", arg0, arg1, arg2, version) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Moon *MoonSession) OnChanOpenInit(arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + return _Moon.Contract.OnChanOpenInit(&_Moon.CallOpts, arg0, arg1, arg2, version) +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Moon *MoonCallerSession) OnChanOpenInit(arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + return _Moon.Contract.OnChanOpenInit(&_Moon.CallOpts, arg0, arg1, arg2, version) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Moon *MoonCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Moon.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 (_Moon *MoonSession) Owner() (common.Address, error) { + return _Moon.Contract.Owner(&_Moon.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Moon *MoonCallerSession) Owner() (common.Address, error) { + return _Moon.Contract.Owner(&_Moon.CallOpts) +} + +// RecvedPackets is a free data retrieval call binding the contract method 0xf12b758a. +// +// Solidity: function recvedPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonCaller) RecvedPackets(opts *bind.CallOpts, arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "recvedPackets", arg0) + + outstruct := new(struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Src = *abi.ConvertType(out[0], new(IbcEndpoint)).(*IbcEndpoint) + outstruct.Dest = *abi.ConvertType(out[1], new(IbcEndpoint)).(*IbcEndpoint) + outstruct.Sequence = *abi.ConvertType(out[2], new(uint64)).(*uint64) + outstruct.Data = *abi.ConvertType(out[3], new([]byte)).(*[]byte) + outstruct.TimeoutHeight = *abi.ConvertType(out[4], new(Height)).(*Height) + outstruct.TimeoutTimestamp = *abi.ConvertType(out[5], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// RecvedPackets is a free data retrieval call binding the contract method 0xf12b758a. +// +// Solidity: function recvedPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonSession) RecvedPackets(arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + return _Moon.Contract.RecvedPackets(&_Moon.CallOpts, arg0) +} + +// RecvedPackets is a free data retrieval call binding the contract method 0xf12b758a. +// +// Solidity: function recvedPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonCallerSession) RecvedPackets(arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + return _Moon.Contract.RecvedPackets(&_Moon.CallOpts, arg0) +} + +// SupportedVersions is a free data retrieval call binding the contract method 0x7d622184. +// +// Solidity: function supportedVersions(uint256 ) view returns(string) +func (_Moon *MoonCaller) SupportedVersions(opts *bind.CallOpts, arg0 *big.Int) (string, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "supportedVersions", arg0) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// SupportedVersions is a free data retrieval call binding the contract method 0x7d622184. +// +// Solidity: function supportedVersions(uint256 ) view returns(string) +func (_Moon *MoonSession) SupportedVersions(arg0 *big.Int) (string, error) { + return _Moon.Contract.SupportedVersions(&_Moon.CallOpts, arg0) +} + +// SupportedVersions is a free data retrieval call binding the contract method 0x7d622184. +// +// Solidity: function supportedVersions(uint256 ) view returns(string) +func (_Moon *MoonCallerSession) SupportedVersions(arg0 *big.Int) (string, error) { + return _Moon.Contract.SupportedVersions(&_Moon.CallOpts, arg0) +} + +// TimeoutPackets is a free data retrieval call binding the contract method 0x4eeb7391. +// +// Solidity: function timeoutPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonCaller) TimeoutPackets(opts *bind.CallOpts, arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + var out []interface{} + err := _Moon.contract.Call(opts, &out, "timeoutPackets", arg0) + + outstruct := new(struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Src = *abi.ConvertType(out[0], new(IbcEndpoint)).(*IbcEndpoint) + outstruct.Dest = *abi.ConvertType(out[1], new(IbcEndpoint)).(*IbcEndpoint) + outstruct.Sequence = *abi.ConvertType(out[2], new(uint64)).(*uint64) + outstruct.Data = *abi.ConvertType(out[3], new([]byte)).(*[]byte) + outstruct.TimeoutHeight = *abi.ConvertType(out[4], new(Height)).(*Height) + outstruct.TimeoutTimestamp = *abi.ConvertType(out[5], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// TimeoutPackets is a free data retrieval call binding the contract method 0x4eeb7391. +// +// Solidity: function timeoutPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonSession) TimeoutPackets(arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + return _Moon.Contract.TimeoutPackets(&_Moon.CallOpts, arg0) +} + +// TimeoutPackets is a free data retrieval call binding the contract method 0x4eeb7391. +// +// Solidity: function timeoutPackets(uint256 ) view returns((string,bytes32) src, (string,bytes32) dest, uint64 sequence, bytes data, (uint64,uint64) timeoutHeight, uint64 timeoutTimestamp) +func (_Moon *MoonCallerSession) TimeoutPackets(arg0 *big.Int) (struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +}, error) { + return _Moon.Contract.TimeoutPackets(&_Moon.CallOpts, arg0) +} + +// Greet is a paid mutator transaction binding the contract method 0x5bfd12b8. +// +// Solidity: function greet(string message, bytes32 channelId, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Moon *MoonTransactor) Greet(opts *bind.TransactOpts, message string, channelId [32]byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "greet", message, channelId, timeoutTimestamp) +} + +// Greet is a paid mutator transaction binding the contract method 0x5bfd12b8. +// +// Solidity: function greet(string message, bytes32 channelId, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Moon *MoonSession) Greet(message string, channelId [32]byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Moon.Contract.Greet(&_Moon.TransactOpts, message, channelId, timeoutTimestamp) +} + +// Greet is a paid mutator transaction binding the contract method 0x5bfd12b8. +// +// Solidity: function greet(string message, bytes32 channelId, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Moon *MoonTransactorSession) Greet(message string, channelId [32]byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Moon.Contract.Greet(&_Moon.TransactOpts, message, channelId, timeoutTimestamp) +} + +// GreetWithFee is a paid mutator transaction binding the contract method 0x3513a995. +// +// Solidity: function greetWithFee(string message, bytes32 channelId, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Moon *MoonTransactor) GreetWithFee(opts *bind.TransactOpts, message string, channelId [32]byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "greetWithFee", message, channelId, timeoutTimestamp, gasLimits, gasPrices) +} + +// GreetWithFee is a paid mutator transaction binding the contract method 0x3513a995. +// +// Solidity: function greetWithFee(string message, bytes32 channelId, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Moon *MoonSession) GreetWithFee(message string, channelId [32]byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Moon.Contract.GreetWithFee(&_Moon.TransactOpts, message, channelId, timeoutTimestamp, gasLimits, gasPrices) +} + +// GreetWithFee is a paid mutator transaction binding the contract method 0x3513a995. +// +// Solidity: function greetWithFee(string message, bytes32 channelId, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Moon *MoonTransactorSession) GreetWithFee(message string, channelId [32]byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Moon.Contract.GreetWithFee(&_Moon.TransactOpts, message, channelId, timeoutTimestamp, gasLimits, gasPrices) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) , (bool,bytes) ack) returns() +func (_Moon *MoonTransactor) OnAcknowledgementPacket(opts *bind.TransactOpts, arg0 IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onAcknowledgementPacket", arg0, ack) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) , (bool,bytes) ack) returns() +func (_Moon *MoonSession) OnAcknowledgementPacket(arg0 IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Moon.Contract.OnAcknowledgementPacket(&_Moon.TransactOpts, arg0, ack) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) , (bool,bytes) ack) returns() +func (_Moon *MoonTransactorSession) OnAcknowledgementPacket(arg0 IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Moon.Contract.OnAcknowledgementPacket(&_Moon.TransactOpts, arg0, ack) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonTransactor) OnChanCloseConfirm(opts *bind.TransactOpts, channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onChanCloseConfirm", channelId, arg1, arg2) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonSession) OnChanCloseConfirm(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanCloseConfirm(&_Moon.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonTransactorSession) OnChanCloseConfirm(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanCloseConfirm(&_Moon.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonTransactor) OnChanCloseInit(opts *bind.TransactOpts, channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onChanCloseInit", channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonSession) OnChanCloseInit(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanCloseInit(&_Moon.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Moon *MoonTransactorSession) OnChanCloseInit(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanCloseInit(&_Moon.TransactOpts, channelId, arg1, arg2) +} + +// OnChanOpenAck is a paid mutator transaction binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) returns() +func (_Moon *MoonTransactor) OnChanOpenAck(opts *bind.TransactOpts, channelId [32]byte, arg1 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onChanOpenAck", channelId, arg1, counterpartyVersion) +} + +// OnChanOpenAck is a paid mutator transaction binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) returns() +func (_Moon *MoonSession) OnChanOpenAck(channelId [32]byte, arg1 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenAck(&_Moon.TransactOpts, channelId, arg1, counterpartyVersion) +} + +// OnChanOpenAck is a paid mutator transaction binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) returns() +func (_Moon *MoonTransactorSession) OnChanOpenAck(channelId [32]byte, arg1 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenAck(&_Moon.TransactOpts, channelId, arg1, counterpartyVersion) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Moon *MoonTransactor) OnChanOpenConfirm(opts *bind.TransactOpts, channelId [32]byte) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onChanOpenConfirm", channelId) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Moon *MoonSession) OnChanOpenConfirm(channelId [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenConfirm(&_Moon.TransactOpts, channelId) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Moon *MoonTransactorSession) OnChanOpenConfirm(channelId [32]byte) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenConfirm(&_Moon.TransactOpts, channelId) +} + +// OnChanOpenTry is a paid mutator transaction binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) returns(string selectedVersion) +func (_Moon *MoonTransactor) OnChanOpenTry(opts *bind.TransactOpts, arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onChanOpenTry", arg0, arg1, channelId, arg3, arg4, counterpartyVersion) +} + +// OnChanOpenTry is a paid mutator transaction binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) returns(string selectedVersion) +func (_Moon *MoonSession) OnChanOpenTry(arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenTry(&_Moon.TransactOpts, arg0, arg1, channelId, arg3, arg4, counterpartyVersion) +} + +// OnChanOpenTry is a paid mutator transaction binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) returns(string selectedVersion) +func (_Moon *MoonTransactorSession) OnChanOpenTry(arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (*types.Transaction, error) { + return _Moon.Contract.OnChanOpenTry(&_Moon.TransactOpts, arg0, arg1, channelId, arg3, arg4, counterpartyVersion) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Moon *MoonTransactor) OnRecvPacket(opts *bind.TransactOpts, packet IbcPacket) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onRecvPacket", packet) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Moon *MoonSession) OnRecvPacket(packet IbcPacket) (*types.Transaction, error) { + return _Moon.Contract.OnRecvPacket(&_Moon.TransactOpts, packet) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Moon *MoonTransactorSession) OnRecvPacket(packet IbcPacket) (*types.Transaction, error) { + return _Moon.Contract.OnRecvPacket(&_Moon.TransactOpts, packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Moon *MoonTransactor) OnTimeoutPacket(opts *bind.TransactOpts, packet IbcPacket) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "onTimeoutPacket", packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Moon *MoonSession) OnTimeoutPacket(packet IbcPacket) (*types.Transaction, error) { + return _Moon.Contract.OnTimeoutPacket(&_Moon.TransactOpts, packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Moon *MoonTransactorSession) OnTimeoutPacket(packet IbcPacket) (*types.Transaction, error) { + return _Moon.Contract.OnTimeoutPacket(&_Moon.TransactOpts, packet) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Moon *MoonTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Moon *MoonSession) RenounceOwnership() (*types.Transaction, error) { + return _Moon.Contract.RenounceOwnership(&_Moon.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Moon *MoonTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _Moon.Contract.RenounceOwnership(&_Moon.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Moon *MoonTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Moon *MoonSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Moon.Contract.TransferOwnership(&_Moon.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Moon *MoonTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Moon.Contract.TransferOwnership(&_Moon.TransactOpts, newOwner) +} + +// TriggerChannelClose is a paid mutator transaction binding the contract method 0x558850ac. +// +// Solidity: function triggerChannelClose(bytes32 channelId) returns() +func (_Moon *MoonTransactor) TriggerChannelClose(opts *bind.TransactOpts, channelId [32]byte) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "triggerChannelClose", channelId) +} + +// TriggerChannelClose is a paid mutator transaction binding the contract method 0x558850ac. +// +// Solidity: function triggerChannelClose(bytes32 channelId) returns() +func (_Moon *MoonSession) TriggerChannelClose(channelId [32]byte) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelClose(&_Moon.TransactOpts, channelId) +} + +// TriggerChannelClose is a paid mutator transaction binding the contract method 0x558850ac. +// +// Solidity: function triggerChannelClose(bytes32 channelId) returns() +func (_Moon *MoonTransactorSession) TriggerChannelClose(channelId [32]byte) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelClose(&_Moon.TransactOpts, channelId) +} + +// TriggerChannelInit is a paid mutator transaction binding the contract method 0x7a805598. +// +// Solidity: function triggerChannelInit(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) returns() +func (_Moon *MoonTransactor) TriggerChannelInit(opts *bind.TransactOpts, version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "triggerChannelInit", version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// TriggerChannelInit is a paid mutator transaction binding the contract method 0x7a805598. +// +// Solidity: function triggerChannelInit(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) returns() +func (_Moon *MoonSession) TriggerChannelInit(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelInit(&_Moon.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// TriggerChannelInit is a paid mutator transaction binding the contract method 0x7a805598. +// +// Solidity: function triggerChannelInit(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) returns() +func (_Moon *MoonTransactorSession) TriggerChannelInit(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelInit(&_Moon.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// TriggerChannelInitWithFee is a paid mutator transaction binding the contract method 0x61995001. +// +// Solidity: function triggerChannelInitWithFee(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) payable returns() +func (_Moon *MoonTransactor) TriggerChannelInitWithFee(opts *bind.TransactOpts, version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.contract.Transact(opts, "triggerChannelInitWithFee", version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// TriggerChannelInitWithFee is a paid mutator transaction binding the contract method 0x61995001. +// +// Solidity: function triggerChannelInitWithFee(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) payable returns() +func (_Moon *MoonSession) TriggerChannelInitWithFee(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelInitWithFee(&_Moon.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// TriggerChannelInitWithFee is a paid mutator transaction binding the contract method 0x61995001. +// +// Solidity: function triggerChannelInitWithFee(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortId) payable returns() +func (_Moon *MoonTransactorSession) TriggerChannelInitWithFee(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortId string) (*types.Transaction, error) { + return _Moon.Contract.TriggerChannelInitWithFee(&_Moon.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortId) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Moon *MoonTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Moon.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Moon *MoonSession) Receive() (*types.Transaction, error) { + return _Moon.Contract.Receive(&_Moon.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Moon *MoonTransactorSession) Receive() (*types.Transaction, error) { + return _Moon.Contract.Receive(&_Moon.TransactOpts) +} + +// MoonOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Moon contract. +type MoonOwnershipTransferredIterator struct { + Event *MoonOwnershipTransferred // 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 *MoonOwnershipTransferredIterator) 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(MoonOwnershipTransferred) + 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(MoonOwnershipTransferred) + 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 *MoonOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MoonOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MoonOwnershipTransferred represents a OwnershipTransferred event raised by the Moon contract. +type MoonOwnershipTransferred 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 (_Moon *MoonFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*MoonOwnershipTransferredIterator, 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 := _Moon.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &MoonOwnershipTransferredIterator{contract: _Moon.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 (_Moon *MoonFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *MoonOwnershipTransferred, 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 := _Moon.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(MoonOwnershipTransferred) + if err := _Moon.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 (_Moon *MoonFilterer) ParseOwnershipTransferred(log types.Log) (*MoonOwnershipTransferred, error) { + event := new(MoonOwnershipTransferred) + if err := _Moon.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/bindings/universalchannelhandler/universalchannelhandler.go b/bindings/universalchannelhandler/universalchannelhandler.go new file mode 100644 index 00000000..b44306d2 --- /dev/null +++ b/bindings/universalchannelhandler/universalchannelhandler.go @@ -0,0 +1,1657 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package universalchannelhandler + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// AckPacket is an auto generated low-level Go binding around an user-defined struct. +type AckPacket struct { + Success bool + Data []byte +} + +// Height is an auto generated low-level Go binding around an user-defined struct. +type Height struct { + RevisionNumber uint64 + RevisionHeight uint64 +} + +// IbcEndpoint is an auto generated low-level Go binding around an user-defined struct. +type IbcEndpoint struct { + PortId string + ChannelId [32]byte +} + +// IbcPacket is an auto generated low-level Go binding around an user-defined struct. +type IbcPacket struct { + Src IbcEndpoint + Dest IbcEndpoint + Sequence uint64 + Data []byte + TimeoutHeight Height + TimeoutTimestamp uint64 +} + +// UniversalchannelhandlerMetaData contains all meta data concerning the Universalchannelhandler contract. +var UniversalchannelhandlerMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"MW_ID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"VERSION\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"closeChannel\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"dispatcher\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIbcDispatcher\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_dispatcher\",\"type\":\"address\",\"internalType\":\"contractIbcDispatcher\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onAcknowledgementPacket\",\"inputs\":[{\"name\":\"packet\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"ack\",\"type\":\"tuple\",\"internalType\":\"structAckPacket\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanCloseConfirm\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanCloseInit\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanOpenAck\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"counterpartyVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onChanOpenConfirm\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onChanOpenInit\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"selectedVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onChanOpenTry\",\"inputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"counterpartyVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"selectedVersion\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"onRecvPacket\",\"inputs\":[{\"name\":\"packet\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[{\"name\":\"ackPacket\",\"type\":\"tuple\",\"internalType\":\"structAckPacket\",\"components\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"onTimeoutPacket\",\"inputs\":[{\"name\":\"packet\",\"type\":\"tuple\",\"internalType\":\"structIbcPacket\",\"components\":[{\"name\":\"src\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"dest\",\"type\":\"tuple\",\"internalType\":\"structIbcEndpoint\",\"components\":[{\"name\":\"portId\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutHeight\",\"type\":\"tuple\",\"internalType\":\"structHeight\",\"components\":[{\"name\":\"revision_number\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"revision_height\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"openChannel\",\"inputs\":[{\"name\":\"version\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"ordering\",\"type\":\"uint8\",\"internalType\":\"enumChannelOrder\"},{\"name\":\"feeEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"connectionHops\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"counterpartyPortIdentifier\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendUniversalPacket\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destPortAddr\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"appData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"sendUniversalPacketWithFee\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"destPortAddr\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"appData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"timeoutTimestamp\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasLimits\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"gasPrices\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}],\"outputs\":[{\"name\":\"sequence\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setDispatcher\",\"inputs\":[{\"name\":\"_dispatcher\",\"type\":\"address\",\"internalType\":\"contractIbcDispatcher\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeTo\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"upgradeToAndCall\",\"inputs\":[{\"name\":\"newImplementation\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"AdminChanged\",\"inputs\":[{\"name\":\"previousAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newAdmin\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BeaconUpgraded\",\"inputs\":[{\"name\":\"beacon\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UCHPacketSent\",\"inputs\":[{\"name\":\"source\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"destination\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Upgraded\",\"inputs\":[{\"name\":\"implementation\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ChannelNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MwBitmpaCannotBeZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnsupportedVersion\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"invalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"notIbcDispatcher\",\"inputs\":[]}]", +} + +// UniversalchannelhandlerABI is the input ABI used to generate the binding from. +// Deprecated: Use UniversalchannelhandlerMetaData.ABI instead. +var UniversalchannelhandlerABI = UniversalchannelhandlerMetaData.ABI + +// Universalchannelhandler is an auto generated Go binding around an Ethereum contract. +type Universalchannelhandler struct { + UniversalchannelhandlerCaller // Read-only binding to the contract + UniversalchannelhandlerTransactor // Write-only binding to the contract + UniversalchannelhandlerFilterer // Log filterer for contract events +} + +// UniversalchannelhandlerCaller is an auto generated read-only Go binding around an Ethereum contract. +type UniversalchannelhandlerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalchannelhandlerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UniversalchannelhandlerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalchannelhandlerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UniversalchannelhandlerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UniversalchannelhandlerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UniversalchannelhandlerSession struct { + Contract *Universalchannelhandler // 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 +} + +// UniversalchannelhandlerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UniversalchannelhandlerCallerSession struct { + Contract *UniversalchannelhandlerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UniversalchannelhandlerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UniversalchannelhandlerTransactorSession struct { + Contract *UniversalchannelhandlerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UniversalchannelhandlerRaw is an auto generated low-level Go binding around an Ethereum contract. +type UniversalchannelhandlerRaw struct { + Contract *Universalchannelhandler // Generic contract binding to access the raw methods on +} + +// UniversalchannelhandlerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UniversalchannelhandlerCallerRaw struct { + Contract *UniversalchannelhandlerCaller // Generic read-only contract binding to access the raw methods on +} + +// UniversalchannelhandlerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UniversalchannelhandlerTransactorRaw struct { + Contract *UniversalchannelhandlerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUniversalchannelhandler creates a new instance of Universalchannelhandler, bound to a specific deployed contract. +func NewUniversalchannelhandler(address common.Address, backend bind.ContractBackend) (*Universalchannelhandler, error) { + contract, err := bindUniversalchannelhandler(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Universalchannelhandler{UniversalchannelhandlerCaller: UniversalchannelhandlerCaller{contract: contract}, UniversalchannelhandlerTransactor: UniversalchannelhandlerTransactor{contract: contract}, UniversalchannelhandlerFilterer: UniversalchannelhandlerFilterer{contract: contract}}, nil +} + +// NewUniversalchannelhandlerCaller creates a new read-only instance of Universalchannelhandler, bound to a specific deployed contract. +func NewUniversalchannelhandlerCaller(address common.Address, caller bind.ContractCaller) (*UniversalchannelhandlerCaller, error) { + contract, err := bindUniversalchannelhandler(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerCaller{contract: contract}, nil +} + +// NewUniversalchannelhandlerTransactor creates a new write-only instance of Universalchannelhandler, bound to a specific deployed contract. +func NewUniversalchannelhandlerTransactor(address common.Address, transactor bind.ContractTransactor) (*UniversalchannelhandlerTransactor, error) { + contract, err := bindUniversalchannelhandler(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerTransactor{contract: contract}, nil +} + +// NewUniversalchannelhandlerFilterer creates a new log filterer instance of Universalchannelhandler, bound to a specific deployed contract. +func NewUniversalchannelhandlerFilterer(address common.Address, filterer bind.ContractFilterer) (*UniversalchannelhandlerFilterer, error) { + contract, err := bindUniversalchannelhandler(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerFilterer{contract: contract}, nil +} + +// bindUniversalchannelhandler binds a generic wrapper to an already deployed contract. +func bindUniversalchannelhandler(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UniversalchannelhandlerMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Universalchannelhandler *UniversalchannelhandlerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Universalchannelhandler.Contract.UniversalchannelhandlerCaller.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 (_Universalchannelhandler *UniversalchannelhandlerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UniversalchannelhandlerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Universalchannelhandler *UniversalchannelhandlerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UniversalchannelhandlerTransactor.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 (_Universalchannelhandler *UniversalchannelhandlerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Universalchannelhandler.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 (_Universalchannelhandler *UniversalchannelhandlerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Universalchannelhandler *UniversalchannelhandlerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.contract.Transact(opts, method, params...) +} + +// MWID is a free data retrieval call binding the contract method 0xc1cb44e5. +// +// Solidity: function MW_ID() view returns(uint256) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) MWID(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "MW_ID") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MWID is a free data retrieval call binding the contract method 0xc1cb44e5. +// +// Solidity: function MW_ID() view returns(uint256) +func (_Universalchannelhandler *UniversalchannelhandlerSession) MWID() (*big.Int, error) { + return _Universalchannelhandler.Contract.MWID(&_Universalchannelhandler.CallOpts) +} + +// MWID is a free data retrieval call binding the contract method 0xc1cb44e5. +// +// Solidity: function MW_ID() view returns(uint256) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) MWID() (*big.Int, error) { + return _Universalchannelhandler.Contract.MWID(&_Universalchannelhandler.CallOpts) +} + +// VERSION is a free data retrieval call binding the contract method 0xffa1ad74. +// +// Solidity: function VERSION() view returns(string) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) VERSION(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "VERSION") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// VERSION is a free data retrieval call binding the contract method 0xffa1ad74. +// +// Solidity: function VERSION() view returns(string) +func (_Universalchannelhandler *UniversalchannelhandlerSession) VERSION() (string, error) { + return _Universalchannelhandler.Contract.VERSION(&_Universalchannelhandler.CallOpts) +} + +// VERSION is a free data retrieval call binding the contract method 0xffa1ad74. +// +// Solidity: function VERSION() view returns(string) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) VERSION() (string, error) { + return _Universalchannelhandler.Contract.VERSION(&_Universalchannelhandler.CallOpts) +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) Dispatcher(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "dispatcher") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Universalchannelhandler *UniversalchannelhandlerSession) Dispatcher() (common.Address, error) { + return _Universalchannelhandler.Contract.Dispatcher(&_Universalchannelhandler.CallOpts) +} + +// Dispatcher is a free data retrieval call binding the contract method 0xcb7e9057. +// +// Solidity: function dispatcher() view returns(address) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) Dispatcher() (common.Address, error) { + return _Universalchannelhandler.Contract.Dispatcher(&_Universalchannelhandler.CallOpts) +} + +// OnChanOpenAck is a free data retrieval call binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) view returns() +func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenAck(opts *bind.CallOpts, channelId [32]byte, arg1 [32]byte, counterpartyVersion string) error { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "onChanOpenAck", channelId, arg1, counterpartyVersion) + + if err != nil { + return err + } + + return err + +} + +// OnChanOpenAck is a free data retrieval call binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) view returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanOpenAck(channelId [32]byte, arg1 [32]byte, counterpartyVersion string) error { + return _Universalchannelhandler.Contract.OnChanOpenAck(&_Universalchannelhandler.CallOpts, channelId, arg1, counterpartyVersion) +} + +// OnChanOpenAck is a free data retrieval call binding the contract method 0xe847e280. +// +// Solidity: function onChanOpenAck(bytes32 channelId, bytes32 , string counterpartyVersion) view returns() +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) OnChanOpenAck(channelId [32]byte, arg1 [32]byte, counterpartyVersion string) error { + return _Universalchannelhandler.Contract.OnChanOpenAck(&_Universalchannelhandler.CallOpts, channelId, arg1, counterpartyVersion) +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenInit(opts *bind.CallOpts, arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "onChanOpenInit", arg0, arg1, arg2, version) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanOpenInit(arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + return _Universalchannelhandler.Contract.OnChanOpenInit(&_Universalchannelhandler.CallOpts, arg0, arg1, arg2, version) +} + +// OnChanOpenInit is a free data retrieval call binding the contract method 0x7a9ccc4b. +// +// Solidity: function onChanOpenInit(uint8 , string[] , string , string version) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) OnChanOpenInit(arg0 uint8, arg1 []string, arg2 string, version string) (string, error) { + return _Universalchannelhandler.Contract.OnChanOpenInit(&_Universalchannelhandler.CallOpts, arg0, arg1, arg2, version) +} + +// OnChanOpenTry is a free data retrieval call binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenTry(opts *bind.CallOpts, arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (string, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "onChanOpenTry", arg0, arg1, channelId, arg3, arg4, counterpartyVersion) + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +// OnChanOpenTry is a free data retrieval call binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanOpenTry(arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (string, error) { + return _Universalchannelhandler.Contract.OnChanOpenTry(&_Universalchannelhandler.CallOpts, arg0, arg1, channelId, arg3, arg4, counterpartyVersion) +} + +// OnChanOpenTry is a free data retrieval call binding the contract method 0x4bdb5597. +// +// Solidity: function onChanOpenTry(uint8 , string[] , bytes32 channelId, string , bytes32 , string counterpartyVersion) view returns(string selectedVersion) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) OnChanOpenTry(arg0 uint8, arg1 []string, channelId [32]byte, arg3 string, arg4 [32]byte, counterpartyVersion string) (string, error) { + return _Universalchannelhandler.Contract.OnChanOpenTry(&_Universalchannelhandler.CallOpts, arg0, arg1, channelId, arg3, arg4, counterpartyVersion) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Universalchannelhandler.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 (_Universalchannelhandler *UniversalchannelhandlerSession) Owner() (common.Address, error) { + return _Universalchannelhandler.Contract.Owner(&_Universalchannelhandler.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) Owner() (common.Address, error) { + return _Universalchannelhandler.Contract.Owner(&_Universalchannelhandler.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_Universalchannelhandler *UniversalchannelhandlerCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _Universalchannelhandler.contract.Call(opts, &out, "proxiableUUID") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_Universalchannelhandler *UniversalchannelhandlerSession) ProxiableUUID() ([32]byte, error) { + return _Universalchannelhandler.Contract.ProxiableUUID(&_Universalchannelhandler.CallOpts) +} + +// ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. +// +// Solidity: function proxiableUUID() view returns(bytes32) +func (_Universalchannelhandler *UniversalchannelhandlerCallerSession) ProxiableUUID() ([32]byte, error) { + return _Universalchannelhandler.Contract.ProxiableUUID(&_Universalchannelhandler.CallOpts) +} + +// CloseChannel is a paid mutator transaction binding the contract method 0x4c2ee09d. +// +// Solidity: function closeChannel(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) CloseChannel(opts *bind.TransactOpts, channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "closeChannel", channelId) +} + +// CloseChannel is a paid mutator transaction binding the contract method 0x4c2ee09d. +// +// Solidity: function closeChannel(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) CloseChannel(channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.CloseChannel(&_Universalchannelhandler.TransactOpts, channelId) +} + +// CloseChannel is a paid mutator transaction binding the contract method 0x4c2ee09d. +// +// Solidity: function closeChannel(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) CloseChannel(channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.CloseChannel(&_Universalchannelhandler.TransactOpts, channelId) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) Initialize(opts *bind.TransactOpts, _dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "initialize", _dispatcher) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) Initialize(_dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.Initialize(&_Universalchannelhandler.TransactOpts, _dispatcher) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) Initialize(_dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.Initialize(&_Universalchannelhandler.TransactOpts, _dispatcher) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet, (bool,bytes) ack) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnAcknowledgementPacket(opts *bind.TransactOpts, packet IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onAcknowledgementPacket", packet, ack) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet, (bool,bytes) ack) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnAcknowledgementPacket(packet IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnAcknowledgementPacket(&_Universalchannelhandler.TransactOpts, packet, ack) +} + +// OnAcknowledgementPacket is a paid mutator transaction binding the contract method 0x7e1d42b5. +// +// Solidity: function onAcknowledgementPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet, (bool,bytes) ack) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnAcknowledgementPacket(packet IbcPacket, ack AckPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnAcknowledgementPacket(&_Universalchannelhandler.TransactOpts, packet, ack) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnChanCloseConfirm(opts *bind.TransactOpts, channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onChanCloseConfirm", channelId, arg1, arg2) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanCloseConfirm(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanCloseConfirm(&_Universalchannelhandler.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseConfirm is a paid mutator transaction binding the contract method 0x3f9fdbe4. +// +// Solidity: function onChanCloseConfirm(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnChanCloseConfirm(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanCloseConfirm(&_Universalchannelhandler.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnChanCloseInit(opts *bind.TransactOpts, channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onChanCloseInit", channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanCloseInit(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanCloseInit(&_Universalchannelhandler.TransactOpts, channelId, arg1, arg2) +} + +// OnChanCloseInit is a paid mutator transaction binding the contract method 0x1eb7dd5e. +// +// Solidity: function onChanCloseInit(bytes32 channelId, string , bytes32 ) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnChanCloseInit(channelId [32]byte, arg1 string, arg2 [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanCloseInit(&_Universalchannelhandler.TransactOpts, channelId, arg1, arg2) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnChanOpenConfirm(opts *bind.TransactOpts, channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onChanOpenConfirm", channelId) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnChanOpenConfirm(channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanOpenConfirm(&_Universalchannelhandler.TransactOpts, channelId) +} + +// OnChanOpenConfirm is a paid mutator transaction binding the contract method 0xfad28a24. +// +// Solidity: function onChanOpenConfirm(bytes32 channelId) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnChanOpenConfirm(channelId [32]byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnChanOpenConfirm(&_Universalchannelhandler.TransactOpts, channelId) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnRecvPacket(opts *bind.TransactOpts, packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onRecvPacket", packet) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnRecvPacket(packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnRecvPacket(&_Universalchannelhandler.TransactOpts, packet) +} + +// OnRecvPacket is a paid mutator transaction binding the contract method 0x4dcc0aa6. +// +// Solidity: function onRecvPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns((bool,bytes) ackPacket) +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnRecvPacket(packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnRecvPacket(&_Universalchannelhandler.TransactOpts, packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OnTimeoutPacket(opts *bind.TransactOpts, packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "onTimeoutPacket", packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OnTimeoutPacket(packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnTimeoutPacket(&_Universalchannelhandler.TransactOpts, packet) +} + +// OnTimeoutPacket is a paid mutator transaction binding the contract method 0x602f9834. +// +// Solidity: function onTimeoutPacket(((string,bytes32),(string,bytes32),uint64,bytes,(uint64,uint64),uint64) packet) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OnTimeoutPacket(packet IbcPacket) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OnTimeoutPacket(&_Universalchannelhandler.TransactOpts, packet) +} + +// OpenChannel is a paid mutator transaction binding the contract method 0xace02de7. +// +// Solidity: function openChannel(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortIdentifier) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) OpenChannel(opts *bind.TransactOpts, version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortIdentifier string) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "openChannel", version, ordering, feeEnabled, connectionHops, counterpartyPortIdentifier) +} + +// OpenChannel is a paid mutator transaction binding the contract method 0xace02de7. +// +// Solidity: function openChannel(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortIdentifier) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) OpenChannel(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortIdentifier string) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OpenChannel(&_Universalchannelhandler.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortIdentifier) +} + +// OpenChannel is a paid mutator transaction binding the contract method 0xace02de7. +// +// Solidity: function openChannel(string version, uint8 ordering, bool feeEnabled, string[] connectionHops, string counterpartyPortIdentifier) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) OpenChannel(version string, ordering uint8, feeEnabled bool, connectionHops []string, counterpartyPortIdentifier string) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.OpenChannel(&_Universalchannelhandler.TransactOpts, version, ordering, feeEnabled, connectionHops, counterpartyPortIdentifier) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) RenounceOwnership() (*types.Transaction, error) { + return _Universalchannelhandler.Contract.RenounceOwnership(&_Universalchannelhandler.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _Universalchannelhandler.Contract.RenounceOwnership(&_Universalchannelhandler.TransactOpts) +} + +// SendUniversalPacket is a paid mutator transaction binding the contract method 0x1f3a5830. +// +// Solidity: function sendUniversalPacket(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) SendUniversalPacket(opts *bind.TransactOpts, channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "sendUniversalPacket", channelId, destPortAddr, appData, timeoutTimestamp) +} + +// SendUniversalPacket is a paid mutator transaction binding the contract method 0x1f3a5830. +// +// Solidity: function sendUniversalPacket(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerSession) SendUniversalPacket(channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SendUniversalPacket(&_Universalchannelhandler.TransactOpts, channelId, destPortAddr, appData, timeoutTimestamp) +} + +// SendUniversalPacket is a paid mutator transaction binding the contract method 0x1f3a5830. +// +// Solidity: function sendUniversalPacket(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp) returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) SendUniversalPacket(channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SendUniversalPacket(&_Universalchannelhandler.TransactOpts, channelId, destPortAddr, appData, timeoutTimestamp) +} + +// SendUniversalPacketWithFee is a paid mutator transaction binding the contract method 0x462fdf83. +// +// Solidity: function sendUniversalPacketWithFee(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) SendUniversalPacketWithFee(opts *bind.TransactOpts, channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "sendUniversalPacketWithFee", channelId, destPortAddr, appData, timeoutTimestamp, gasLimits, gasPrices) +} + +// SendUniversalPacketWithFee is a paid mutator transaction binding the contract method 0x462fdf83. +// +// Solidity: function sendUniversalPacketWithFee(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerSession) SendUniversalPacketWithFee(channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SendUniversalPacketWithFee(&_Universalchannelhandler.TransactOpts, channelId, destPortAddr, appData, timeoutTimestamp, gasLimits, gasPrices) +} + +// SendUniversalPacketWithFee is a paid mutator transaction binding the contract method 0x462fdf83. +// +// Solidity: function sendUniversalPacketWithFee(bytes32 channelId, bytes32 destPortAddr, bytes appData, uint64 timeoutTimestamp, uint256[2] gasLimits, uint256[2] gasPrices) payable returns(uint64 sequence) +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) SendUniversalPacketWithFee(channelId [32]byte, destPortAddr [32]byte, appData []byte, timeoutTimestamp uint64, gasLimits [2]*big.Int, gasPrices [2]*big.Int) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SendUniversalPacketWithFee(&_Universalchannelhandler.TransactOpts, channelId, destPortAddr, appData, timeoutTimestamp, gasLimits, gasPrices) +} + +// SetDispatcher is a paid mutator transaction binding the contract method 0xba22bd76. +// +// Solidity: function setDispatcher(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) SetDispatcher(opts *bind.TransactOpts, _dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "setDispatcher", _dispatcher) +} + +// SetDispatcher is a paid mutator transaction binding the contract method 0xba22bd76. +// +// Solidity: function setDispatcher(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) SetDispatcher(_dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SetDispatcher(&_Universalchannelhandler.TransactOpts, _dispatcher) +} + +// SetDispatcher is a paid mutator transaction binding the contract method 0xba22bd76. +// +// Solidity: function setDispatcher(address _dispatcher) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) SetDispatcher(_dispatcher common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.SetDispatcher(&_Universalchannelhandler.TransactOpts, _dispatcher) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.TransferOwnership(&_Universalchannelhandler.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.TransferOwnership(&_Universalchannelhandler.TransactOpts, newOwner) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "upgradeTo", newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UpgradeTo(&_Universalchannelhandler.TransactOpts, newImplementation) +} + +// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// +// Solidity: function upgradeTo(address newImplementation) returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UpgradeTo(&_Universalchannelhandler.TransactOpts, newImplementation) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _Universalchannelhandler.contract.Transact(opts, "upgradeToAndCall", newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UpgradeToAndCall(&_Universalchannelhandler.TransactOpts, newImplementation, data) +} + +// UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. +// +// Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) { + return _Universalchannelhandler.Contract.UpgradeToAndCall(&_Universalchannelhandler.TransactOpts, newImplementation, data) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Universalchannelhandler.contract.RawTransact(opts, nil) // calldata is disallowed for receive function +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerSession) Receive() (*types.Transaction, error) { + return _Universalchannelhandler.Contract.Receive(&_Universalchannelhandler.TransactOpts) +} + +// Receive is a paid mutator transaction binding the contract receive function. +// +// Solidity: receive() payable returns() +func (_Universalchannelhandler *UniversalchannelhandlerTransactorSession) Receive() (*types.Transaction, error) { + return _Universalchannelhandler.Contract.Receive(&_Universalchannelhandler.TransactOpts) +} + +// UniversalchannelhandlerAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerAdminChangedIterator struct { + Event *UniversalchannelhandlerAdminChanged // 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 *UniversalchannelhandlerAdminChangedIterator) 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(UniversalchannelhandlerAdminChanged) + 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(UniversalchannelhandlerAdminChanged) + 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 *UniversalchannelhandlerAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerAdminChanged represents a AdminChanged event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerAdminChanged struct { + PreviousAdmin common.Address + NewAdmin common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*UniversalchannelhandlerAdminChangedIterator, error) { + + logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "AdminChanged") + if err != nil { + return nil, err + } + return &UniversalchannelhandlerAdminChangedIterator{contract: _Universalchannelhandler.contract, event: "AdminChanged", logs: logs, sub: sub}, nil +} + +// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerAdminChanged) (event.Subscription, error) { + + logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "AdminChanged") + 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(UniversalchannelhandlerAdminChanged) + if err := _Universalchannelhandler.contract.UnpackLog(event, "AdminChanged", 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 +} + +// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// +// Solidity: event AdminChanged(address previousAdmin, address newAdmin) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseAdminChanged(log types.Log) (*UniversalchannelhandlerAdminChanged, error) { + event := new(UniversalchannelhandlerAdminChanged) + if err := _Universalchannelhandler.contract.UnpackLog(event, "AdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UniversalchannelhandlerBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerBeaconUpgradedIterator struct { + Event *UniversalchannelhandlerBeaconUpgraded // 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 *UniversalchannelhandlerBeaconUpgradedIterator) 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(UniversalchannelhandlerBeaconUpgraded) + 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(UniversalchannelhandlerBeaconUpgraded) + 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 *UniversalchannelhandlerBeaconUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerBeaconUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerBeaconUpgraded represents a BeaconUpgraded event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerBeaconUpgraded struct { + Beacon common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*UniversalchannelhandlerBeaconUpgradedIterator, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerBeaconUpgradedIterator{contract: _Universalchannelhandler.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil +} + +// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { + + var beaconRule []interface{} + for _, beaconItem := range beacon { + beaconRule = append(beaconRule, beaconItem) + } + + logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) + 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(UniversalchannelhandlerBeaconUpgraded) + if err := _Universalchannelhandler.contract.UnpackLog(event, "BeaconUpgraded", 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 +} + +// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// +// Solidity: event BeaconUpgraded(address indexed beacon) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseBeaconUpgraded(log types.Log) (*UniversalchannelhandlerBeaconUpgraded, error) { + event := new(UniversalchannelhandlerBeaconUpgraded) + if err := _Universalchannelhandler.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UniversalchannelhandlerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerInitializedIterator struct { + Event *UniversalchannelhandlerInitialized // 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 *UniversalchannelhandlerInitializedIterator) 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(UniversalchannelhandlerInitialized) + 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(UniversalchannelhandlerInitialized) + 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 *UniversalchannelhandlerInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerInitialized represents a Initialized event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterInitialized(opts *bind.FilterOpts) (*UniversalchannelhandlerInitializedIterator, error) { + + logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &UniversalchannelhandlerInitializedIterator{contract: _Universalchannelhandler.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerInitialized) (event.Subscription, error) { + + logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UniversalchannelhandlerInitialized) + if err := _Universalchannelhandler.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseInitialized(log types.Log) (*UniversalchannelhandlerInitialized, error) { + event := new(UniversalchannelhandlerInitialized) + if err := _Universalchannelhandler.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UniversalchannelhandlerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerOwnershipTransferredIterator struct { + Event *UniversalchannelhandlerOwnershipTransferred // 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 *UniversalchannelhandlerOwnershipTransferredIterator) 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(UniversalchannelhandlerOwnershipTransferred) + 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(UniversalchannelhandlerOwnershipTransferred) + 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 *UniversalchannelhandlerOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerOwnershipTransferred represents a OwnershipTransferred event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerOwnershipTransferred 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 (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UniversalchannelhandlerOwnershipTransferredIterator, 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 := _Universalchannelhandler.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerOwnershipTransferredIterator{contract: _Universalchannelhandler.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 (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerOwnershipTransferred, 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 := _Universalchannelhandler.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(UniversalchannelhandlerOwnershipTransferred) + if err := _Universalchannelhandler.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 (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseOwnershipTransferred(log types.Log) (*UniversalchannelhandlerOwnershipTransferred, error) { + event := new(UniversalchannelhandlerOwnershipTransferred) + if err := _Universalchannelhandler.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UniversalchannelhandlerUCHPacketSentIterator is returned from FilterUCHPacketSent and is used to iterate over the raw logs and unpacked data for UCHPacketSent events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerUCHPacketSentIterator struct { + Event *UniversalchannelhandlerUCHPacketSent // 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 *UniversalchannelhandlerUCHPacketSentIterator) 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(UniversalchannelhandlerUCHPacketSent) + 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(UniversalchannelhandlerUCHPacketSent) + 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 *UniversalchannelhandlerUCHPacketSentIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerUCHPacketSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerUCHPacketSent represents a UCHPacketSent event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerUCHPacketSent struct { + Source common.Address + Destination [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUCHPacketSent is a free log retrieval operation binding the contract event 0x9831d8c66285bfd33de069ced58ad437d6bf08f63446bf06c3713e40b4b7e873. +// +// Solidity: event UCHPacketSent(address source, bytes32 destination) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterUCHPacketSent(opts *bind.FilterOpts) (*UniversalchannelhandlerUCHPacketSentIterator, error) { + + logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "UCHPacketSent") + if err != nil { + return nil, err + } + return &UniversalchannelhandlerUCHPacketSentIterator{contract: _Universalchannelhandler.contract, event: "UCHPacketSent", logs: logs, sub: sub}, nil +} + +// WatchUCHPacketSent is a free log subscription operation binding the contract event 0x9831d8c66285bfd33de069ced58ad437d6bf08f63446bf06c3713e40b4b7e873. +// +// Solidity: event UCHPacketSent(address source, bytes32 destination) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUCHPacketSent(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerUCHPacketSent) (event.Subscription, error) { + + logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "UCHPacketSent") + 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(UniversalchannelhandlerUCHPacketSent) + if err := _Universalchannelhandler.contract.UnpackLog(event, "UCHPacketSent", 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 +} + +// ParseUCHPacketSent is a log parse operation binding the contract event 0x9831d8c66285bfd33de069ced58ad437d6bf08f63446bf06c3713e40b4b7e873. +// +// Solidity: event UCHPacketSent(address source, bytes32 destination) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseUCHPacketSent(log types.Log) (*UniversalchannelhandlerUCHPacketSent, error) { + event := new(UniversalchannelhandlerUCHPacketSent) + if err := _Universalchannelhandler.contract.UnpackLog(event, "UCHPacketSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UniversalchannelhandlerUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the Universalchannelhandler contract. +type UniversalchannelhandlerUpgradedIterator struct { + Event *UniversalchannelhandlerUpgraded // 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 *UniversalchannelhandlerUpgradedIterator) 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(UniversalchannelhandlerUpgraded) + 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(UniversalchannelhandlerUpgraded) + 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 *UniversalchannelhandlerUpgradedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UniversalchannelhandlerUpgradedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UniversalchannelhandlerUpgraded represents a Upgraded event raised by the Universalchannelhandler contract. +type UniversalchannelhandlerUpgraded struct { + Implementation common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*UniversalchannelhandlerUpgradedIterator, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "Upgraded", implementationRule) + if err != nil { + return nil, err + } + return &UniversalchannelhandlerUpgradedIterator{contract: _Universalchannelhandler.contract, event: "Upgraded", logs: logs, sub: sub}, nil +} + +// WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *UniversalchannelhandlerUpgraded, implementation []common.Address) (event.Subscription, error) { + + var implementationRule []interface{} + for _, implementationItem := range implementation { + implementationRule = append(implementationRule, implementationItem) + } + + logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "Upgraded", implementationRule) + 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(UniversalchannelhandlerUpgraded) + if err := _Universalchannelhandler.contract.UnpackLog(event, "Upgraded", 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 +} + +// ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b. +// +// Solidity: event Upgraded(address indexed implementation) +func (_Universalchannelhandler *UniversalchannelhandlerFilterer) ParseUpgraded(log types.Log) (*UniversalchannelhandlerUpgraded, error) { + event := new(UniversalchannelhandlerUpgraded) + if err := _Universalchannelhandler.contract.UnpackLog(event, "Upgraded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +}