From a4481d6047d6edc45e2dd769350e67b8c55333dc Mon Sep 17 00:00:00 2001 From: h5law Date: Thu, 27 Jun 2024 14:04:04 +0100 Subject: [PATCH] feat: fix release workflow auto deployment logic --- .github/workflows/release.yml | 46 +- .gitignore | 1 - .npmignore | 1 + Makefile | 5 +- .../{dispatcher.go => Dispatcher.go} | 0 bindings/earth/{earth.go => Earth.go} | 0 bindings/mars/{mars.go => Mars.go} | 0 bindings/moon/{moon.go => Moon.go} | 0 ...lhandler.go => UniversalChannelHandler.go} | 670 +++++++++--------- bun.lockb | Bin 228423 -> 228408 bytes bindings/go.mod => go.mod | 2 +- bindings/go.sum => go.sum | 0 package.json | 19 +- 13 files changed, 385 insertions(+), 359 deletions(-) rename bindings/dispatcher/{dispatcher.go => Dispatcher.go} (100%) rename bindings/earth/{earth.go => Earth.go} (100%) rename bindings/mars/{mars.go => Mars.go} (100%) rename bindings/moon/{moon.go => Moon.go} (100%) rename bindings/universalchannelhandler/{universalchannelhandler.go => UniversalChannelHandler.go} (70%) rename bindings/go.mod => go.mod (96%) rename bindings/go.sum => go.sum (100%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84023324..c44e0f1a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,10 @@ on: tags: - "v*.*.*" +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + jobs: artifacts: runs-on: ubuntu-latest @@ -35,7 +39,7 @@ jobs: cp -r out/Moon.sol/Moon.json artifacts/ - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: compiled-contracts path: artifacts @@ -44,12 +48,17 @@ jobs: runs-on: ubuntu-latest needs: artifacts environment: release + permissions: + contents: write steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: "recursive" - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: compiled-contracts path: ./artifacts @@ -69,6 +78,12 @@ jobs: needs: release environment: release steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: "recursive" + - name: Get Latest Version id: version uses: pozetroninc/github-action-get-latest-release@master @@ -80,20 +95,31 @@ jobs: with: go-version: "1.21.3" + - name: Setup Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Install ABIGen + run: | + go install github.com/ethereum/go-ethereum/cmd/abigen@v1.13.5 + - uses: actions/setup-node@v4 with: node-version: "22.3.0" registry-url: "https://registry.npmjs.org" + - name: Install Bun + uses: oven-sh/setup-bun@v1 + + # Ensure /v2 is updated as the major version changes + - name: Update Go Registry + run: | + GOPROXY=proxy.golang.org go list \ + -m github.com/open-ibc/vibc-core-smart-contracts/v2@${{ steps.version.outputs.release }} + - name: Update NPM Registry run: | - npm ci - npm publish --provenance --access public + bun install --frozen-lockfile + bun run build + npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Update Go Registry - run: | - ( cd ./bindings && \ - GOPROXY=proxy.golang.org go list \ - -m github.com/open-ibc/vibc-core-smart-contracts/bindings@${{ steps.version.outputs.release }} ) diff --git a/.gitignore b/.gitignore index 4cc8823d..80f97d20 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,6 @@ src/contracts.template.ts forge-cache/ node_modules -package-lock.json .env coverage coverage.json diff --git a/.npmignore b/.npmignore index 1df31c14..fba64fff 100644 --- a/.npmignore +++ b/.npmignore @@ -24,6 +24,7 @@ src/contracts.template.ts .direnv/ forge-cache/ +bun.lockb node_modules .env coverage diff --git a/Makefile b/Makefile index 47563a82..da0a8721 100644 --- a/Makefile +++ b/Makefile @@ -28,11 +28,12 @@ abigen: extract_artifacts echo "Generating Go vIBC bindings..."; \ for abi_file in $(wildcard $(TMP_ABI_DIR)/*.json); do \ abi_base=$$(basename $$abi_file); \ - type=$$(basename $$abi_file .json | tr "[:upper:]" "[:lower:]"); \ + type=$$(basename $$abi_file .json); \ pkg=$$(basename $$abi_base .json | tr "[:upper:]" "[:lower:]"); \ mkdir -p ./bindings/$$pkg; \ abigen --abi $$abi_file --pkg $$pkg --type $$type --out ./bindings/$$pkg/$$type.go; \ - done + done; \ + ( cd ./bindings && go mod tidy ) clean: echo "Cleaning up all artifacts..."; \ diff --git a/bindings/dispatcher/dispatcher.go b/bindings/dispatcher/Dispatcher.go similarity index 100% rename from bindings/dispatcher/dispatcher.go rename to bindings/dispatcher/Dispatcher.go diff --git a/bindings/earth/earth.go b/bindings/earth/Earth.go similarity index 100% rename from bindings/earth/earth.go rename to bindings/earth/Earth.go diff --git a/bindings/mars/mars.go b/bindings/mars/Mars.go similarity index 100% rename from bindings/mars/mars.go rename to bindings/mars/Mars.go diff --git a/bindings/moon/moon.go b/bindings/moon/Moon.go similarity index 100% rename from bindings/moon/moon.go rename to bindings/moon/Moon.go diff --git a/bindings/universalchannelhandler/universalchannelhandler.go b/bindings/universalchannelhandler/UniversalChannelHandler.go similarity index 70% rename from bindings/universalchannelhandler/universalchannelhandler.go rename to bindings/universalchannelhandler/UniversalChannelHandler.go index b44306d2..433d8e18 100644 --- a/bindings/universalchannelhandler/universalchannelhandler.go +++ b/bindings/universalchannelhandler/UniversalChannelHandler.go @@ -57,113 +57,113 @@ type IbcPacket struct { TimeoutTimestamp uint64 } -// UniversalchannelhandlerMetaData contains all meta data concerning the Universalchannelhandler contract. -var UniversalchannelhandlerMetaData = &bind.MetaData{ +// 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 +// 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 +// 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 { +// 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 { +// 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 { +// 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, +// 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 +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, +// 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 +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, +// 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 +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 +// 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 +// 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 +// 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) +// 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 + 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) +// 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 + 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) +// 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 + 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) +// 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 + 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() +// 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 } @@ -174,46 +174,46 @@ func bindUniversalchannelhandler(address common.Address, caller bind.ContractCal // 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...) +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) +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...) +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...) +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) +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...) +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) { +func (_UniversalChannelHandler *UniversalChannelHandlerCaller) MWID(opts *bind.CallOpts) (*big.Int, error) { var out []interface{} - err := _Universalchannelhandler.contract.Call(opts, &out, "MW_ID") + err := _UniversalChannelHandler.contract.Call(opts, &out, "MW_ID") if err != nil { return *new(*big.Int), err @@ -228,23 +228,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) MWID(opts *bind.C // 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) +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) +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) { +func (_UniversalChannelHandler *UniversalChannelHandlerCaller) VERSION(opts *bind.CallOpts) (string, error) { var out []interface{} - err := _Universalchannelhandler.contract.Call(opts, &out, "VERSION") + err := _UniversalChannelHandler.contract.Call(opts, &out, "VERSION") if err != nil { return *new(string), err @@ -259,23 +259,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) VERSION(opts *bin // 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) +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) +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) { +func (_UniversalChannelHandler *UniversalChannelHandlerCaller) Dispatcher(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _Universalchannelhandler.contract.Call(opts, &out, "dispatcher") + err := _UniversalChannelHandler.contract.Call(opts, &out, "dispatcher") if err != nil { return *new(common.Address), err @@ -290,23 +290,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) Dispatcher(opts * // 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) +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) +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 { +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) + err := _UniversalChannelHandler.contract.Call(opts, &out, "onChanOpenAck", channelId, arg1, counterpartyVersion) if err != nil { return err @@ -319,23 +319,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenAck(opt // 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) +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) +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) { +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) + err := _UniversalChannelHandler.contract.Call(opts, &out, "onChanOpenInit", arg0, arg1, arg2, version) if err != nil { return *new(string), err @@ -350,23 +350,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenInit(op // 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) +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) +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) { +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) + err := _UniversalChannelHandler.contract.Call(opts, &out, "onChanOpenTry", arg0, arg1, channelId, arg3, arg4, counterpartyVersion) if err != nil { return *new(string), err @@ -381,23 +381,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) OnChanOpenTry(opt // 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) +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) +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) { +func (_UniversalChannelHandler *UniversalChannelHandlerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { var out []interface{} - err := _Universalchannelhandler.contract.Call(opts, &out, "owner") + err := _UniversalChannelHandler.contract.Call(opts, &out, "owner") if err != nil { return *new(common.Address), err @@ -412,23 +412,23 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) Owner(opts *bind. // 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) +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) +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) { +func (_UniversalChannelHandler *UniversalChannelHandlerCaller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) { var out []interface{} - err := _Universalchannelhandler.contract.Call(opts, &out, "proxiableUUID") + err := _UniversalChannelHandler.contract.Call(opts, &out, "proxiableUUID") if err != nil { return *new([32]byte), err @@ -443,377 +443,377 @@ func (_Universalchannelhandler *UniversalchannelhandlerCaller) ProxiableUUID(opt // 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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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") +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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 +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) +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) +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 +// 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 @@ -827,7 +827,7 @@ type UniversalchannelhandlerAdminChangedIterator struct { // 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 { +func (it *UniversalChannelHandlerAdminChangedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -836,7 +836,7 @@ func (it *UniversalchannelhandlerAdminChangedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerAdminChanged) + it.Event = new(UniversalChannelHandlerAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -851,7 +851,7 @@ func (it *UniversalchannelhandlerAdminChangedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerAdminChanged) + it.Event = new(UniversalChannelHandlerAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -867,19 +867,19 @@ func (it *UniversalchannelhandlerAdminChangedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerAdminChangedIterator) Error() error { +func (it *UniversalChannelHandlerAdminChangedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerAdminChangedIterator) Close() error { +func (it *UniversalChannelHandlerAdminChangedIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerAdminChanged represents a AdminChanged event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerAdminChanged struct { +// 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 @@ -888,21 +888,21 @@ type UniversalchannelhandlerAdminChanged struct { // 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*UniversalChannelHandlerAdminChangedIterator, error) { - logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "AdminChanged") + 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 + 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *UniversalChannelHandlerAdminChanged) (event.Subscription, error) { - logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "AdminChanged") + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "AdminChanged") if err != nil { return nil, err } @@ -912,8 +912,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchAdminChang 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 { + event := new(UniversalChannelHandlerAdminChanged) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "AdminChanged", log); err != nil { return err } event.Raw = log @@ -937,18 +937,18 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchAdminChang // 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 { +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 +// 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 @@ -962,7 +962,7 @@ type UniversalchannelhandlerBeaconUpgradedIterator struct { // 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 { +func (it *UniversalChannelHandlerBeaconUpgradedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -971,7 +971,7 @@ func (it *UniversalchannelhandlerBeaconUpgradedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerBeaconUpgraded) + it.Event = new(UniversalChannelHandlerBeaconUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -986,7 +986,7 @@ func (it *UniversalchannelhandlerBeaconUpgradedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerBeaconUpgraded) + it.Event = new(UniversalChannelHandlerBeaconUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1002,19 +1002,19 @@ func (it *UniversalchannelhandlerBeaconUpgradedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerBeaconUpgradedIterator) Error() error { +func (it *UniversalChannelHandlerBeaconUpgradedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerBeaconUpgradedIterator) Close() error { +func (it *UniversalChannelHandlerBeaconUpgradedIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerBeaconUpgraded represents a BeaconUpgraded event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerBeaconUpgraded struct { +// UniversalChannelHandlerBeaconUpgraded represents a BeaconUpgraded event raised by the UniversalChannelHandler contract. +type UniversalChannelHandlerBeaconUpgraded struct { Beacon common.Address Raw types.Log // Blockchain specific contextual infos } @@ -1022,31 +1022,31 @@ type UniversalchannelhandlerBeaconUpgraded struct { // 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) { +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) + 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 + 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) { +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) + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule) if err != nil { return nil, err } @@ -1056,8 +1056,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchBeaconUpgr 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 { + event := new(UniversalChannelHandlerBeaconUpgraded) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { return err } event.Raw = log @@ -1081,18 +1081,18 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchBeaconUpgr // 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 { +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 +// 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 @@ -1106,7 +1106,7 @@ type UniversalchannelhandlerInitializedIterator struct { // 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 { +func (it *UniversalChannelHandlerInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1115,7 +1115,7 @@ func (it *UniversalchannelhandlerInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerInitialized) + it.Event = new(UniversalChannelHandlerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1130,7 +1130,7 @@ func (it *UniversalchannelhandlerInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerInitialized) + it.Event = new(UniversalChannelHandlerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1146,19 +1146,19 @@ func (it *UniversalchannelhandlerInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerInitializedIterator) Error() error { +func (it *UniversalChannelHandlerInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerInitializedIterator) Close() error { +func (it *UniversalChannelHandlerInitializedIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerInitialized represents a Initialized event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerInitialized struct { +// UniversalChannelHandlerInitialized represents a Initialized event raised by the UniversalChannelHandler contract. +type UniversalChannelHandlerInitialized struct { Version uint8 Raw types.Log // Blockchain specific contextual infos } @@ -1166,21 +1166,21 @@ type UniversalchannelhandlerInitialized struct { // 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) FilterInitialized(opts *bind.FilterOpts) (*UniversalChannelHandlerInitializedIterator, error) { - logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "Initialized") + 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 + 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UniversalChannelHandlerInitialized) (event.Subscription, error) { - logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "Initialized") + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "Initialized") if err != nil { return nil, err } @@ -1190,8 +1190,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchInitialize 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 { + event := new(UniversalChannelHandlerInitialized) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "Initialized", log); err != nil { return err } event.Raw = log @@ -1215,18 +1215,18 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchInitialize // 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 { +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 +// 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 @@ -1240,7 +1240,7 @@ type UniversalchannelhandlerOwnershipTransferredIterator struct { // 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 { +func (it *UniversalChannelHandlerOwnershipTransferredIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1249,7 +1249,7 @@ func (it *UniversalchannelhandlerOwnershipTransferredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerOwnershipTransferred) + it.Event = new(UniversalChannelHandlerOwnershipTransferred) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1264,7 +1264,7 @@ func (it *UniversalchannelhandlerOwnershipTransferredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerOwnershipTransferred) + it.Event = new(UniversalChannelHandlerOwnershipTransferred) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1280,19 +1280,19 @@ func (it *UniversalchannelhandlerOwnershipTransferredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerOwnershipTransferredIterator) Error() error { +func (it *UniversalChannelHandlerOwnershipTransferredIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerOwnershipTransferredIterator) Close() error { +func (it *UniversalChannelHandlerOwnershipTransferredIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerOwnershipTransferred represents a OwnershipTransferred event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerOwnershipTransferred struct { +// 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 @@ -1301,7 +1301,7 @@ type UniversalchannelhandlerOwnershipTransferred struct { // 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UniversalChannelHandlerOwnershipTransferredIterator, error) { var previousOwnerRule []interface{} for _, previousOwnerItem := range previousOwner { @@ -1312,17 +1312,17 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) FilterOwnership newOwnerRule = append(newOwnerRule, newOwnerItem) } - logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + 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 + 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) { +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 { @@ -1333,7 +1333,7 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchOwnershipT newOwnerRule = append(newOwnerRule, newOwnerItem) } - logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) if err != nil { return nil, err } @@ -1343,8 +1343,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchOwnershipT 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 { + event := new(UniversalChannelHandlerOwnershipTransferred) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { return err } event.Raw = log @@ -1368,18 +1368,18 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchOwnershipT // 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 { +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 +// 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 @@ -1393,7 +1393,7 @@ type UniversalchannelhandlerUCHPacketSentIterator struct { // 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 { +func (it *UniversalChannelHandlerUCHPacketSentIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1402,7 +1402,7 @@ func (it *UniversalchannelhandlerUCHPacketSentIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerUCHPacketSent) + it.Event = new(UniversalChannelHandlerUCHPacketSent) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1417,7 +1417,7 @@ func (it *UniversalchannelhandlerUCHPacketSentIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerUCHPacketSent) + it.Event = new(UniversalChannelHandlerUCHPacketSent) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1433,19 +1433,19 @@ func (it *UniversalchannelhandlerUCHPacketSentIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerUCHPacketSentIterator) Error() error { +func (it *UniversalChannelHandlerUCHPacketSentIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerUCHPacketSentIterator) Close() error { +func (it *UniversalChannelHandlerUCHPacketSentIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerUCHPacketSent represents a UCHPacketSent event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerUCHPacketSent struct { +// 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 @@ -1454,21 +1454,21 @@ type UniversalchannelhandlerUCHPacketSent struct { // 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) FilterUCHPacketSent(opts *bind.FilterOpts) (*UniversalChannelHandlerUCHPacketSentIterator, error) { - logs, sub, err := _Universalchannelhandler.contract.FilterLogs(opts, "UCHPacketSent") + 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 + 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) { +func (_UniversalChannelHandler *UniversalChannelHandlerFilterer) WatchUCHPacketSent(opts *bind.WatchOpts, sink chan<- *UniversalChannelHandlerUCHPacketSent) (event.Subscription, error) { - logs, sub, err := _Universalchannelhandler.contract.WatchLogs(opts, "UCHPacketSent") + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "UCHPacketSent") if err != nil { return nil, err } @@ -1478,8 +1478,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUCHPacketS 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 { + event := new(UniversalChannelHandlerUCHPacketSent) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "UCHPacketSent", log); err != nil { return err } event.Raw = log @@ -1503,18 +1503,18 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUCHPacketS // 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 { +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 +// 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 @@ -1528,7 +1528,7 @@ type UniversalchannelhandlerUpgradedIterator struct { // 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 { +func (it *UniversalChannelHandlerUpgradedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1537,7 +1537,7 @@ func (it *UniversalchannelhandlerUpgradedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerUpgraded) + it.Event = new(UniversalChannelHandlerUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1552,7 +1552,7 @@ func (it *UniversalchannelhandlerUpgradedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(UniversalchannelhandlerUpgraded) + it.Event = new(UniversalChannelHandlerUpgraded) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1568,19 +1568,19 @@ func (it *UniversalchannelhandlerUpgradedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *UniversalchannelhandlerUpgradedIterator) Error() error { +func (it *UniversalChannelHandlerUpgradedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *UniversalchannelhandlerUpgradedIterator) Close() error { +func (it *UniversalChannelHandlerUpgradedIterator) Close() error { it.sub.Unsubscribe() return nil } -// UniversalchannelhandlerUpgraded represents a Upgraded event raised by the Universalchannelhandler contract. -type UniversalchannelhandlerUpgraded struct { +// UniversalChannelHandlerUpgraded represents a Upgraded event raised by the UniversalChannelHandler contract. +type UniversalChannelHandlerUpgraded struct { Implementation common.Address Raw types.Log // Blockchain specific contextual infos } @@ -1588,31 +1588,31 @@ type UniversalchannelhandlerUpgraded struct { // 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) { +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) + 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 + 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) { +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) + logs, sub, err := _UniversalChannelHandler.contract.WatchLogs(opts, "Upgraded", implementationRule) if err != nil { return nil, err } @@ -1622,8 +1622,8 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUpgraded(o 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 { + event := new(UniversalChannelHandlerUpgraded) + if err := _UniversalChannelHandler.contract.UnpackLog(event, "Upgraded", log); err != nil { return err } event.Raw = log @@ -1647,9 +1647,9 @@ func (_Universalchannelhandler *UniversalchannelhandlerFilterer) WatchUpgraded(o // 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 { +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 diff --git a/bun.lockb b/bun.lockb index 8b92dab6de03c12b2b4ee30b2abbe404ff9bb158..aa93da474f5ceb566c1ba2d61238c703d2290a2b 100755 GIT binary patch delta 37172 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