From 248a978e8db7d71cf74320dd825be1400fd22f80 Mon Sep 17 00:00:00 2001 From: Raul Date: Fri, 13 Dec 2024 02:26:43 +0100 Subject: [PATCH] remade bindings --- contracts/bindings/create3.go | 255 ++ contracts/bindings/create3_more.go | 14 + .../bindings/create3_storage_layout.json | 4 + contracts/bindings/iptokenstaking.go | 3437 +++++++++++++++++ contracts/bindings/iptokenstaking_more.go | 14 + .../iptokenstaking_storage_layout.json | 51 + contracts/bindings/ubipool.go | 1361 +++++++ contracts/bindings/ubipool_more.go | 14 + .../bindings/ubipool_storage_layout.json | 54 + contracts/bindings/upgradeentrypoint.go | 1100 ++++++ contracts/bindings/upgradeentrypoint_more.go | 14 + .../upgradeentrypoint_storage_layout.json | 4 + 12 files changed, 6322 insertions(+) create mode 100644 contracts/bindings/create3.go create mode 100644 contracts/bindings/create3_more.go create mode 100644 contracts/bindings/create3_storage_layout.json create mode 100644 contracts/bindings/iptokenstaking.go create mode 100644 contracts/bindings/iptokenstaking_more.go create mode 100644 contracts/bindings/iptokenstaking_storage_layout.json create mode 100644 contracts/bindings/ubipool.go create mode 100644 contracts/bindings/ubipool_more.go create mode 100644 contracts/bindings/ubipool_storage_layout.json create mode 100644 contracts/bindings/upgradeentrypoint.go create mode 100644 contracts/bindings/upgradeentrypoint_more.go create mode 100644 contracts/bindings/upgradeentrypoint_storage_layout.json diff --git a/contracts/bindings/create3.go b/contracts/bindings/create3.go new file mode 100644 index 00000000..01dd9710 --- /dev/null +++ b/contracts/bindings/create3.go @@ -0,0 +1,255 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// Create3MetaData contains all meta data concerning the Create3 contract. +var Create3MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"deploy\",\"inputs\":[{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"creationCode\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"deployed\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"getDeployed\",\"inputs\":[{\"name\":\"deployer\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"deployed\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"}]", + Bin: "0x6080806040523461001657610576908161001c8239f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c90816350f1c4641461027d575063cdcb760a1461003b57600080fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610279576024359067ffffffffffffffff82116102755736602383011215610275578184013593610090856103ba565b9361009d83519586610379565b8585526020958686019436602483830101116102755781839260248a930188378701015282513360601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016878201908152833560148201529061012c81603484015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610379565b51902093846101396103f4565b888151910184f59073ffffffffffffffffffffffffffffffffffffffff9586831615610219579183929161016d849361042d565b98519134905af1903d15610213573d90610186826103ba565b9161019386519384610379565b8252873d92013e5b80610209575b156101ae57505191168152f35b8460649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152fd5b50833b15156101a1565b5061019b565b6064858a8851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601160248201527f4445504c4f594d454e545f4641494c45440000000000000000000000000000006044820152fd5b8280fd5b5080fd5b8284863461027957827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027957359273ffffffffffffffffffffffffffffffffffffffff91828516850361032b575060609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166020848101918252602435603486015293610323919061031b8160548101610100565b51902061042d565b915191168152f35b80fd5b6040810190811067ffffffffffffffff82111761034a57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034a57604052565b67ffffffffffffffff811161034a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b604051906104018261032e565b601082527f67363d3d37363d34f03d5260086018f3000000000000000000000000000000006020830152565b6104356103f4565b602081519101206040519060208201927fff0000000000000000000000000000000000000000000000000000000000000084523060601b602184015260358301526055820152605581526080810181811067ffffffffffffffff82111761034a577f010000000000000000000000000000000000000000000000000000000000000060b673ffffffffffffffffffffffffffffffffffffffff948360405284519020937fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060a08201957fd694000000000000000000000000000000000000000000000000000000000000875260601b1660a28201520152601781526105398161032e565b519020169056fea2646970667358221220ae6ad00ab94c0c8c6287fcf226a86d455010dec06d16eb8e03322c891d8de38c64736f6c63430008170033", +} + +// Create3ABI is the input ABI used to generate the binding from. +// Deprecated: Use Create3MetaData.ABI instead. +var Create3ABI = Create3MetaData.ABI + +// Create3Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use Create3MetaData.Bin instead. +var Create3Bin = Create3MetaData.Bin + +// DeployCreate3 deploys a new Ethereum contract, binding an instance of Create3 to it. +func DeployCreate3(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Create3, error) { + parsed, err := Create3MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(Create3Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Create3{Create3Caller: Create3Caller{contract: contract}, Create3Transactor: Create3Transactor{contract: contract}, Create3Filterer: Create3Filterer{contract: contract}}, nil +} + +// Create3 is an auto generated Go binding around an Ethereum contract. +type Create3 struct { + Create3Caller // Read-only binding to the contract + Create3Transactor // Write-only binding to the contract + Create3Filterer // Log filterer for contract events +} + +// Create3Caller is an auto generated read-only Go binding around an Ethereum contract. +type Create3Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Create3Transactor is an auto generated write-only Go binding around an Ethereum contract. +type Create3Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Create3Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type Create3Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// Create3Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type Create3Session struct { + Contract *Create3 // 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 +} + +// Create3CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type Create3CallerSession struct { + Contract *Create3Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// Create3TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type Create3TransactorSession struct { + Contract *Create3Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// Create3Raw is an auto generated low-level Go binding around an Ethereum contract. +type Create3Raw struct { + Contract *Create3 // Generic contract binding to access the raw methods on +} + +// Create3CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type Create3CallerRaw struct { + Contract *Create3Caller // Generic read-only contract binding to access the raw methods on +} + +// Create3TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type Create3TransactorRaw struct { + Contract *Create3Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewCreate3 creates a new instance of Create3, bound to a specific deployed contract. +func NewCreate3(address common.Address, backend bind.ContractBackend) (*Create3, error) { + contract, err := bindCreate3(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Create3{Create3Caller: Create3Caller{contract: contract}, Create3Transactor: Create3Transactor{contract: contract}, Create3Filterer: Create3Filterer{contract: contract}}, nil +} + +// NewCreate3Caller creates a new read-only instance of Create3, bound to a specific deployed contract. +func NewCreate3Caller(address common.Address, caller bind.ContractCaller) (*Create3Caller, error) { + contract, err := bindCreate3(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &Create3Caller{contract: contract}, nil +} + +// NewCreate3Transactor creates a new write-only instance of Create3, bound to a specific deployed contract. +func NewCreate3Transactor(address common.Address, transactor bind.ContractTransactor) (*Create3Transactor, error) { + contract, err := bindCreate3(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &Create3Transactor{contract: contract}, nil +} + +// NewCreate3Filterer creates a new log filterer instance of Create3, bound to a specific deployed contract. +func NewCreate3Filterer(address common.Address, filterer bind.ContractFilterer) (*Create3Filterer, error) { + contract, err := bindCreate3(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &Create3Filterer{contract: contract}, nil +} + +// bindCreate3 binds a generic wrapper to an already deployed contract. +func bindCreate3(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := Create3MetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Create3 *Create3Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Create3.Contract.Create3Caller.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 (_Create3 *Create3Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Create3.Contract.Create3Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Create3 *Create3Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Create3.Contract.Create3Transactor.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 (_Create3 *Create3CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Create3.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 (_Create3 *Create3TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Create3.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Create3 *Create3TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Create3.Contract.contract.Transact(opts, method, params...) +} + +// GetDeployed is a free data retrieval call binding the contract method 0x50f1c464. +// +// Solidity: function getDeployed(address deployer, bytes32 salt) view returns(address deployed) +func (_Create3 *Create3Caller) GetDeployed(opts *bind.CallOpts, deployer common.Address, salt [32]byte) (common.Address, error) { + var out []interface{} + err := _Create3.contract.Call(opts, &out, "getDeployed", deployer, salt) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetDeployed is a free data retrieval call binding the contract method 0x50f1c464. +// +// Solidity: function getDeployed(address deployer, bytes32 salt) view returns(address deployed) +func (_Create3 *Create3Session) GetDeployed(deployer common.Address, salt [32]byte) (common.Address, error) { + return _Create3.Contract.GetDeployed(&_Create3.CallOpts, deployer, salt) +} + +// GetDeployed is a free data retrieval call binding the contract method 0x50f1c464. +// +// Solidity: function getDeployed(address deployer, bytes32 salt) view returns(address deployed) +func (_Create3 *Create3CallerSession) GetDeployed(deployer common.Address, salt [32]byte) (common.Address, error) { + return _Create3.Contract.GetDeployed(&_Create3.CallOpts, deployer, salt) +} + +// Deploy is a paid mutator transaction binding the contract method 0xcdcb760a. +// +// Solidity: function deploy(bytes32 salt, bytes creationCode) payable returns(address deployed) +func (_Create3 *Create3Transactor) Deploy(opts *bind.TransactOpts, salt [32]byte, creationCode []byte) (*types.Transaction, error) { + return _Create3.contract.Transact(opts, "deploy", salt, creationCode) +} + +// Deploy is a paid mutator transaction binding the contract method 0xcdcb760a. +// +// Solidity: function deploy(bytes32 salt, bytes creationCode) payable returns(address deployed) +func (_Create3 *Create3Session) Deploy(salt [32]byte, creationCode []byte) (*types.Transaction, error) { + return _Create3.Contract.Deploy(&_Create3.TransactOpts, salt, creationCode) +} + +// Deploy is a paid mutator transaction binding the contract method 0xcdcb760a. +// +// Solidity: function deploy(bytes32 salt, bytes creationCode) payable returns(address deployed) +func (_Create3 *Create3TransactorSession) Deploy(salt [32]byte, creationCode []byte) (*types.Transaction, error) { + return _Create3.Contract.Deploy(&_Create3.TransactOpts, salt, creationCode) +} diff --git a/contracts/bindings/create3_more.go b/contracts/bindings/create3_more.go new file mode 100644 index 00000000..dab1d8f0 --- /dev/null +++ b/contracts/bindings/create3_more.go @@ -0,0 +1,14 @@ +package bindings + +import ( + _ "embed" +) + +const ( + Create3DeployedBytecode = "0x60806040908082526004918236101561001757600080fd5b600091823560e01c90816350f1c4641461027d575063cdcb760a1461003b57600080fd5b807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610279576024359067ffffffffffffffff82116102755736602383011215610275578184013593610090856103ba565b9361009d83519586610379565b8585526020958686019436602483830101116102755781839260248a930188378701015282513360601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016878201908152833560148201529061012c81603484015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610379565b51902093846101396103f4565b888151910184f59073ffffffffffffffffffffffffffffffffffffffff9586831615610219579183929161016d849361042d565b98519134905af1903d15610213573d90610186826103ba565b9161019386519384610379565b8252873d92013e5b80610209575b156101ae57505191168152f35b8460649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152fd5b50833b15156101a1565b5061019b565b6064858a8851917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601160248201527f4445504c4f594d454e545f4641494c45440000000000000000000000000000006044820152fd5b8280fd5b5080fd5b8284863461027957827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027957359273ffffffffffffffffffffffffffffffffffffffff91828516850361032b575060609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166020848101918252602435603486015293610323919061031b8160548101610100565b51902061042d565b915191168152f35b80fd5b6040810190811067ffffffffffffffff82111761034a57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761034a57604052565b67ffffffffffffffff811161034a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b604051906104018261032e565b601082527f67363d3d37363d34f03d5260086018f3000000000000000000000000000000006020830152565b6104356103f4565b602081519101206040519060208201927fff0000000000000000000000000000000000000000000000000000000000000084523060601b602184015260358301526055820152605581526080810181811067ffffffffffffffff82111761034a577f010000000000000000000000000000000000000000000000000000000000000060b673ffffffffffffffffffffffffffffffffffffffff948360405284519020937fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060a08201957fd694000000000000000000000000000000000000000000000000000000000000875260601b1660a28201520152601781526105398161032e565b519020169056fea26469706673582212203c3f094c14080645260151fc0973813e7e3e388692d8194b173368b56b8ac64864736f6c63430008170033" +) + +//go:embed create3_storage_layout.json +var create3StorageLayoutJSON []byte + +var Create3StorageLayout = mustGetStorageLayout(create3StorageLayoutJSON) diff --git a/contracts/bindings/create3_storage_layout.json b/contracts/bindings/create3_storage_layout.json new file mode 100644 index 00000000..127dec9f --- /dev/null +++ b/contracts/bindings/create3_storage_layout.json @@ -0,0 +1,4 @@ +{ + "storage": [], + "types": {} +} diff --git a/contracts/bindings/iptokenstaking.go b/contracts/bindings/iptokenstaking.go new file mode 100644 index 00000000..bbffedee --- /dev/null +++ b/contracts/bindings/iptokenstaking.go @@ -0,0 +1,3437 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// IIPTokenStakingInitializerArgs is an auto generated low-level Go binding around an user-defined struct. +type IIPTokenStakingInitializerArgs struct { + Owner common.Address + MinStakeAmount *big.Int + MinUnstakeAmount *big.Int + MinCommissionRate *big.Int + Fee *big.Int +} + +// IPTokenStakingMetaData contains all meta data concerning the IPTokenStaking contract. +var IPTokenStakingMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"defaultMinFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"AA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BB\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEFAULT_MIN_FEE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_MONIKER_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PP\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"STAKE_ROUNDING\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"acceptOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createValidator\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"moniker\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"commissionRate\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maxCommissionRate\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"maxCommissionChangeRate\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"supportsUnlocked\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"fee\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"args\",\"type\":\"tuple\",\"internalType\":\"structIIPTokenStaking.InitializerArgs\",\"components\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"minStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minUnstakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minCommissionRate\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"fee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minCommissionRate\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minStakeAmount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"minUnstakeAmount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpSrcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpDstPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"redelegateOnBehalf\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpSrcPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpDstPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"roundedStakeAmount\",\"inputs\":[{\"name\":\"rawAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"remainder\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"setFee\",\"inputs\":[{\"name\":\"newFee\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinCommissionRate\",\"inputs\":[{\"name\":\"newValue\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinStakeAmount\",\"inputs\":[{\"name\":\"newMinStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMinUnstakeAmount\",\"inputs\":[{\"name\":\"newMinUnstakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOperator\",\"inputs\":[{\"name\":\"uncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setRewardsAddress\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"newRewardsAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setWithdrawalAddress\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"newWithdrawalAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"stake\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"stakingPeriod\",\"type\":\"uint8\",\"internalType\":\"enumIIPTokenStaking.StakingPeriod\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"stakeOnBehalf\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"stakingPeriod\",\"type\":\"uint8\",\"internalType\":\"enumIIPTokenStaking.StakingPeriod\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unjail\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"unjailOnBehalf\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"unsetOperator\",\"inputs\":[{\"name\":\"uncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unstake\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"unstakeOnBehalf\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"updateValidatorCommission\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"commissionRate\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"CreateValidator\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"moniker\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"commissionRate\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"maxCommissionRate\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"maxCommissionChangeRate\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"supportsUnlocked\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"stakingPeriod\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeSet\",\"inputs\":[{\"name\":\"newFee\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinCommissionRateChanged\",\"inputs\":[{\"name\":\"minCommissionRate\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinStakeAmountSet\",\"inputs\":[{\"name\":\"minStakeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"MinUnstakeAmountSet\",\"inputs\":[{\"name\":\"minUnstakeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferStarted\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"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\":\"Redelegate\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpSrcPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpDstPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetOperator\",\"inputs\":[{\"name\":\"uncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"operator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetRewardAddress\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"executionAddress\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SetWithdrawalAddress\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"executionAddress\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unjail\",\"inputs\":[{\"name\":\"unjailer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UnsetOperator\",\"inputs\":[{\"name\":\"uncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UpdateValidatorCommssion\",\"inputs\":[{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"commissionRate\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"delegatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"delegationId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", + Bin: "0x60a0346200015c57601f6200285038819003918201601f19168301926001600160401b0392909183851183861017620001615781602092849260409788528339810103126200015c5751633b9aca00811062000108576080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82851c16620000f7578080831603620000b2575b83516126d890816200017882396080518181816109d601526121230152f35b6001600160401b0319909116811790915581519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808062000093565b835163f92ee8a960e01b8152600490fd5b825162461bcd60e51b815260206004820152602760248201527f4950546f6b656e5374616b696e673a20496e76616c69642064656661756c74206044820152666d696e2066656560c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6040608081526004908136101561001557600080fd5b600091823560e01c8063014e8178146111db5780631487153e146111be578063396e1e47146111a257806339ec4df9146111835780633dd9fb9a14611140578063561edf7e146110ab5780635727dc5c1461108f57806369fe0e2d1461106a5780636ea3a22814611045578063715018a614610f7e578063787f82c814610ee957806379ba509714610e5f57806386eb5e4814610e155780638740597a14610a905780638da5cb5b14610a3c5780638ed65fbc146109f957806394fd0fe0146109be57806398d730a214610920578063997da8d4146109055780639d04b121146108595780639d9d293f14610815578063a0284f16146107b3578063ab8870f61461078e578063b2bc29ef1461073b578063bda16b151461071c578063c582db441461061d578063d2e1f5b8146105e7578063ddca3f43146105ca578063e30c397814610576578063eb4af04514610551578063ec21dac214610514578063eeeac01e146104d9578063f1887684146104ba578063f2fde38b146103e85763fce5dc8c146101a257600080fd5b346103e45760a06003193601126103e4577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82851c16159167ffffffffffffffff8116801590816103dc575b60011490816103d2575b1590816103c9575b506103a1578260017fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000831617855561036c575b50610242612649565b61024a612649565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580359073ffffffffffffffffffffffffffffffffffffffff821680830361036857610297612649565b61029f612649565b1561033957506102ae906122a3565b6102b9602435612412565b6102c46044356121d7565b6102cf606435612357565b6102da608435612121565b6102e2578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b602490868651917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b8680fd5b7fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000166801000000000000000117835538610239565b5083517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610206565b303b1591506101fe565b8491506101f4565b8280fd5b8382346104b65760206003193601126104b6573573ffffffffffffffffffffffffffffffffffffffff8082168092036103e4576104236120b1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b5050346104b657816003193601126104b6576020906001549051908152f35b5050346104b657816003193601126104b657602090517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8152f35b8361054e610521366113a3565b966105358782989398979497969596611ad8565b61053f8484611ad8565b6105498686611ad8565b6118a1565b80f35b8382346104b65760206003193601126104b65761054e906105706120b1565b35612412565b5050346104b657816003193601126104b65760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b50346103e457826003193601126103e45760209250549051908152f35b50823461061a57602060031936011261061a57503561060d633b9aca0082068092611a9c565b9082519182526020820152f35b80fd5b5090806003193601126103e457813567ffffffffffffffff81116107185761064890369084016111fc565b9190926024359063ffffffff82168092036107145761069d9061066b8587611ad8565b6106953373ffffffffffffffffffffffffffffffffffffffff61068e888a611d90565b1614611678565b543414611411565b8480341561070b575b81808092813491f115610701576106f57f202c9aad6965f28c0ce1cd00460c1adfa2c90277f4f0a7abb813e2f04cecd70b946106e58754841015611a11565b8351948486958652850191611703565b9060208301520390a180f35b81513d86823e3d90fd5b506108fc6106a6565b8580fd5b8380fd5b5050346104b657816003193601126104b65760209051633b9aca008152f35b8361054e6107483661122f565b9661075c8782989398979497969596611ad8565b61077f3373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b6107898484611ad8565b61149c565b8382346104b65760206003193601126104b65761054e906107ad6120b1565b35612357565b6020836107ea6107c23661129d565b956107d38682979397969496611ad8565b6107dd8484611ad8565b6107e5611dea565b611ecf565b9060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005551908152f35b8361054e610822366113a3565b966108368782989398979497969596611ad8565b6105353373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b50906108643661130c565b909291936108728486611ad8565b61089a73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b858034156108fc575b81808092813491f1156108f2576108e57f28c0529db8cf660d5b4c1e4b9313683fa7241c3fc49452e7d0ebae215a5f84b2958451958587968752860191611703565b911660208301520390a180f35b82513d87823e3d90fd5b506108fc6108a3565b5050346104b657816003193601126104b65751908152602090f35b5090346103e45760206003193601126103e45781359167ffffffffffffffff8311610718576109766109b8917fe3a30390f081e6e95d8bcc1b0459ae73d4ca4fc9bf6351e006d072c02f5209ff943691016111fc565b9190926109838385611ad8565b6109a63373ffffffffffffffffffffffffffffffffffffffff61068e8688611d90565b51928392602084526020840191611703565b0390a180f35b5050346104b657816003193601126104b657602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b8361054e610a063661135c565b92610a148382949394611ad8565b610a373373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b611742565b5050346104b657816003193601126104b65760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b50919060e06003193601126104b65767ffffffffffffffff90833582811161071857610abf90369086016111fc565b91909460243584811161071457610ad990369083016111fc565b92909660443563ffffffff90818116809103610e115760643590828216809203610e0d57608435928316809303610e0d5760a435988915158a03610e095760c435908111610e0957610b31610b7091369089016111fc565b9c9098610b3e8b88611ad8565b610b613373ffffffffffffffffffffffffffffffffffffffff61068e8e8b611d90565b610b69611dea565b3691611870565b95633b9aca00340699610b838b34611a9c565b91610b92600154841015611e44565b610b9f8d54851015611a11565b848411610d86576046895111610d0357508b80838015610cf9575b82809291818093f115610cef5715610ce557610be46001955b87519a610120808d528c0191611703565b6020978a8203898c01528051908183528d5b828110610cd25750509360ff938d9e9793837f65bfc2fa1cd4c6f50f60983ad1cf1cb4bff5ee6570428254dfce41b085ef6d149e9f601f8f9e9c997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092610c929f82819e9a010152011601968c015260608b015260808a015260a08901521660c08701523360e087015281868203016101008701520191611703565b0390a180610cc3575b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b610ccc90612591565b38610c9b565b8181018b01518482018c01528a01610bf6565b610be48b95610bd3565b86513d8d823e3d90fd5b6108fc9150610bba565b60849060208951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602760248201527f4950546f6b656e5374616b696e673a204d6f6e696b6572206c656e677468206f60448201527f766572206d6178000000000000000000000000000000000000000000000000006064820152fd5b60849060208951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602860248201527f4950546f6b656e5374616b696e673a20436f6d6d697373696f6e20726174652060448201527f6f766572206d61780000000000000000000000000000000000000000000000006064820152fd5b8a80fd5b8980fd5b8880fd5b83610e38610e223661135c565b92610e2e929192611dea565b610a378282611ad8565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b5090346103e457826003193601126103e4573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00541603610eb9578261054e336122a3565b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b5090610ef43661130c565b90929193610f028486611ad8565b610f2a73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b85803415610f75575b81808092813491f1156108f2576108e57f9f7f04f688298f474ed4c786abb29e0ca0173d70516d55d9eac515609b45fbca958451958587968752860191611703565b506108fc610f33565b833461061a578060031936011261061a57610f976120b1565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8382346104b65760206003193601126104b65761054e906110646120b1565b356121d7565b8382346104b65760206003193601126104b65761054e906110896120b1565b35612121565b5050346104b657816003193601126104b6576020905160078152f35b50906110b63661130c565b909291936110c48486611ad8565b6110ec73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b85803415611137575b81808092813491f1156108f2576108e57f658c1d4ffa3caca5fbfd38bb564825b972c239a7d090eb333a42e2ba7a0a4ed2958451958587968752860191611703565b506108fc6110f5565b6020836107ea61114f3661129d565b956111608682979397969496611ad8565b6107d33373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b5050346104b657816003193601126104b6576020906002549051908152f35b5050346104b657816003193601126104b6576020905160468152f35b5050346104b657816003193601126104b657602091549051908152f35b8361054e6111e83661122f565b9661077f8782989398979497969596611ad8565b9181601f8401121561122a5782359167ffffffffffffffff831161122a576020838186019501011161122a57565b600080fd5b60a060031982011261122a5767ffffffffffffffff9060043582811161122a578161125c916004016111fc565b9390939260243581811161122a5783611277916004016111fc565b93909392604435926064359260843591821161122a57611299916004016111fc565b9091565b608060031982011261122a5767ffffffffffffffff9160043583811161122a57826112ca916004016111fc565b9390939260243582811161122a57816112e5916004016111fc565b93909392604435600481101561122a579260643591821161122a57611299916004016111fc565b604060031982011261122a576004359067ffffffffffffffff821161122a57611337916004016111fc565b909160243573ffffffffffffffffffffffffffffffffffffffff8116810361122a5790565b604060031982011261122a5767ffffffffffffffff9160043583811161122a5782611389916004016111fc565b9390939260243591821161122a57611299916004016111fc565b9060a060031983011261122a5767ffffffffffffffff60043581811161122a57836113d0916004016111fc565b9390939260243583811161122a57826113eb916004016111fc565b9390939260443591821161122a57611405916004016111fc565b90916064359060843590565b1561141857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4950546f6b656e5374616b696e673a20496e76616c69642066656520616d6f7560448201527f6e740000000000000000000000000000000000000000000000000000000000006064820152fd5b959094929691936114b06004543414611411565b6000341561166f575b600080808093813491f115611663576114d6600354821115611d05565b60025484106115df57633b9aca00840661155b57611538611556957fac41e6ee15d2d0047feb1ea8aba74b92c0334cd3e78024a5ad679d7d08b8fbc59961152a6040519a8b9a60c08c5260c08c0191611703565b9189830360208b0152611703565b936040870152606086015233608086015284830360a0860152611703565b0390a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4950546f6b656e5374616b696e673a20416d6f756e74206d757374206265207260448201527f6f756e64656420746f205354414b455f524f554e44494e4700000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4950546f6b656e5374616b696e673a20556e7374616b6520616d6f756e74207560448201527f6e646572206d696e0000000000000000000000000000000000000000000000006064820152fd5b6040513d6000823e3d90fd5b506108fc6114b9565b1561167f57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206460448201527f65726976656420616464726573730000000000000000000000000000000000006064820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b91926117516004543414611411565b600034156117ba575b600080808093813491f115611663577f026c2e156478ec2a25ccebac97a338d301f69b6d5aeec39c578b28a95e11820193611556916117ac604051958695338752606060208801526060870191611703565b918483036040860152611703565b506108fc61175a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761180757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161180757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261188461187f83611836565b6117c3565b938285528282011161122a57816000926020928387013784010152565b959390946118b26004543414611411565b60003415611a08575b600080808093813491f115611663576118d5368585611870565b602081519101206118e7368385611870565b60208151910120146119845761196061196e9361192c8a633b9aca007f210091050fbe3add6ade45436b6c7aed210ef28fc37e1a1775970fc391272fe89c0690611a9c565b9561193b600154881015611e44565b611949600354891115611d05565b61152a6040519a8b9a60c08c5260c08c0191611703565b918683036040880152611703565b91606084015233608084015260a08301520390a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4950546f6b656e5374616b696e673a20526564656c65676174696e6720746f2060448201527f73616d652076616c696461746f720000000000000000000000000000000000006064820152fd5b506108fc6118bb565b15611a1857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4950546f6b656e5374616b696e673a20436f6d6d697373696f6e20726174652060448201527f756e646572206d696e00000000000000000000000000000000000000000000006064820152fd5b91908203918211611aa957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060418103611c815715611c52577f04000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082351603611bce578060016021611b439301359101356124de565b15611b4a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206f60448201527f6e206375727665000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579207060448201527f72656669780000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152fd5b15611d0c57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4950546f6b656e5374616b696e673a20496e76616c69642064656c656761746960448201527f6f6e2069640000000000000000000000000000000000000000000000000000006064820152fd5b8160011161122a5773ffffffffffffffffffffffffffffffffffffffff91611ddf9160017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3693019101611870565b602081519101201690565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006002815414611e1a5760029055565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b15611e4b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4950546f6b656e5374616b696e673a205374616b6520616d6f756e7420756e6460448201527f6572206d696e00000000000000000000000000000000000000000000000000006064820152fd5b92959390919360048210156120825760038211611ffe57633b9aca00340695611ef88734611a9c565b95611f07600154881015611e44565b60009884611fb7575b94611f866000989495899893967f269a32ff589c9b701f49ab6aa532ee8f55901df71a7fca2d70dc9f45314f1be39560ff611f608c9b9a8c9b61152a6040519a8b9a60e08c5260e08c0191611703565b938960408801521660608601528d60808601523360a086015284830360c0860152611703565b0390a1818115611fae575b8290f1156116635780611fa2575090565b611fab90612591565b90565b506108fc611f91565b91949850929591946003547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611aa95760010180600355989491969390959296611f10565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4950546f6b656e5374616b696e673a20496e76616c6964207374616b696e672060448201527f706572696f6400000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036120f157565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b7f00000000000000000000000000000000000000000000000000000000000000008110612179576020817f20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f92600455604051908152a1565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4950546f6b656e5374616b696e673a20496e76616c6964206d696e20666565006044820152fd5b6121e890633b9aca00810690611a9c565b80600255801561221f5760207ff93d77980ae5a1ddd008d6a7f02cbee5af2a4fcea850c4b55828de4f644e589f91604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4950546f6b656e5374616b696e673a205a65726f206d696e20756e7374616b6560448201527f20616d6f756e74000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b801561238e576020817f4167b1de65292a9ff628c9136823791a1de701e1fbdda4863ce22a1cfaf4d0f792600055604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4950546f6b656e5374616b696e673a205a65726f206d696e20636f6d6d69737360448201527f696f6e20726174650000000000000000000000000000000000000000000000006064820152fd5b61242390633b9aca00810690611a9c565b80600155801561245a5760207fea095c2fea861b87f0fd54d0d4453358692a527e120df22b62c71696247dfb9f91604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4950546f6b656e5374616b696e673a205a65726f206d696e207374616b65206160448201527f6d6f756e740000000000000000000000000000000000000000000000000000006064820152fd5b80158015612567575b801561255f575b8015612535575b61252e576007907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f918282818181950909089180091490565b5050600090565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8210156124f5565b5081156124ee565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8110156124e7565b600080808093335af13d15612644573d6125ad61187f82611836565b908152600060203d92013e5b156125c057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4950546f6b656e5374616b696e673a204661696c656420746f20726566756e6460448201527f2072656d61696e646572000000000000000000000000000000000000000000006064820152fd5b6125b9565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561267857565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea2646970667358221220f2433cb1c10cae1d142fc22c48b0f79db9dcac0f9091379a1330d91b744a701d64736f6c63430008170033", +} + +// IPTokenStakingABI is the input ABI used to generate the binding from. +// Deprecated: Use IPTokenStakingMetaData.ABI instead. +var IPTokenStakingABI = IPTokenStakingMetaData.ABI + +// IPTokenStakingBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use IPTokenStakingMetaData.Bin instead. +var IPTokenStakingBin = IPTokenStakingMetaData.Bin + +// DeployIPTokenStaking deploys a new Ethereum contract, binding an instance of IPTokenStaking to it. +func DeployIPTokenStaking(auth *bind.TransactOpts, backend bind.ContractBackend, defaultMinFee *big.Int) (common.Address, *types.Transaction, *IPTokenStaking, error) { + parsed, err := IPTokenStakingMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(IPTokenStakingBin), backend, defaultMinFee) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &IPTokenStaking{IPTokenStakingCaller: IPTokenStakingCaller{contract: contract}, IPTokenStakingTransactor: IPTokenStakingTransactor{contract: contract}, IPTokenStakingFilterer: IPTokenStakingFilterer{contract: contract}}, nil +} + +// IPTokenStaking is an auto generated Go binding around an Ethereum contract. +type IPTokenStaking struct { + IPTokenStakingCaller // Read-only binding to the contract + IPTokenStakingTransactor // Write-only binding to the contract + IPTokenStakingFilterer // Log filterer for contract events +} + +// IPTokenStakingCaller is an auto generated read-only Go binding around an Ethereum contract. +type IPTokenStakingCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IPTokenStakingTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IPTokenStakingTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IPTokenStakingFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IPTokenStakingFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IPTokenStakingSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IPTokenStakingSession struct { + Contract *IPTokenStaking // 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 +} + +// IPTokenStakingCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IPTokenStakingCallerSession struct { + Contract *IPTokenStakingCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IPTokenStakingTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IPTokenStakingTransactorSession struct { + Contract *IPTokenStakingTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IPTokenStakingRaw is an auto generated low-level Go binding around an Ethereum contract. +type IPTokenStakingRaw struct { + Contract *IPTokenStaking // Generic contract binding to access the raw methods on +} + +// IPTokenStakingCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IPTokenStakingCallerRaw struct { + Contract *IPTokenStakingCaller // Generic read-only contract binding to access the raw methods on +} + +// IPTokenStakingTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IPTokenStakingTransactorRaw struct { + Contract *IPTokenStakingTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIPTokenStaking creates a new instance of IPTokenStaking, bound to a specific deployed contract. +func NewIPTokenStaking(address common.Address, backend bind.ContractBackend) (*IPTokenStaking, error) { + contract, err := bindIPTokenStaking(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IPTokenStaking{IPTokenStakingCaller: IPTokenStakingCaller{contract: contract}, IPTokenStakingTransactor: IPTokenStakingTransactor{contract: contract}, IPTokenStakingFilterer: IPTokenStakingFilterer{contract: contract}}, nil +} + +// NewIPTokenStakingCaller creates a new read-only instance of IPTokenStaking, bound to a specific deployed contract. +func NewIPTokenStakingCaller(address common.Address, caller bind.ContractCaller) (*IPTokenStakingCaller, error) { + contract, err := bindIPTokenStaking(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IPTokenStakingCaller{contract: contract}, nil +} + +// NewIPTokenStakingTransactor creates a new write-only instance of IPTokenStaking, bound to a specific deployed contract. +func NewIPTokenStakingTransactor(address common.Address, transactor bind.ContractTransactor) (*IPTokenStakingTransactor, error) { + contract, err := bindIPTokenStaking(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IPTokenStakingTransactor{contract: contract}, nil +} + +// NewIPTokenStakingFilterer creates a new log filterer instance of IPTokenStaking, bound to a specific deployed contract. +func NewIPTokenStakingFilterer(address common.Address, filterer bind.ContractFilterer) (*IPTokenStakingFilterer, error) { + contract, err := bindIPTokenStaking(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IPTokenStakingFilterer{contract: contract}, nil +} + +// bindIPTokenStaking binds a generic wrapper to an already deployed contract. +func bindIPTokenStaking(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IPTokenStakingMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IPTokenStaking *IPTokenStakingRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IPTokenStaking.Contract.IPTokenStakingCaller.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 (_IPTokenStaking *IPTokenStakingRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IPTokenStaking.Contract.IPTokenStakingTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IPTokenStaking *IPTokenStakingRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IPTokenStaking.Contract.IPTokenStakingTransactor.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 (_IPTokenStaking *IPTokenStakingCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IPTokenStaking.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 (_IPTokenStaking *IPTokenStakingTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IPTokenStaking.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IPTokenStaking *IPTokenStakingTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IPTokenStaking.Contract.contract.Transact(opts, method, params...) +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) AA(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "AA") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) AA() (*big.Int, error) { + return _IPTokenStaking.Contract.AA(&_IPTokenStaking.CallOpts) +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) AA() (*big.Int, error) { + return _IPTokenStaking.Contract.AA(&_IPTokenStaking.CallOpts) +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) BB(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "BB") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) BB() (*big.Int, error) { + return _IPTokenStaking.Contract.BB(&_IPTokenStaking.CallOpts) +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) BB() (*big.Int, error) { + return _IPTokenStaking.Contract.BB(&_IPTokenStaking.CallOpts) +} + +// DEFAULTMINFEE is a free data retrieval call binding the contract method 0x94fd0fe0. +// +// Solidity: function DEFAULT_MIN_FEE() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) DEFAULTMINFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "DEFAULT_MIN_FEE") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// DEFAULTMINFEE is a free data retrieval call binding the contract method 0x94fd0fe0. +// +// Solidity: function DEFAULT_MIN_FEE() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) DEFAULTMINFEE() (*big.Int, error) { + return _IPTokenStaking.Contract.DEFAULTMINFEE(&_IPTokenStaking.CallOpts) +} + +// DEFAULTMINFEE is a free data retrieval call binding the contract method 0x94fd0fe0. +// +// Solidity: function DEFAULT_MIN_FEE() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) DEFAULTMINFEE() (*big.Int, error) { + return _IPTokenStaking.Contract.DEFAULTMINFEE(&_IPTokenStaking.CallOpts) +} + +// MAXMONIKERLENGTH is a free data retrieval call binding the contract method 0x396e1e47. +// +// Solidity: function MAX_MONIKER_LENGTH() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) MAXMONIKERLENGTH(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "MAX_MONIKER_LENGTH") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MAXMONIKERLENGTH is a free data retrieval call binding the contract method 0x396e1e47. +// +// Solidity: function MAX_MONIKER_LENGTH() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) MAXMONIKERLENGTH() (*big.Int, error) { + return _IPTokenStaking.Contract.MAXMONIKERLENGTH(&_IPTokenStaking.CallOpts) +} + +// MAXMONIKERLENGTH is a free data retrieval call binding the contract method 0x396e1e47. +// +// Solidity: function MAX_MONIKER_LENGTH() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) MAXMONIKERLENGTH() (*big.Int, error) { + return _IPTokenStaking.Contract.MAXMONIKERLENGTH(&_IPTokenStaking.CallOpts) +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) PP(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "PP") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) PP() (*big.Int, error) { + return _IPTokenStaking.Contract.PP(&_IPTokenStaking.CallOpts) +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) PP() (*big.Int, error) { + return _IPTokenStaking.Contract.PP(&_IPTokenStaking.CallOpts) +} + +// STAKEROUNDING is a free data retrieval call binding the contract method 0xbda16b15. +// +// Solidity: function STAKE_ROUNDING() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) STAKEROUNDING(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "STAKE_ROUNDING") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// STAKEROUNDING is a free data retrieval call binding the contract method 0xbda16b15. +// +// Solidity: function STAKE_ROUNDING() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) STAKEROUNDING() (*big.Int, error) { + return _IPTokenStaking.Contract.STAKEROUNDING(&_IPTokenStaking.CallOpts) +} + +// STAKEROUNDING is a free data retrieval call binding the contract method 0xbda16b15. +// +// Solidity: function STAKE_ROUNDING() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) STAKEROUNDING() (*big.Int, error) { + return _IPTokenStaking.Contract.STAKEROUNDING(&_IPTokenStaking.CallOpts) +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) Fee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "fee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) Fee() (*big.Int, error) { + return _IPTokenStaking.Contract.Fee(&_IPTokenStaking.CallOpts) +} + +// Fee is a free data retrieval call binding the contract method 0xddca3f43. +// +// Solidity: function fee() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) Fee() (*big.Int, error) { + return _IPTokenStaking.Contract.Fee(&_IPTokenStaking.CallOpts) +} + +// MinCommissionRate is a free data retrieval call binding the contract method 0x1487153e. +// +// Solidity: function minCommissionRate() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) MinCommissionRate(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "minCommissionRate") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MinCommissionRate is a free data retrieval call binding the contract method 0x1487153e. +// +// Solidity: function minCommissionRate() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) MinCommissionRate() (*big.Int, error) { + return _IPTokenStaking.Contract.MinCommissionRate(&_IPTokenStaking.CallOpts) +} + +// MinCommissionRate is a free data retrieval call binding the contract method 0x1487153e. +// +// Solidity: function minCommissionRate() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) MinCommissionRate() (*big.Int, error) { + return _IPTokenStaking.Contract.MinCommissionRate(&_IPTokenStaking.CallOpts) +} + +// MinStakeAmount is a free data retrieval call binding the contract method 0xf1887684. +// +// Solidity: function minStakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) MinStakeAmount(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "minStakeAmount") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MinStakeAmount is a free data retrieval call binding the contract method 0xf1887684. +// +// Solidity: function minStakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) MinStakeAmount() (*big.Int, error) { + return _IPTokenStaking.Contract.MinStakeAmount(&_IPTokenStaking.CallOpts) +} + +// MinStakeAmount is a free data retrieval call binding the contract method 0xf1887684. +// +// Solidity: function minStakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) MinStakeAmount() (*big.Int, error) { + return _IPTokenStaking.Contract.MinStakeAmount(&_IPTokenStaking.CallOpts) +} + +// MinUnstakeAmount is a free data retrieval call binding the contract method 0x39ec4df9. +// +// Solidity: function minUnstakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCaller) MinUnstakeAmount(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "minUnstakeAmount") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MinUnstakeAmount is a free data retrieval call binding the contract method 0x39ec4df9. +// +// Solidity: function minUnstakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingSession) MinUnstakeAmount() (*big.Int, error) { + return _IPTokenStaking.Contract.MinUnstakeAmount(&_IPTokenStaking.CallOpts) +} + +// MinUnstakeAmount is a free data retrieval call binding the contract method 0x39ec4df9. +// +// Solidity: function minUnstakeAmount() view returns(uint256) +func (_IPTokenStaking *IPTokenStakingCallerSession) MinUnstakeAmount() (*big.Int, error) { + return _IPTokenStaking.Contract.MinUnstakeAmount(&_IPTokenStaking.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_IPTokenStaking *IPTokenStakingCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_IPTokenStaking *IPTokenStakingSession) Owner() (common.Address, error) { + return _IPTokenStaking.Contract.Owner(&_IPTokenStaking.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_IPTokenStaking *IPTokenStakingCallerSession) Owner() (common.Address, error) { + return _IPTokenStaking.Contract.Owner(&_IPTokenStaking.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_IPTokenStaking *IPTokenStakingCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "pendingOwner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_IPTokenStaking *IPTokenStakingSession) PendingOwner() (common.Address, error) { + return _IPTokenStaking.Contract.PendingOwner(&_IPTokenStaking.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_IPTokenStaking *IPTokenStakingCallerSession) PendingOwner() (common.Address, error) { + return _IPTokenStaking.Contract.PendingOwner(&_IPTokenStaking.CallOpts) +} + +// RoundedStakeAmount is a free data retrieval call binding the contract method 0xd2e1f5b8. +// +// Solidity: function roundedStakeAmount(uint256 rawAmount) pure returns(uint256 amount, uint256 remainder) +func (_IPTokenStaking *IPTokenStakingCaller) RoundedStakeAmount(opts *bind.CallOpts, rawAmount *big.Int) (struct { + Amount *big.Int + Remainder *big.Int +}, error) { + var out []interface{} + err := _IPTokenStaking.contract.Call(opts, &out, "roundedStakeAmount", rawAmount) + + outstruct := new(struct { + Amount *big.Int + Remainder *big.Int + }) + if err != nil { + return *outstruct, err + } + + outstruct.Amount = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + outstruct.Remainder = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + + return *outstruct, err + +} + +// RoundedStakeAmount is a free data retrieval call binding the contract method 0xd2e1f5b8. +// +// Solidity: function roundedStakeAmount(uint256 rawAmount) pure returns(uint256 amount, uint256 remainder) +func (_IPTokenStaking *IPTokenStakingSession) RoundedStakeAmount(rawAmount *big.Int) (struct { + Amount *big.Int + Remainder *big.Int +}, error) { + return _IPTokenStaking.Contract.RoundedStakeAmount(&_IPTokenStaking.CallOpts, rawAmount) +} + +// RoundedStakeAmount is a free data retrieval call binding the contract method 0xd2e1f5b8. +// +// Solidity: function roundedStakeAmount(uint256 rawAmount) pure returns(uint256 amount, uint256 remainder) +func (_IPTokenStaking *IPTokenStakingCallerSession) RoundedStakeAmount(rawAmount *big.Int) (struct { + Amount *big.Int + Remainder *big.Int +}, error) { + return _IPTokenStaking.Contract.RoundedStakeAmount(&_IPTokenStaking.CallOpts, rawAmount) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_IPTokenStaking *IPTokenStakingTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_IPTokenStaking *IPTokenStakingSession) AcceptOwnership() (*types.Transaction, error) { + return _IPTokenStaking.Contract.AcceptOwnership(&_IPTokenStaking.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _IPTokenStaking.Contract.AcceptOwnership(&_IPTokenStaking.TransactOpts) +} + +// CreateValidator is a paid mutator transaction binding the contract method 0x8740597a. +// +// Solidity: function createValidator(bytes validatorUncmpPubkey, string moniker, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, bool supportsUnlocked, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) CreateValidator(opts *bind.TransactOpts, validatorUncmpPubkey []byte, moniker string, commissionRate uint32, maxCommissionRate uint32, maxCommissionChangeRate uint32, supportsUnlocked bool, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "createValidator", validatorUncmpPubkey, moniker, commissionRate, maxCommissionRate, maxCommissionChangeRate, supportsUnlocked, data) +} + +// CreateValidator is a paid mutator transaction binding the contract method 0x8740597a. +// +// Solidity: function createValidator(bytes validatorUncmpPubkey, string moniker, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, bool supportsUnlocked, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) CreateValidator(validatorUncmpPubkey []byte, moniker string, commissionRate uint32, maxCommissionRate uint32, maxCommissionChangeRate uint32, supportsUnlocked bool, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.CreateValidator(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, moniker, commissionRate, maxCommissionRate, maxCommissionChangeRate, supportsUnlocked, data) +} + +// CreateValidator is a paid mutator transaction binding the contract method 0x8740597a. +// +// Solidity: function createValidator(bytes validatorUncmpPubkey, string moniker, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, bool supportsUnlocked, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) CreateValidator(validatorUncmpPubkey []byte, moniker string, commissionRate uint32, maxCommissionRate uint32, maxCommissionChangeRate uint32, supportsUnlocked bool, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.CreateValidator(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, moniker, commissionRate, maxCommissionRate, maxCommissionChangeRate, supportsUnlocked, data) +} + +// Initialize is a paid mutator transaction binding the contract method 0xfce5dc8c. +// +// Solidity: function initialize((address,uint256,uint256,uint256,uint256) args) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) Initialize(opts *bind.TransactOpts, args IIPTokenStakingInitializerArgs) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "initialize", args) +} + +// Initialize is a paid mutator transaction binding the contract method 0xfce5dc8c. +// +// Solidity: function initialize((address,uint256,uint256,uint256,uint256) args) returns() +func (_IPTokenStaking *IPTokenStakingSession) Initialize(args IIPTokenStakingInitializerArgs) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Initialize(&_IPTokenStaking.TransactOpts, args) +} + +// Initialize is a paid mutator transaction binding the contract method 0xfce5dc8c. +// +// Solidity: function initialize((address,uint256,uint256,uint256,uint256) args) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) Initialize(args IIPTokenStakingInitializerArgs) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Initialize(&_IPTokenStaking.TransactOpts, args) +} + +// Redelegate is a paid mutator transaction binding the contract method 0x9d9d293f. +// +// Solidity: function redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) Redelegate(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "redelegate", delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// Redelegate is a paid mutator transaction binding the contract method 0x9d9d293f. +// +// Solidity: function redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) Redelegate(delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Redelegate(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// Redelegate is a paid mutator transaction binding the contract method 0x9d9d293f. +// +// Solidity: function redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) Redelegate(delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Redelegate(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// RedelegateOnBehalf is a paid mutator transaction binding the contract method 0xec21dac2. +// +// Solidity: function redelegateOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) RedelegateOnBehalf(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "redelegateOnBehalf", delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// RedelegateOnBehalf is a paid mutator transaction binding the contract method 0xec21dac2. +// +// Solidity: function redelegateOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) RedelegateOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.RedelegateOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// RedelegateOnBehalf is a paid mutator transaction binding the contract method 0xec21dac2. +// +// Solidity: function redelegateOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, uint256 amount) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) RedelegateOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpSrcPubkey []byte, validatorUncmpDstPubkey []byte, delegationId *big.Int, amount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.RedelegateOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpSrcPubkey, validatorUncmpDstPubkey, delegationId, amount) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_IPTokenStaking *IPTokenStakingTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_IPTokenStaking *IPTokenStakingSession) RenounceOwnership() (*types.Transaction, error) { + return _IPTokenStaking.Contract.RenounceOwnership(&_IPTokenStaking.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _IPTokenStaking.Contract.RenounceOwnership(&_IPTokenStaking.TransactOpts) +} + +// SetFee is a paid mutator transaction binding the contract method 0x69fe0e2d. +// +// Solidity: function setFee(uint256 newFee) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetFee(opts *bind.TransactOpts, newFee *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setFee", newFee) +} + +// SetFee is a paid mutator transaction binding the contract method 0x69fe0e2d. +// +// Solidity: function setFee(uint256 newFee) returns() +func (_IPTokenStaking *IPTokenStakingSession) SetFee(newFee *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetFee(&_IPTokenStaking.TransactOpts, newFee) +} + +// SetFee is a paid mutator transaction binding the contract method 0x69fe0e2d. +// +// Solidity: function setFee(uint256 newFee) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetFee(newFee *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetFee(&_IPTokenStaking.TransactOpts, newFee) +} + +// SetMinCommissionRate is a paid mutator transaction binding the contract method 0xab8870f6. +// +// Solidity: function setMinCommissionRate(uint256 newValue) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetMinCommissionRate(opts *bind.TransactOpts, newValue *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setMinCommissionRate", newValue) +} + +// SetMinCommissionRate is a paid mutator transaction binding the contract method 0xab8870f6. +// +// Solidity: function setMinCommissionRate(uint256 newValue) returns() +func (_IPTokenStaking *IPTokenStakingSession) SetMinCommissionRate(newValue *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinCommissionRate(&_IPTokenStaking.TransactOpts, newValue) +} + +// SetMinCommissionRate is a paid mutator transaction binding the contract method 0xab8870f6. +// +// Solidity: function setMinCommissionRate(uint256 newValue) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetMinCommissionRate(newValue *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinCommissionRate(&_IPTokenStaking.TransactOpts, newValue) +} + +// SetMinStakeAmount is a paid mutator transaction binding the contract method 0xeb4af045. +// +// Solidity: function setMinStakeAmount(uint256 newMinStakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetMinStakeAmount(opts *bind.TransactOpts, newMinStakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setMinStakeAmount", newMinStakeAmount) +} + +// SetMinStakeAmount is a paid mutator transaction binding the contract method 0xeb4af045. +// +// Solidity: function setMinStakeAmount(uint256 newMinStakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingSession) SetMinStakeAmount(newMinStakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinStakeAmount(&_IPTokenStaking.TransactOpts, newMinStakeAmount) +} + +// SetMinStakeAmount is a paid mutator transaction binding the contract method 0xeb4af045. +// +// Solidity: function setMinStakeAmount(uint256 newMinStakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetMinStakeAmount(newMinStakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinStakeAmount(&_IPTokenStaking.TransactOpts, newMinStakeAmount) +} + +// SetMinUnstakeAmount is a paid mutator transaction binding the contract method 0x6ea3a228. +// +// Solidity: function setMinUnstakeAmount(uint256 newMinUnstakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetMinUnstakeAmount(opts *bind.TransactOpts, newMinUnstakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setMinUnstakeAmount", newMinUnstakeAmount) +} + +// SetMinUnstakeAmount is a paid mutator transaction binding the contract method 0x6ea3a228. +// +// Solidity: function setMinUnstakeAmount(uint256 newMinUnstakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingSession) SetMinUnstakeAmount(newMinUnstakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinUnstakeAmount(&_IPTokenStaking.TransactOpts, newMinUnstakeAmount) +} + +// SetMinUnstakeAmount is a paid mutator transaction binding the contract method 0x6ea3a228. +// +// Solidity: function setMinUnstakeAmount(uint256 newMinUnstakeAmount) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetMinUnstakeAmount(newMinUnstakeAmount *big.Int) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetMinUnstakeAmount(&_IPTokenStaking.TransactOpts, newMinUnstakeAmount) +} + +// SetOperator is a paid mutator transaction binding the contract method 0x561edf7e. +// +// Solidity: function setOperator(bytes uncmpPubkey, address operator) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetOperator(opts *bind.TransactOpts, uncmpPubkey []byte, operator common.Address) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setOperator", uncmpPubkey, operator) +} + +// SetOperator is a paid mutator transaction binding the contract method 0x561edf7e. +// +// Solidity: function setOperator(bytes uncmpPubkey, address operator) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) SetOperator(uncmpPubkey []byte, operator common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetOperator(&_IPTokenStaking.TransactOpts, uncmpPubkey, operator) +} + +// SetOperator is a paid mutator transaction binding the contract method 0x561edf7e. +// +// Solidity: function setOperator(bytes uncmpPubkey, address operator) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetOperator(uncmpPubkey []byte, operator common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetOperator(&_IPTokenStaking.TransactOpts, uncmpPubkey, operator) +} + +// SetRewardsAddress is a paid mutator transaction binding the contract method 0x9d04b121. +// +// Solidity: function setRewardsAddress(bytes delegatorUncmpPubkey, address newRewardsAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetRewardsAddress(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, newRewardsAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setRewardsAddress", delegatorUncmpPubkey, newRewardsAddress) +} + +// SetRewardsAddress is a paid mutator transaction binding the contract method 0x9d04b121. +// +// Solidity: function setRewardsAddress(bytes delegatorUncmpPubkey, address newRewardsAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) SetRewardsAddress(delegatorUncmpPubkey []byte, newRewardsAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetRewardsAddress(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, newRewardsAddress) +} + +// SetRewardsAddress is a paid mutator transaction binding the contract method 0x9d04b121. +// +// Solidity: function setRewardsAddress(bytes delegatorUncmpPubkey, address newRewardsAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetRewardsAddress(delegatorUncmpPubkey []byte, newRewardsAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetRewardsAddress(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, newRewardsAddress) +} + +// SetWithdrawalAddress is a paid mutator transaction binding the contract method 0x787f82c8. +// +// Solidity: function setWithdrawalAddress(bytes delegatorUncmpPubkey, address newWithdrawalAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) SetWithdrawalAddress(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, newWithdrawalAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "setWithdrawalAddress", delegatorUncmpPubkey, newWithdrawalAddress) +} + +// SetWithdrawalAddress is a paid mutator transaction binding the contract method 0x787f82c8. +// +// Solidity: function setWithdrawalAddress(bytes delegatorUncmpPubkey, address newWithdrawalAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) SetWithdrawalAddress(delegatorUncmpPubkey []byte, newWithdrawalAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetWithdrawalAddress(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, newWithdrawalAddress) +} + +// SetWithdrawalAddress is a paid mutator transaction binding the contract method 0x787f82c8. +// +// Solidity: function setWithdrawalAddress(bytes delegatorUncmpPubkey, address newWithdrawalAddress) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) SetWithdrawalAddress(delegatorUncmpPubkey []byte, newWithdrawalAddress common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.SetWithdrawalAddress(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, newWithdrawalAddress) +} + +// Stake is a paid mutator transaction binding the contract method 0x3dd9fb9a. +// +// Solidity: function stake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingTransactor) Stake(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "stake", delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// Stake is a paid mutator transaction binding the contract method 0x3dd9fb9a. +// +// Solidity: function stake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingSession) Stake(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Stake(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// Stake is a paid mutator transaction binding the contract method 0x3dd9fb9a. +// +// Solidity: function stake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingTransactorSession) Stake(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Stake(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// StakeOnBehalf is a paid mutator transaction binding the contract method 0xa0284f16. +// +// Solidity: function stakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingTransactor) StakeOnBehalf(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "stakeOnBehalf", delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// StakeOnBehalf is a paid mutator transaction binding the contract method 0xa0284f16. +// +// Solidity: function stakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingSession) StakeOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.StakeOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// StakeOnBehalf is a paid mutator transaction binding the contract method 0xa0284f16. +// +// Solidity: function stakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint8 stakingPeriod, bytes data) payable returns(uint256 delegationId) +func (_IPTokenStaking *IPTokenStakingTransactorSession) StakeOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, stakingPeriod uint8, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.StakeOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, stakingPeriod, data) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IPTokenStaking *IPTokenStakingSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.TransferOwnership(&_IPTokenStaking.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _IPTokenStaking.Contract.TransferOwnership(&_IPTokenStaking.TransactOpts, newOwner) +} + +// Unjail is a paid mutator transaction binding the contract method 0x8ed65fbc. +// +// Solidity: function unjail(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) Unjail(opts *bind.TransactOpts, validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "unjail", validatorUncmpPubkey, data) +} + +// Unjail is a paid mutator transaction binding the contract method 0x8ed65fbc. +// +// Solidity: function unjail(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) Unjail(validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Unjail(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, data) +} + +// Unjail is a paid mutator transaction binding the contract method 0x8ed65fbc. +// +// Solidity: function unjail(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) Unjail(validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Unjail(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, data) +} + +// UnjailOnBehalf is a paid mutator transaction binding the contract method 0x86eb5e48. +// +// Solidity: function unjailOnBehalf(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) UnjailOnBehalf(opts *bind.TransactOpts, validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "unjailOnBehalf", validatorUncmpPubkey, data) +} + +// UnjailOnBehalf is a paid mutator transaction binding the contract method 0x86eb5e48. +// +// Solidity: function unjailOnBehalf(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) UnjailOnBehalf(validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnjailOnBehalf(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, data) +} + +// UnjailOnBehalf is a paid mutator transaction binding the contract method 0x86eb5e48. +// +// Solidity: function unjailOnBehalf(bytes validatorUncmpPubkey, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) UnjailOnBehalf(validatorUncmpPubkey []byte, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnjailOnBehalf(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, data) +} + +// UnsetOperator is a paid mutator transaction binding the contract method 0x98d730a2. +// +// Solidity: function unsetOperator(bytes uncmpPubkey) returns() +func (_IPTokenStaking *IPTokenStakingTransactor) UnsetOperator(opts *bind.TransactOpts, uncmpPubkey []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "unsetOperator", uncmpPubkey) +} + +// UnsetOperator is a paid mutator transaction binding the contract method 0x98d730a2. +// +// Solidity: function unsetOperator(bytes uncmpPubkey) returns() +func (_IPTokenStaking *IPTokenStakingSession) UnsetOperator(uncmpPubkey []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnsetOperator(&_IPTokenStaking.TransactOpts, uncmpPubkey) +} + +// UnsetOperator is a paid mutator transaction binding the contract method 0x98d730a2. +// +// Solidity: function unsetOperator(bytes uncmpPubkey) returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) UnsetOperator(uncmpPubkey []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnsetOperator(&_IPTokenStaking.TransactOpts, uncmpPubkey) +} + +// Unstake is a paid mutator transaction binding the contract method 0xb2bc29ef. +// +// Solidity: function unstake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) Unstake(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "unstake", delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// Unstake is a paid mutator transaction binding the contract method 0xb2bc29ef. +// +// Solidity: function unstake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) Unstake(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Unstake(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// Unstake is a paid mutator transaction binding the contract method 0xb2bc29ef. +// +// Solidity: function unstake(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) Unstake(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.Unstake(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// UnstakeOnBehalf is a paid mutator transaction binding the contract method 0x014e8178. +// +// Solidity: function unstakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) UnstakeOnBehalf(opts *bind.TransactOpts, delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "unstakeOnBehalf", delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// UnstakeOnBehalf is a paid mutator transaction binding the contract method 0x014e8178. +// +// Solidity: function unstakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) UnstakeOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnstakeOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// UnstakeOnBehalf is a paid mutator transaction binding the contract method 0x014e8178. +// +// Solidity: function unstakeOnBehalf(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 delegationId, uint256 amount, bytes data) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) UnstakeOnBehalf(delegatorUncmpPubkey []byte, validatorUncmpPubkey []byte, delegationId *big.Int, amount *big.Int, data []byte) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UnstakeOnBehalf(&_IPTokenStaking.TransactOpts, delegatorUncmpPubkey, validatorUncmpPubkey, delegationId, amount, data) +} + +// UpdateValidatorCommission is a paid mutator transaction binding the contract method 0xc582db44. +// +// Solidity: function updateValidatorCommission(bytes validatorUncmpPubkey, uint32 commissionRate) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactor) UpdateValidatorCommission(opts *bind.TransactOpts, validatorUncmpPubkey []byte, commissionRate uint32) (*types.Transaction, error) { + return _IPTokenStaking.contract.Transact(opts, "updateValidatorCommission", validatorUncmpPubkey, commissionRate) +} + +// UpdateValidatorCommission is a paid mutator transaction binding the contract method 0xc582db44. +// +// Solidity: function updateValidatorCommission(bytes validatorUncmpPubkey, uint32 commissionRate) payable returns() +func (_IPTokenStaking *IPTokenStakingSession) UpdateValidatorCommission(validatorUncmpPubkey []byte, commissionRate uint32) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UpdateValidatorCommission(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, commissionRate) +} + +// UpdateValidatorCommission is a paid mutator transaction binding the contract method 0xc582db44. +// +// Solidity: function updateValidatorCommission(bytes validatorUncmpPubkey, uint32 commissionRate) payable returns() +func (_IPTokenStaking *IPTokenStakingTransactorSession) UpdateValidatorCommission(validatorUncmpPubkey []byte, commissionRate uint32) (*types.Transaction, error) { + return _IPTokenStaking.Contract.UpdateValidatorCommission(&_IPTokenStaking.TransactOpts, validatorUncmpPubkey, commissionRate) +} + +// IPTokenStakingCreateValidatorIterator is returned from FilterCreateValidator and is used to iterate over the raw logs and unpacked data for CreateValidator events raised by the IPTokenStaking contract. +type IPTokenStakingCreateValidatorIterator struct { + Event *IPTokenStakingCreateValidator // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingCreateValidatorIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingCreateValidator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingCreateValidator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingCreateValidatorIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingCreateValidatorIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingCreateValidator represents a CreateValidator event raised by the IPTokenStaking contract. +type IPTokenStakingCreateValidator struct { + ValidatorUncmpPubkey []byte + Moniker string + StakeAmount *big.Int + CommissionRate uint32 + MaxCommissionRate uint32 + MaxCommissionChangeRate uint32 + SupportsUnlocked uint8 + OperatorAddress common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCreateValidator is a free log retrieval operation binding the contract event 0x65bfc2fa1cd4c6f50f60983ad1cf1cb4bff5ee6570428254dfce41b085ef6d14. +// +// Solidity: event CreateValidator(bytes validatorUncmpPubkey, string moniker, uint256 stakeAmount, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, uint8 supportsUnlocked, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterCreateValidator(opts *bind.FilterOpts) (*IPTokenStakingCreateValidatorIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "CreateValidator") + if err != nil { + return nil, err + } + return &IPTokenStakingCreateValidatorIterator{contract: _IPTokenStaking.contract, event: "CreateValidator", logs: logs, sub: sub}, nil +} + +// WatchCreateValidator is a free log subscription operation binding the contract event 0x65bfc2fa1cd4c6f50f60983ad1cf1cb4bff5ee6570428254dfce41b085ef6d14. +// +// Solidity: event CreateValidator(bytes validatorUncmpPubkey, string moniker, uint256 stakeAmount, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, uint8 supportsUnlocked, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchCreateValidator(opts *bind.WatchOpts, sink chan<- *IPTokenStakingCreateValidator) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "CreateValidator") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingCreateValidator) + if err := _IPTokenStaking.contract.UnpackLog(event, "CreateValidator", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCreateValidator is a log parse operation binding the contract event 0x65bfc2fa1cd4c6f50f60983ad1cf1cb4bff5ee6570428254dfce41b085ef6d14. +// +// Solidity: event CreateValidator(bytes validatorUncmpPubkey, string moniker, uint256 stakeAmount, uint32 commissionRate, uint32 maxCommissionRate, uint32 maxCommissionChangeRate, uint8 supportsUnlocked, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseCreateValidator(log types.Log) (*IPTokenStakingCreateValidator, error) { + event := new(IPTokenStakingCreateValidator) + if err := _IPTokenStaking.contract.UnpackLog(event, "CreateValidator", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the IPTokenStaking contract. +type IPTokenStakingDepositIterator struct { + Event *IPTokenStakingDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingDeposit represents a Deposit event raised by the IPTokenStaking contract. +type IPTokenStakingDeposit struct { + DelegatorUncmpPubkey []byte + ValidatorUncmpPubkey []byte + StakeAmount *big.Int + StakingPeriod *big.Int + DelegationId *big.Int + OperatorAddress common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0x269a32ff589c9b701f49ab6aa532ee8f55901df71a7fca2d70dc9f45314f1be3. +// +// Solidity: event Deposit(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 stakingPeriod, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterDeposit(opts *bind.FilterOpts) (*IPTokenStakingDepositIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "Deposit") + if err != nil { + return nil, err + } + return &IPTokenStakingDepositIterator{contract: _IPTokenStaking.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0x269a32ff589c9b701f49ab6aa532ee8f55901df71a7fca2d70dc9f45314f1be3. +// +// Solidity: event Deposit(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 stakingPeriod, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *IPTokenStakingDeposit) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "Deposit") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingDeposit) + if err := _IPTokenStaking.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0x269a32ff589c9b701f49ab6aa532ee8f55901df71a7fca2d70dc9f45314f1be3. +// +// Solidity: event Deposit(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 stakingPeriod, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseDeposit(log types.Log) (*IPTokenStakingDeposit, error) { + event := new(IPTokenStakingDeposit) + if err := _IPTokenStaking.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingFeeSetIterator is returned from FilterFeeSet and is used to iterate over the raw logs and unpacked data for FeeSet events raised by the IPTokenStaking contract. +type IPTokenStakingFeeSetIterator struct { + Event *IPTokenStakingFeeSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingFeeSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingFeeSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingFeeSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingFeeSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingFeeSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingFeeSet represents a FeeSet event raised by the IPTokenStaking contract. +type IPTokenStakingFeeSet struct { + NewFee *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterFeeSet is a free log retrieval operation binding the contract event 0x20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f. +// +// Solidity: event FeeSet(uint256 newFee) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterFeeSet(opts *bind.FilterOpts) (*IPTokenStakingFeeSetIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "FeeSet") + if err != nil { + return nil, err + } + return &IPTokenStakingFeeSetIterator{contract: _IPTokenStaking.contract, event: "FeeSet", logs: logs, sub: sub}, nil +} + +// WatchFeeSet is a free log subscription operation binding the contract event 0x20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f. +// +// Solidity: event FeeSet(uint256 newFee) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchFeeSet(opts *bind.WatchOpts, sink chan<- *IPTokenStakingFeeSet) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "FeeSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingFeeSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "FeeSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseFeeSet is a log parse operation binding the contract event 0x20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f. +// +// Solidity: event FeeSet(uint256 newFee) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseFeeSet(log types.Log) (*IPTokenStakingFeeSet, error) { + event := new(IPTokenStakingFeeSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "FeeSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the IPTokenStaking contract. +type IPTokenStakingInitializedIterator struct { + Event *IPTokenStakingInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingInitialized represents a Initialized event raised by the IPTokenStaking contract. +type IPTokenStakingInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterInitialized(opts *bind.FilterOpts) (*IPTokenStakingInitializedIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &IPTokenStakingInitializedIterator{contract: _IPTokenStaking.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *IPTokenStakingInitialized) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingInitialized) + if err := _IPTokenStaking.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseInitialized(log types.Log) (*IPTokenStakingInitialized, error) { + event := new(IPTokenStakingInitialized) + if err := _IPTokenStaking.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingMinCommissionRateChangedIterator is returned from FilterMinCommissionRateChanged and is used to iterate over the raw logs and unpacked data for MinCommissionRateChanged events raised by the IPTokenStaking contract. +type IPTokenStakingMinCommissionRateChangedIterator struct { + Event *IPTokenStakingMinCommissionRateChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingMinCommissionRateChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinCommissionRateChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinCommissionRateChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingMinCommissionRateChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingMinCommissionRateChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingMinCommissionRateChanged represents a MinCommissionRateChanged event raised by the IPTokenStaking contract. +type IPTokenStakingMinCommissionRateChanged struct { + MinCommissionRate *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMinCommissionRateChanged is a free log retrieval operation binding the contract event 0x4167b1de65292a9ff628c9136823791a1de701e1fbdda4863ce22a1cfaf4d0f7. +// +// Solidity: event MinCommissionRateChanged(uint256 minCommissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterMinCommissionRateChanged(opts *bind.FilterOpts) (*IPTokenStakingMinCommissionRateChangedIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "MinCommissionRateChanged") + if err != nil { + return nil, err + } + return &IPTokenStakingMinCommissionRateChangedIterator{contract: _IPTokenStaking.contract, event: "MinCommissionRateChanged", logs: logs, sub: sub}, nil +} + +// WatchMinCommissionRateChanged is a free log subscription operation binding the contract event 0x4167b1de65292a9ff628c9136823791a1de701e1fbdda4863ce22a1cfaf4d0f7. +// +// Solidity: event MinCommissionRateChanged(uint256 minCommissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchMinCommissionRateChanged(opts *bind.WatchOpts, sink chan<- *IPTokenStakingMinCommissionRateChanged) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "MinCommissionRateChanged") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingMinCommissionRateChanged) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinCommissionRateChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMinCommissionRateChanged is a log parse operation binding the contract event 0x4167b1de65292a9ff628c9136823791a1de701e1fbdda4863ce22a1cfaf4d0f7. +// +// Solidity: event MinCommissionRateChanged(uint256 minCommissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseMinCommissionRateChanged(log types.Log) (*IPTokenStakingMinCommissionRateChanged, error) { + event := new(IPTokenStakingMinCommissionRateChanged) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinCommissionRateChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingMinStakeAmountSetIterator is returned from FilterMinStakeAmountSet and is used to iterate over the raw logs and unpacked data for MinStakeAmountSet events raised by the IPTokenStaking contract. +type IPTokenStakingMinStakeAmountSetIterator struct { + Event *IPTokenStakingMinStakeAmountSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingMinStakeAmountSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinStakeAmountSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinStakeAmountSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingMinStakeAmountSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingMinStakeAmountSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingMinStakeAmountSet represents a MinStakeAmountSet event raised by the IPTokenStaking contract. +type IPTokenStakingMinStakeAmountSet struct { + MinStakeAmount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMinStakeAmountSet is a free log retrieval operation binding the contract event 0xea095c2fea861b87f0fd54d0d4453358692a527e120df22b62c71696247dfb9f. +// +// Solidity: event MinStakeAmountSet(uint256 minStakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterMinStakeAmountSet(opts *bind.FilterOpts) (*IPTokenStakingMinStakeAmountSetIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "MinStakeAmountSet") + if err != nil { + return nil, err + } + return &IPTokenStakingMinStakeAmountSetIterator{contract: _IPTokenStaking.contract, event: "MinStakeAmountSet", logs: logs, sub: sub}, nil +} + +// WatchMinStakeAmountSet is a free log subscription operation binding the contract event 0xea095c2fea861b87f0fd54d0d4453358692a527e120df22b62c71696247dfb9f. +// +// Solidity: event MinStakeAmountSet(uint256 minStakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchMinStakeAmountSet(opts *bind.WatchOpts, sink chan<- *IPTokenStakingMinStakeAmountSet) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "MinStakeAmountSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingMinStakeAmountSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinStakeAmountSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMinStakeAmountSet is a log parse operation binding the contract event 0xea095c2fea861b87f0fd54d0d4453358692a527e120df22b62c71696247dfb9f. +// +// Solidity: event MinStakeAmountSet(uint256 minStakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseMinStakeAmountSet(log types.Log) (*IPTokenStakingMinStakeAmountSet, error) { + event := new(IPTokenStakingMinStakeAmountSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinStakeAmountSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingMinUnstakeAmountSetIterator is returned from FilterMinUnstakeAmountSet and is used to iterate over the raw logs and unpacked data for MinUnstakeAmountSet events raised by the IPTokenStaking contract. +type IPTokenStakingMinUnstakeAmountSetIterator struct { + Event *IPTokenStakingMinUnstakeAmountSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingMinUnstakeAmountSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinUnstakeAmountSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingMinUnstakeAmountSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingMinUnstakeAmountSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingMinUnstakeAmountSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingMinUnstakeAmountSet represents a MinUnstakeAmountSet event raised by the IPTokenStaking contract. +type IPTokenStakingMinUnstakeAmountSet struct { + MinUnstakeAmount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMinUnstakeAmountSet is a free log retrieval operation binding the contract event 0xf93d77980ae5a1ddd008d6a7f02cbee5af2a4fcea850c4b55828de4f644e589f. +// +// Solidity: event MinUnstakeAmountSet(uint256 minUnstakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterMinUnstakeAmountSet(opts *bind.FilterOpts) (*IPTokenStakingMinUnstakeAmountSetIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "MinUnstakeAmountSet") + if err != nil { + return nil, err + } + return &IPTokenStakingMinUnstakeAmountSetIterator{contract: _IPTokenStaking.contract, event: "MinUnstakeAmountSet", logs: logs, sub: sub}, nil +} + +// WatchMinUnstakeAmountSet is a free log subscription operation binding the contract event 0xf93d77980ae5a1ddd008d6a7f02cbee5af2a4fcea850c4b55828de4f644e589f. +// +// Solidity: event MinUnstakeAmountSet(uint256 minUnstakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchMinUnstakeAmountSet(opts *bind.WatchOpts, sink chan<- *IPTokenStakingMinUnstakeAmountSet) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "MinUnstakeAmountSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingMinUnstakeAmountSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinUnstakeAmountSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMinUnstakeAmountSet is a log parse operation binding the contract event 0xf93d77980ae5a1ddd008d6a7f02cbee5af2a4fcea850c4b55828de4f644e589f. +// +// Solidity: event MinUnstakeAmountSet(uint256 minUnstakeAmount) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseMinUnstakeAmountSet(log types.Log) (*IPTokenStakingMinUnstakeAmountSet, error) { + event := new(IPTokenStakingMinUnstakeAmountSet) + if err := _IPTokenStaking.contract.UnpackLog(event, "MinUnstakeAmountSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the IPTokenStaking contract. +type IPTokenStakingOwnershipTransferStartedIterator struct { + Event *IPTokenStakingOwnershipTransferStarted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingOwnershipTransferStartedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingOwnershipTransferStartedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingOwnershipTransferStartedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the IPTokenStaking contract. +type IPTokenStakingOwnershipTransferStarted struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*IPTokenStakingOwnershipTransferStartedIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &IPTokenStakingOwnershipTransferStartedIterator{contract: _IPTokenStaking.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *IPTokenStakingOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingOwnershipTransferStarted) + if err := _IPTokenStaking.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseOwnershipTransferStarted(log types.Log) (*IPTokenStakingOwnershipTransferStarted, error) { + event := new(IPTokenStakingOwnershipTransferStarted) + if err := _IPTokenStaking.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the IPTokenStaking contract. +type IPTokenStakingOwnershipTransferredIterator struct { + Event *IPTokenStakingOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingOwnershipTransferred represents a OwnershipTransferred event raised by the IPTokenStaking contract. +type IPTokenStakingOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*IPTokenStakingOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &IPTokenStakingOwnershipTransferredIterator{contract: _IPTokenStaking.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 (_IPTokenStaking *IPTokenStakingFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *IPTokenStakingOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingOwnershipTransferred) + if err := _IPTokenStaking.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseOwnershipTransferred(log types.Log) (*IPTokenStakingOwnershipTransferred, error) { + event := new(IPTokenStakingOwnershipTransferred) + if err := _IPTokenStaking.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingRedelegateIterator is returned from FilterRedelegate and is used to iterate over the raw logs and unpacked data for Redelegate events raised by the IPTokenStaking contract. +type IPTokenStakingRedelegateIterator struct { + Event *IPTokenStakingRedelegate // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingRedelegateIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingRedelegate) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingRedelegate) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingRedelegateIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingRedelegateIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingRedelegate represents a Redelegate event raised by the IPTokenStaking contract. +type IPTokenStakingRedelegate struct { + DelegatorUncmpPubkey []byte + ValidatorUncmpSrcPubkey []byte + ValidatorUncmpDstPubkey []byte + DelegationId *big.Int + OperatorAddress common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRedelegate is a free log retrieval operation binding the contract event 0x210091050fbe3add6ade45436b6c7aed210ef28fc37e1a1775970fc391272fe8. +// +// Solidity: event Redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, address operatorAddress, uint256 amount) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterRedelegate(opts *bind.FilterOpts) (*IPTokenStakingRedelegateIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "Redelegate") + if err != nil { + return nil, err + } + return &IPTokenStakingRedelegateIterator{contract: _IPTokenStaking.contract, event: "Redelegate", logs: logs, sub: sub}, nil +} + +// WatchRedelegate is a free log subscription operation binding the contract event 0x210091050fbe3add6ade45436b6c7aed210ef28fc37e1a1775970fc391272fe8. +// +// Solidity: event Redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, address operatorAddress, uint256 amount) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchRedelegate(opts *bind.WatchOpts, sink chan<- *IPTokenStakingRedelegate) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "Redelegate") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingRedelegate) + if err := _IPTokenStaking.contract.UnpackLog(event, "Redelegate", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRedelegate is a log parse operation binding the contract event 0x210091050fbe3add6ade45436b6c7aed210ef28fc37e1a1775970fc391272fe8. +// +// Solidity: event Redelegate(bytes delegatorUncmpPubkey, bytes validatorUncmpSrcPubkey, bytes validatorUncmpDstPubkey, uint256 delegationId, address operatorAddress, uint256 amount) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseRedelegate(log types.Log) (*IPTokenStakingRedelegate, error) { + event := new(IPTokenStakingRedelegate) + if err := _IPTokenStaking.contract.UnpackLog(event, "Redelegate", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingSetOperatorIterator is returned from FilterSetOperator and is used to iterate over the raw logs and unpacked data for SetOperator events raised by the IPTokenStaking contract. +type IPTokenStakingSetOperatorIterator struct { + Event *IPTokenStakingSetOperator // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingSetOperatorIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetOperator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetOperator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingSetOperatorIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingSetOperatorIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingSetOperator represents a SetOperator event raised by the IPTokenStaking contract. +type IPTokenStakingSetOperator struct { + UncmpPubkey []byte + Operator common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetOperator is a free log retrieval operation binding the contract event 0x658c1d4ffa3caca5fbfd38bb564825b972c239a7d090eb333a42e2ba7a0a4ed2. +// +// Solidity: event SetOperator(bytes uncmpPubkey, address operator) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterSetOperator(opts *bind.FilterOpts) (*IPTokenStakingSetOperatorIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "SetOperator") + if err != nil { + return nil, err + } + return &IPTokenStakingSetOperatorIterator{contract: _IPTokenStaking.contract, event: "SetOperator", logs: logs, sub: sub}, nil +} + +// WatchSetOperator is a free log subscription operation binding the contract event 0x658c1d4ffa3caca5fbfd38bb564825b972c239a7d090eb333a42e2ba7a0a4ed2. +// +// Solidity: event SetOperator(bytes uncmpPubkey, address operator) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchSetOperator(opts *bind.WatchOpts, sink chan<- *IPTokenStakingSetOperator) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "SetOperator") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingSetOperator) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetOperator", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetOperator is a log parse operation binding the contract event 0x658c1d4ffa3caca5fbfd38bb564825b972c239a7d090eb333a42e2ba7a0a4ed2. +// +// Solidity: event SetOperator(bytes uncmpPubkey, address operator) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseSetOperator(log types.Log) (*IPTokenStakingSetOperator, error) { + event := new(IPTokenStakingSetOperator) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetOperator", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingSetRewardAddressIterator is returned from FilterSetRewardAddress and is used to iterate over the raw logs and unpacked data for SetRewardAddress events raised by the IPTokenStaking contract. +type IPTokenStakingSetRewardAddressIterator struct { + Event *IPTokenStakingSetRewardAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingSetRewardAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetRewardAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetRewardAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingSetRewardAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingSetRewardAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingSetRewardAddress represents a SetRewardAddress event raised by the IPTokenStaking contract. +type IPTokenStakingSetRewardAddress struct { + DelegatorUncmpPubkey []byte + ExecutionAddress [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetRewardAddress is a free log retrieval operation binding the contract event 0x28c0529db8cf660d5b4c1e4b9313683fa7241c3fc49452e7d0ebae215a5f84b2. +// +// Solidity: event SetRewardAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterSetRewardAddress(opts *bind.FilterOpts) (*IPTokenStakingSetRewardAddressIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "SetRewardAddress") + if err != nil { + return nil, err + } + return &IPTokenStakingSetRewardAddressIterator{contract: _IPTokenStaking.contract, event: "SetRewardAddress", logs: logs, sub: sub}, nil +} + +// WatchSetRewardAddress is a free log subscription operation binding the contract event 0x28c0529db8cf660d5b4c1e4b9313683fa7241c3fc49452e7d0ebae215a5f84b2. +// +// Solidity: event SetRewardAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchSetRewardAddress(opts *bind.WatchOpts, sink chan<- *IPTokenStakingSetRewardAddress) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "SetRewardAddress") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingSetRewardAddress) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetRewardAddress", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetRewardAddress is a log parse operation binding the contract event 0x28c0529db8cf660d5b4c1e4b9313683fa7241c3fc49452e7d0ebae215a5f84b2. +// +// Solidity: event SetRewardAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseSetRewardAddress(log types.Log) (*IPTokenStakingSetRewardAddress, error) { + event := new(IPTokenStakingSetRewardAddress) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetRewardAddress", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingSetWithdrawalAddressIterator is returned from FilterSetWithdrawalAddress and is used to iterate over the raw logs and unpacked data for SetWithdrawalAddress events raised by the IPTokenStaking contract. +type IPTokenStakingSetWithdrawalAddressIterator struct { + Event *IPTokenStakingSetWithdrawalAddress // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingSetWithdrawalAddressIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetWithdrawalAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingSetWithdrawalAddress) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingSetWithdrawalAddressIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingSetWithdrawalAddressIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingSetWithdrawalAddress represents a SetWithdrawalAddress event raised by the IPTokenStaking contract. +type IPTokenStakingSetWithdrawalAddress struct { + DelegatorUncmpPubkey []byte + ExecutionAddress [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetWithdrawalAddress is a free log retrieval operation binding the contract event 0x9f7f04f688298f474ed4c786abb29e0ca0173d70516d55d9eac515609b45fbca. +// +// Solidity: event SetWithdrawalAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterSetWithdrawalAddress(opts *bind.FilterOpts) (*IPTokenStakingSetWithdrawalAddressIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "SetWithdrawalAddress") + if err != nil { + return nil, err + } + return &IPTokenStakingSetWithdrawalAddressIterator{contract: _IPTokenStaking.contract, event: "SetWithdrawalAddress", logs: logs, sub: sub}, nil +} + +// WatchSetWithdrawalAddress is a free log subscription operation binding the contract event 0x9f7f04f688298f474ed4c786abb29e0ca0173d70516d55d9eac515609b45fbca. +// +// Solidity: event SetWithdrawalAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchSetWithdrawalAddress(opts *bind.WatchOpts, sink chan<- *IPTokenStakingSetWithdrawalAddress) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "SetWithdrawalAddress") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingSetWithdrawalAddress) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetWithdrawalAddress", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetWithdrawalAddress is a log parse operation binding the contract event 0x9f7f04f688298f474ed4c786abb29e0ca0173d70516d55d9eac515609b45fbca. +// +// Solidity: event SetWithdrawalAddress(bytes delegatorUncmpPubkey, bytes32 executionAddress) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseSetWithdrawalAddress(log types.Log) (*IPTokenStakingSetWithdrawalAddress, error) { + event := new(IPTokenStakingSetWithdrawalAddress) + if err := _IPTokenStaking.contract.UnpackLog(event, "SetWithdrawalAddress", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingUnjailIterator is returned from FilterUnjail and is used to iterate over the raw logs and unpacked data for Unjail events raised by the IPTokenStaking contract. +type IPTokenStakingUnjailIterator struct { + Event *IPTokenStakingUnjail // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingUnjailIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUnjail) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUnjail) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingUnjailIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingUnjailIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingUnjail represents a Unjail event raised by the IPTokenStaking contract. +type IPTokenStakingUnjail struct { + Unjailer common.Address + ValidatorUncmpPubkey []byte + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnjail is a free log retrieval operation binding the contract event 0x026c2e156478ec2a25ccebac97a338d301f69b6d5aeec39c578b28a95e118201. +// +// Solidity: event Unjail(address unjailer, bytes validatorUncmpPubkey, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterUnjail(opts *bind.FilterOpts) (*IPTokenStakingUnjailIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "Unjail") + if err != nil { + return nil, err + } + return &IPTokenStakingUnjailIterator{contract: _IPTokenStaking.contract, event: "Unjail", logs: logs, sub: sub}, nil +} + +// WatchUnjail is a free log subscription operation binding the contract event 0x026c2e156478ec2a25ccebac97a338d301f69b6d5aeec39c578b28a95e118201. +// +// Solidity: event Unjail(address unjailer, bytes validatorUncmpPubkey, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchUnjail(opts *bind.WatchOpts, sink chan<- *IPTokenStakingUnjail) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "Unjail") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingUnjail) + if err := _IPTokenStaking.contract.UnpackLog(event, "Unjail", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnjail is a log parse operation binding the contract event 0x026c2e156478ec2a25ccebac97a338d301f69b6d5aeec39c578b28a95e118201. +// +// Solidity: event Unjail(address unjailer, bytes validatorUncmpPubkey, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseUnjail(log types.Log) (*IPTokenStakingUnjail, error) { + event := new(IPTokenStakingUnjail) + if err := _IPTokenStaking.contract.UnpackLog(event, "Unjail", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingUnsetOperatorIterator is returned from FilterUnsetOperator and is used to iterate over the raw logs and unpacked data for UnsetOperator events raised by the IPTokenStaking contract. +type IPTokenStakingUnsetOperatorIterator struct { + Event *IPTokenStakingUnsetOperator // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingUnsetOperatorIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUnsetOperator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUnsetOperator) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingUnsetOperatorIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingUnsetOperatorIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingUnsetOperator represents a UnsetOperator event raised by the IPTokenStaking contract. +type IPTokenStakingUnsetOperator struct { + UncmpPubkey []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnsetOperator is a free log retrieval operation binding the contract event 0xe3a30390f081e6e95d8bcc1b0459ae73d4ca4fc9bf6351e006d072c02f5209ff. +// +// Solidity: event UnsetOperator(bytes uncmpPubkey) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterUnsetOperator(opts *bind.FilterOpts) (*IPTokenStakingUnsetOperatorIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "UnsetOperator") + if err != nil { + return nil, err + } + return &IPTokenStakingUnsetOperatorIterator{contract: _IPTokenStaking.contract, event: "UnsetOperator", logs: logs, sub: sub}, nil +} + +// WatchUnsetOperator is a free log subscription operation binding the contract event 0xe3a30390f081e6e95d8bcc1b0459ae73d4ca4fc9bf6351e006d072c02f5209ff. +// +// Solidity: event UnsetOperator(bytes uncmpPubkey) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchUnsetOperator(opts *bind.WatchOpts, sink chan<- *IPTokenStakingUnsetOperator) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "UnsetOperator") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingUnsetOperator) + if err := _IPTokenStaking.contract.UnpackLog(event, "UnsetOperator", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnsetOperator is a log parse operation binding the contract event 0xe3a30390f081e6e95d8bcc1b0459ae73d4ca4fc9bf6351e006d072c02f5209ff. +// +// Solidity: event UnsetOperator(bytes uncmpPubkey) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseUnsetOperator(log types.Log) (*IPTokenStakingUnsetOperator, error) { + event := new(IPTokenStakingUnsetOperator) + if err := _IPTokenStaking.contract.UnpackLog(event, "UnsetOperator", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingUpdateValidatorCommssionIterator is returned from FilterUpdateValidatorCommssion and is used to iterate over the raw logs and unpacked data for UpdateValidatorCommssion events raised by the IPTokenStaking contract. +type IPTokenStakingUpdateValidatorCommssionIterator struct { + Event *IPTokenStakingUpdateValidatorCommssion // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingUpdateValidatorCommssionIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUpdateValidatorCommssion) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingUpdateValidatorCommssion) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingUpdateValidatorCommssionIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingUpdateValidatorCommssionIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingUpdateValidatorCommssion represents a UpdateValidatorCommssion event raised by the IPTokenStaking contract. +type IPTokenStakingUpdateValidatorCommssion struct { + ValidatorUncmpPubkey []byte + CommissionRate uint32 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUpdateValidatorCommssion is a free log retrieval operation binding the contract event 0x202c9aad6965f28c0ce1cd00460c1adfa2c90277f4f0a7abb813e2f04cecd70b. +// +// Solidity: event UpdateValidatorCommssion(bytes validatorUncmpPubkey, uint32 commissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterUpdateValidatorCommssion(opts *bind.FilterOpts) (*IPTokenStakingUpdateValidatorCommssionIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "UpdateValidatorCommssion") + if err != nil { + return nil, err + } + return &IPTokenStakingUpdateValidatorCommssionIterator{contract: _IPTokenStaking.contract, event: "UpdateValidatorCommssion", logs: logs, sub: sub}, nil +} + +// WatchUpdateValidatorCommssion is a free log subscription operation binding the contract event 0x202c9aad6965f28c0ce1cd00460c1adfa2c90277f4f0a7abb813e2f04cecd70b. +// +// Solidity: event UpdateValidatorCommssion(bytes validatorUncmpPubkey, uint32 commissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchUpdateValidatorCommssion(opts *bind.WatchOpts, sink chan<- *IPTokenStakingUpdateValidatorCommssion) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "UpdateValidatorCommssion") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingUpdateValidatorCommssion) + if err := _IPTokenStaking.contract.UnpackLog(event, "UpdateValidatorCommssion", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUpdateValidatorCommssion is a log parse operation binding the contract event 0x202c9aad6965f28c0ce1cd00460c1adfa2c90277f4f0a7abb813e2f04cecd70b. +// +// Solidity: event UpdateValidatorCommssion(bytes validatorUncmpPubkey, uint32 commissionRate) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseUpdateValidatorCommssion(log types.Log) (*IPTokenStakingUpdateValidatorCommssion, error) { + event := new(IPTokenStakingUpdateValidatorCommssion) + if err := _IPTokenStaking.contract.UnpackLog(event, "UpdateValidatorCommssion", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IPTokenStakingWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the IPTokenStaking contract. +type IPTokenStakingWithdrawIterator struct { + Event *IPTokenStakingWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IPTokenStakingWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IPTokenStakingWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IPTokenStakingWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IPTokenStakingWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IPTokenStakingWithdraw represents a Withdraw event raised by the IPTokenStaking contract. +type IPTokenStakingWithdraw struct { + DelegatorUncmpPubkey []byte + ValidatorUncmpPubkey []byte + StakeAmount *big.Int + DelegationId *big.Int + OperatorAddress common.Address + Data []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0xac41e6ee15d2d0047feb1ea8aba74b92c0334cd3e78024a5ad679d7d08b8fbc5. +// +// Solidity: event Withdraw(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) FilterWithdraw(opts *bind.FilterOpts) (*IPTokenStakingWithdrawIterator, error) { + + logs, sub, err := _IPTokenStaking.contract.FilterLogs(opts, "Withdraw") + if err != nil { + return nil, err + } + return &IPTokenStakingWithdrawIterator{contract: _IPTokenStaking.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0xac41e6ee15d2d0047feb1ea8aba74b92c0334cd3e78024a5ad679d7d08b8fbc5. +// +// Solidity: event Withdraw(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *IPTokenStakingWithdraw) (event.Subscription, error) { + + logs, sub, err := _IPTokenStaking.contract.WatchLogs(opts, "Withdraw") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IPTokenStakingWithdraw) + if err := _IPTokenStaking.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0xac41e6ee15d2d0047feb1ea8aba74b92c0334cd3e78024a5ad679d7d08b8fbc5. +// +// Solidity: event Withdraw(bytes delegatorUncmpPubkey, bytes validatorUncmpPubkey, uint256 stakeAmount, uint256 delegationId, address operatorAddress, bytes data) +func (_IPTokenStaking *IPTokenStakingFilterer) ParseWithdraw(log types.Log) (*IPTokenStakingWithdraw, error) { + event := new(IPTokenStakingWithdraw) + if err := _IPTokenStaking.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/bindings/iptokenstaking_more.go b/contracts/bindings/iptokenstaking_more.go new file mode 100644 index 00000000..b6c87167 --- /dev/null +++ b/contracts/bindings/iptokenstaking_more.go @@ -0,0 +1,14 @@ +package bindings + +import ( + _ "embed" +) + +const ( + IPTokenStakingDeployedBytecode = "0x6040608081526004908136101561001557600080fd5b600091823560e01c8063014e8178146111db5780631487153e146111be578063396e1e47146111a257806339ec4df9146111835780633dd9fb9a14611140578063561edf7e146110ab5780635727dc5c1461108f57806369fe0e2d1461106a5780636ea3a22814611045578063715018a614610f7e578063787f82c814610ee957806379ba509714610e5f57806386eb5e4814610e155780638740597a14610a905780638da5cb5b14610a3c5780638ed65fbc146109f957806394fd0fe0146109be57806398d730a214610920578063997da8d4146109055780639d04b121146108595780639d9d293f14610815578063a0284f16146107b3578063ab8870f61461078e578063b2bc29ef1461073b578063bda16b151461071c578063c582db441461061d578063d2e1f5b8146105e7578063ddca3f43146105ca578063e30c397814610576578063eb4af04514610551578063ec21dac214610514578063eeeac01e146104d9578063f1887684146104ba578063f2fde38b146103e85763fce5dc8c146101a257600080fd5b346103e45760a06003193601126103e4577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82851c16159167ffffffffffffffff8116801590816103dc575b60011490816103d2575b1590816103c9575b506103a1578260017fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000831617855561036c575b50610242612649565b61024a612649565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580359073ffffffffffffffffffffffffffffffffffffffff821680830361036857610297612649565b61029f612649565b1561033957506102ae906122a3565b6102b9602435612412565b6102c46044356121d7565b6102cf606435612357565b6102da608435612121565b6102e2578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b602490868651917f1e4fbdf7000000000000000000000000000000000000000000000000000000008352820152fd5b8680fd5b7fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000166801000000000000000117835538610239565b5083517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610206565b303b1591506101fe565b8491506101f4565b8280fd5b8382346104b65760206003193601126104b6573573ffffffffffffffffffffffffffffffffffffffff8082168092036103e4576104236120b1565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b5050346104b657816003193601126104b6576020906001549051908152f35b5050346104b657816003193601126104b657602090517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8152f35b8361054e610521366113a3565b966105358782989398979497969596611ad8565b61053f8484611ad8565b6105498686611ad8565b6118a1565b80f35b8382346104b65760206003193601126104b65761054e906105706120b1565b35612412565b5050346104b657816003193601126104b65760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b50346103e457826003193601126103e45760209250549051908152f35b50823461061a57602060031936011261061a57503561060d633b9aca0082068092611a9c565b9082519182526020820152f35b80fd5b5090806003193601126103e457813567ffffffffffffffff81116107185761064890369084016111fc565b9190926024359063ffffffff82168092036107145761069d9061066b8587611ad8565b6106953373ffffffffffffffffffffffffffffffffffffffff61068e888a611d90565b1614611678565b543414611411565b8480341561070b575b81808092813491f115610701576106f57f202c9aad6965f28c0ce1cd00460c1adfa2c90277f4f0a7abb813e2f04cecd70b946106e58754841015611a11565b8351948486958652850191611703565b9060208301520390a180f35b81513d86823e3d90fd5b506108fc6106a6565b8580fd5b8380fd5b5050346104b657816003193601126104b65760209051633b9aca008152f35b8361054e6107483661122f565b9661075c8782989398979497969596611ad8565b61077f3373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b6107898484611ad8565b61149c565b8382346104b65760206003193601126104b65761054e906107ad6120b1565b35612357565b6020836107ea6107c23661129d565b956107d38682979397969496611ad8565b6107dd8484611ad8565b6107e5611dea565b611ecf565b9060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005551908152f35b8361054e610822366113a3565b966108368782989398979497969596611ad8565b6105353373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b50906108643661130c565b909291936108728486611ad8565b61089a73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b858034156108fc575b81808092813491f1156108f2576108e57f28c0529db8cf660d5b4c1e4b9313683fa7241c3fc49452e7d0ebae215a5f84b2958451958587968752860191611703565b911660208301520390a180f35b82513d87823e3d90fd5b506108fc6108a3565b5050346104b657816003193601126104b65751908152602090f35b5090346103e45760206003193601126103e45781359167ffffffffffffffff8311610718576109766109b8917fe3a30390f081e6e95d8bcc1b0459ae73d4ca4fc9bf6351e006d072c02f5209ff943691016111fc565b9190926109838385611ad8565b6109a63373ffffffffffffffffffffffffffffffffffffffff61068e8688611d90565b51928392602084526020840191611703565b0390a180f35b5050346104b657816003193601126104b657602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b8361054e610a063661135c565b92610a148382949394611ad8565b610a373373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b611742565b5050346104b657816003193601126104b65760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b50919060e06003193601126104b65767ffffffffffffffff90833582811161071857610abf90369086016111fc565b91909460243584811161071457610ad990369083016111fc565b92909660443563ffffffff90818116809103610e115760643590828216809203610e0d57608435928316809303610e0d5760a435988915158a03610e095760c435908111610e0957610b31610b7091369089016111fc565b9c9098610b3e8b88611ad8565b610b613373ffffffffffffffffffffffffffffffffffffffff61068e8e8b611d90565b610b69611dea565b3691611870565b95633b9aca00340699610b838b34611a9c565b91610b92600154841015611e44565b610b9f8d54851015611a11565b848411610d86576046895111610d0357508b80838015610cf9575b82809291818093f115610cef5715610ce557610be46001955b87519a610120808d528c0191611703565b6020978a8203898c01528051908183528d5b828110610cd25750509360ff938d9e9793837f65bfc2fa1cd4c6f50f60983ad1cf1cb4bff5ee6570428254dfce41b085ef6d149e9f601f8f9e9c997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092610c929f82819e9a010152011601968c015260608b015260808a015260a08901521660c08701523360e087015281868203016101008701520191611703565b0390a180610cc3575b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b610ccc90612591565b38610c9b565b8181018b01518482018c01528a01610bf6565b610be48b95610bd3565b86513d8d823e3d90fd5b6108fc9150610bba565b60849060208951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602760248201527f4950546f6b656e5374616b696e673a204d6f6e696b6572206c656e677468206f60448201527f766572206d6178000000000000000000000000000000000000000000000000006064820152fd5b60849060208951917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602860248201527f4950546f6b656e5374616b696e673a20436f6d6d697373696f6e20726174652060448201527f6f766572206d61780000000000000000000000000000000000000000000000006064820152fd5b8a80fd5b8980fd5b8880fd5b83610e38610e223661135c565b92610e2e929192611dea565b610a378282611ad8565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b5090346103e457826003193601126103e4573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00541603610eb9578261054e336122a3565b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b5090610ef43661130c565b90929193610f028486611ad8565b610f2a73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b85803415610f75575b81808092813491f1156108f2576108e57f9f7f04f688298f474ed4c786abb29e0ca0173d70516d55d9eac515609b45fbca958451958587968752860191611703565b506108fc610f33565b833461061a578060031936011261061a57610f976120b1565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8382346104b65760206003193601126104b65761054e906110646120b1565b356121d7565b8382346104b65760206003193601126104b65761054e906110896120b1565b35612121565b5050346104b657816003193601126104b6576020905160078152f35b50906110b63661130c565b909291936110c48486611ad8565b6110ec73ffffffffffffffffffffffffffffffffffffffff91610695338461068e898b611d90565b85803415611137575b81808092813491f1156108f2576108e57f658c1d4ffa3caca5fbfd38bb564825b972c239a7d090eb333a42e2ba7a0a4ed2958451958587968752860191611703565b506108fc6110f5565b6020836107ea61114f3661129d565b956111608682979397969496611ad8565b6107d33373ffffffffffffffffffffffffffffffffffffffff61068e8585611d90565b5050346104b657816003193601126104b6576020906002549051908152f35b5050346104b657816003193601126104b6576020905160468152f35b5050346104b657816003193601126104b657602091549051908152f35b8361054e6111e83661122f565b9661077f8782989398979497969596611ad8565b9181601f8401121561122a5782359167ffffffffffffffff831161122a576020838186019501011161122a57565b600080fd5b60a060031982011261122a5767ffffffffffffffff9060043582811161122a578161125c916004016111fc565b9390939260243581811161122a5783611277916004016111fc565b93909392604435926064359260843591821161122a57611299916004016111fc565b9091565b608060031982011261122a5767ffffffffffffffff9160043583811161122a57826112ca916004016111fc565b9390939260243582811161122a57816112e5916004016111fc565b93909392604435600481101561122a579260643591821161122a57611299916004016111fc565b604060031982011261122a576004359067ffffffffffffffff821161122a57611337916004016111fc565b909160243573ffffffffffffffffffffffffffffffffffffffff8116810361122a5790565b604060031982011261122a5767ffffffffffffffff9160043583811161122a5782611389916004016111fc565b9390939260243591821161122a57611299916004016111fc565b9060a060031983011261122a5767ffffffffffffffff60043581811161122a57836113d0916004016111fc565b9390939260243583811161122a57826113eb916004016111fc565b9390939260443591821161122a57611405916004016111fc565b90916064359060843590565b1561141857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4950546f6b656e5374616b696e673a20496e76616c69642066656520616d6f7560448201527f6e740000000000000000000000000000000000000000000000000000000000006064820152fd5b959094929691936114b06004543414611411565b6000341561166f575b600080808093813491f115611663576114d6600354821115611d05565b60025484106115df57633b9aca00840661155b57611538611556957fac41e6ee15d2d0047feb1ea8aba74b92c0334cd3e78024a5ad679d7d08b8fbc59961152a6040519a8b9a60c08c5260c08c0191611703565b9189830360208b0152611703565b936040870152606086015233608086015284830360a0860152611703565b0390a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4950546f6b656e5374616b696e673a20416d6f756e74206d757374206265207260448201527f6f756e64656420746f205354414b455f524f554e44494e4700000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4950546f6b656e5374616b696e673a20556e7374616b6520616d6f756e74207560448201527f6e646572206d696e0000000000000000000000000000000000000000000000006064820152fd5b6040513d6000823e3d90fd5b506108fc6114b9565b1561167f57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206460448201527f65726976656420616464726573730000000000000000000000000000000000006064820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b91926117516004543414611411565b600034156117ba575b600080808093813491f115611663577f026c2e156478ec2a25ccebac97a338d301f69b6d5aeec39c578b28a95e11820193611556916117ac604051958695338752606060208801526060870191611703565b918483036040860152611703565b506108fc61175a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761180757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161180757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261188461187f83611836565b6117c3565b938285528282011161122a57816000926020928387013784010152565b959390946118b26004543414611411565b60003415611a08575b600080808093813491f115611663576118d5368585611870565b602081519101206118e7368385611870565b60208151910120146119845761196061196e9361192c8a633b9aca007f210091050fbe3add6ade45436b6c7aed210ef28fc37e1a1775970fc391272fe89c0690611a9c565b9561193b600154881015611e44565b611949600354891115611d05565b61152a6040519a8b9a60c08c5260c08c0191611703565b918683036040880152611703565b91606084015233608084015260a08301520390a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4950546f6b656e5374616b696e673a20526564656c65676174696e6720746f2060448201527f73616d652076616c696461746f720000000000000000000000000000000000006064820152fd5b506108fc6118bb565b15611a1857565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4950546f6b656e5374616b696e673a20436f6d6d697373696f6e20726174652060448201527f756e646572206d696e00000000000000000000000000000000000000000000006064820152fd5b91908203918211611aa957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060418103611c815715611c52577f04000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082351603611bce578060016021611b439301359101356124de565b15611b4a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206f60448201527f6e206375727665000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579207060448201527f72656669780000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152fd5b15611d0c57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4950546f6b656e5374616b696e673a20496e76616c69642064656c656761746960448201527f6f6e2069640000000000000000000000000000000000000000000000000000006064820152fd5b8160011161122a5773ffffffffffffffffffffffffffffffffffffffff91611ddf9160017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3693019101611870565b602081519101201690565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f006002815414611e1a5760029055565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b15611e4b57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4950546f6b656e5374616b696e673a205374616b6520616d6f756e7420756e6460448201527f6572206d696e00000000000000000000000000000000000000000000000000006064820152fd5b92959390919360048210156120825760038211611ffe57633b9aca00340695611ef88734611a9c565b95611f07600154881015611e44565b60009884611fb7575b94611f866000989495899893967f269a32ff589c9b701f49ab6aa532ee8f55901df71a7fca2d70dc9f45314f1be39560ff611f608c9b9a8c9b61152a6040519a8b9a60e08c5260e08c0191611703565b938960408801521660608601528d60808601523360a086015284830360c0860152611703565b0390a1818115611fae575b8290f1156116635780611fa2575090565b611fab90612591565b90565b506108fc611f91565b91949850929591946003547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611aa95760010180600355989491969390959296611f10565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4950546f6b656e5374616b696e673a20496e76616c6964207374616b696e672060448201527f706572696f6400000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036120f157565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b7f00000000000000000000000000000000000000000000000000000000000000008110612179576020817f20461e09b8e557b77e107939f9ce6544698123aad0fc964ac5cc59b7df2e608f92600455604051908152a1565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4950546f6b656e5374616b696e673a20496e76616c6964206d696e20666565006044820152fd5b6121e890633b9aca00810690611a9c565b80600255801561221f5760207ff93d77980ae5a1ddd008d6a7f02cbee5af2a4fcea850c4b55828de4f644e589f91604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4950546f6b656e5374616b696e673a205a65726f206d696e20756e7374616b6560448201527f20616d6f756e74000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b801561238e576020817f4167b1de65292a9ff628c9136823791a1de701e1fbdda4863ce22a1cfaf4d0f792600055604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4950546f6b656e5374616b696e673a205a65726f206d696e20636f6d6d69737360448201527f696f6e20726174650000000000000000000000000000000000000000000000006064820152fd5b61242390633b9aca00810690611a9c565b80600155801561245a5760207fea095c2fea861b87f0fd54d0d4453358692a527e120df22b62c71696247dfb9f91604051908152a1565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4950546f6b656e5374616b696e673a205a65726f206d696e207374616b65206160448201527f6d6f756e740000000000000000000000000000000000000000000000000000006064820152fd5b80158015612567575b801561255f575b8015612535575b61252e576007907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f918282818181950909089180091490565b5050600090565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8210156124f5565b5081156124ee565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8110156124e7565b600080808093335af13d15612644573d6125ad61187f82611836565b908152600060203d92013e5b156125c057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4950546f6b656e5374616b696e673a204661696c656420746f20726566756e6460448201527f2072656d61696e646572000000000000000000000000000000000000000000006064820152fd5b6125b9565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561267857565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea2646970667358221220e0e0f22705251aecb2cfdf34f2460a5628f6034ec89c9b91929c281303afbb5764736f6c63430008170033" +) + +//go:embed iptokenstaking_storage_layout.json +var iptokenstakingStorageLayoutJSON []byte + +var IPTokenStakingStorageLayout = mustGetStorageLayout(iptokenstakingStorageLayoutJSON) diff --git a/contracts/bindings/iptokenstaking_storage_layout.json b/contracts/bindings/iptokenstaking_storage_layout.json new file mode 100644 index 00000000..3c72ba51 --- /dev/null +++ b/contracts/bindings/iptokenstaking_storage_layout.json @@ -0,0 +1,51 @@ +{ + "storage": [ + { + "astId": 48741, + "contract": "src/protocol/IPTokenStaking.sol:IPTokenStaking", + "label": "minCommissionRate", + "offset": 0, + "slot": "0", + "type": "t_uint256" + }, + { + "astId": 48744, + "contract": "src/protocol/IPTokenStaking.sol:IPTokenStaking", + "label": "minStakeAmount", + "offset": 0, + "slot": "1", + "type": "t_uint256" + }, + { + "astId": 48747, + "contract": "src/protocol/IPTokenStaking.sol:IPTokenStaking", + "label": "minUnstakeAmount", + "offset": 0, + "slot": "2", + "type": "t_uint256" + }, + { + "astId": 48750, + "contract": "src/protocol/IPTokenStaking.sol:IPTokenStaking", + "label": "_delegationIdCounter", + "offset": 0, + "slot": "3", + "type": "t_uint256" + }, + { + "astId": 48753, + "contract": "src/protocol/IPTokenStaking.sol:IPTokenStaking", + "label": "fee", + "offset": 0, + "slot": "4", + "type": "t_uint256" + } + ], + "types": { + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } +} diff --git a/contracts/bindings/ubipool.go b/contracts/bindings/ubipool.go new file mode 100644 index 00000000..1f2ca9a0 --- /dev/null +++ b/contracts/bindings/ubipool.go @@ -0,0 +1,1361 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UBIPoolMetaData contains all meta data concerning the UBIPool contract. +var UBIPoolMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"maxUBIPercentage\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"AA\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BB\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_UBI_PERCENTAGE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PP\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"acceptOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"claimUBI\",\"inputs\":[{\"name\":\"distributionId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"currentDistributionId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"multicall\",\"inputs\":[{\"name\":\"data\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"outputs\":[{\"name\":\"results\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setUBIDistribution\",\"inputs\":[{\"name\":\"totalUBI\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"validatorUncmpPubKeys\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setUBIPercentage\",\"inputs\":[{\"name\":\"percentage\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"totalPendingClaims\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorUBIAmounts\",\"inputs\":[{\"name\":\"distributionId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"validatorUncmpPubkey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferStarted\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"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\":\"UBIDistributionSet\",\"inputs\":[{\"name\":\"month\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"totalUBI\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"validatorUncmpPubKeys\",\"type\":\"bytes[]\",\"indexed\":false,\"internalType\":\"bytes[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"UBIPercentageSet\",\"inputs\":[{\"name\":\"percentage\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", + Bin: "0x60a034610101576001600160401b0390601f611a9538819003918201601f19168301918483118484101761010657808492602094604052833981010312610101575163ffffffff81168103610101576080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100ef5780808316036100aa575b604051611978908161011d823960805181818161025d0152610c630152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808061008b565b60405163f92ee8a960e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001457600080fd5b600091823560e01c9081631971f77314610d1357816347564aa014610c345781635727dc5c14610c1857816370bf238114610bf9578163715018a614610b2f578163747c4ef71461084f578163780069e01461083257816379ba5097146107a55781638da5cb5b14610751578163997da8d414610736578163ac9650d814610536578163c20c1472146104ba578163c4d66de814610281578163d5077f4014610240578163e30c3978146101ec578163eeeac01e146101b1575063f2fde38b146100dd57600080fd5b346101ad5760206003193601126101ad573573ffffffffffffffffffffffffffffffffffffffff8082168092036101a957610116611474565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b5080fd5b8390346101ad57816003193601126101ad57602090517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8152f35b8390346101ad57816003193601126101ad5760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b8390346101ad57816003193601126101ad576020905163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b919050346101a95760206003193601126101a957803573ffffffffffffffffffffffffffffffffffffffff8116908181036104b6577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549260ff84871c16159367ffffffffffffffff8116801590816104ae575b60011490816104a4575b15908161049b575b50610473578460017fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000831617875561043e575b50156103bb575061035c9061034f6118e9565b6103576118e9565b6116e2565b610364578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f554249506f6f6c3a206f776e65722063616e6e6f74206265207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000016680100000000000000011785553861033c565b8287517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610309565b303b159150610301565b8691506102f7565b8480fd5b919050346101a957816003193601126101a95760243567ffffffffffffffff811161053257366023820112156105325761052191836020956105068794369060248187013591016112ed565b92358152600184522082855194838680955193849201611220565b820190815203019020549051908152f35b8380fd5b8383346101ad576020806003193601126101a95767ffffffffffffffff9082358281116104b65761056a90369085016111ea565b92865194838601918683109083111761070a57508087939694975283855261059187611448565b9461059e84519687611243565b8786526105aa88611448565b977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0809901865b8181106106fb575050855b81811061067657505050505080519380850191818652845180935281818701918460051b880101950193965b8388106106155786860387f35b9091929394838080837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08b6001960301875285601f8b5161066181518092818752878088019101611220565b01160101970193019701969093929193610608565b806106da8880896106ba8e9b9f9c9e6106c6908b8b6106998f9b8d60019d61139f565b9290965195838794868601998a37840191858301938a855251938491611220565b01038084520182611243565b5190305af46106d3611418565b9030611849565b6106e4828b611460565b526106ef818a611460565b500198949795986105dc565b60608982018b015289016105d1565b8660416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390346101ad57816003193601126101ad5751908152602090f35b8390346101ad57816003193601126101ad5760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b9050346101a957826003193601126101a9573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054160361080257826107ff336116e2565b80f35b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b8390346101ad57816003193601126101ad57602091549051908152f35b839150346101ad57806003193601126101ad57823560249384359267ffffffffffffffff90818511610b2b5736602386011215610b2b5784830135918211610b2b5786850136888488010111610b27577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00956002875414610aff57600287556108d884836114e4565b83600111610afb5761091290369060257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff870191016112ed565b9283519373ffffffffffffffffffffffffffffffffffffffff60209586339301201603610a7a578588526001845261094d83892082846113ff565b54958615610a1f57885260018452828820889261096a92906113ff565b558580808087335af161097b611418565b50156109c657505060025491820391821161099b57506002556001905580f35b83601186927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b517f08c379a000000000000000000000000000000000000000000000000000000000815291820152601b818601527f554249506f6f6c3a206661696c656420746f2073656e642055424900000000006044820152606490fd5b60648660188c888851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f554249506f6f6c3a206e6f2055424920746f20636c61696d00000000000000006044820152fd5b608485602e8b878751937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206460448201527f65726976656420616464726573730000000000000000000000000000000000006064820152fd5b8780fd5b8483517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b8680fd5b8580fd5b8334610bf65780600319360112610bf657610b48611474565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8390346101ad57816003193601126101ad576020906002549051908152f35b8390346101ad57816003193601126101ad576020905160078152f35b9050346101a95760206003193601126101a95781359163ffffffff8084168094036104b657610c61611474565b7f0000000000000000000000000000000000000000000000000000000000000000168311610cb757507f6c6483041303ba314f169eb2d2af177b4f497324ccf0f3c1e68c2100f76c49299160209151908152a180f35b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601c60248201527f554249506f6f6c3a2070657263656e7461676520746f6f2068696768000000006044820152fd5b9050346101a95760606003193601126101a957813592602467ffffffffffffffff813581811161053257610d4a90369087016111ea565b95909360449182358481116101a957610d6690369083016111ea565b939095610d71611474565b891561116957848a0361110e57600254610d8b818d611324565b47106110b2578b610d9b91611324565b6002558384547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110875760010185558b90855b878110610fb0575003610f55575050508096949296549686519580608088018a895260209b8c8a015260808a8a01525260a087019460a08260051b89010195819385925b848410610e905750505050505084830360608601528183527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211610bf6575092809287927f1cc6f356308c8399caa490706b01fb9d52cdc87cdf639e66c3da7d4ce2db161c9560051b80928583013701030190a151908152f35b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608b820301845288357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811215610afb5782018035908f01848211610f51578136038113610f51578f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8580859796869760019a52868601378d858286010152011601019a01940194019294939190610e15565b8880fd5b60649291601e7f554249506f6f6c3a20746f74616c20616d6f756e74206d69736d6174636800009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b9150610fbd82888b611360565b351561102c576110226001918761100f8f8f8f918f90611009928f8b610ff8918195610ff3610fed84888c61139f565b906114e4565b611360565b3596805481528a602052209361139f565b906113ff565b5561101b848a8d611360565b3590611324565b9101908c91610dd1565b8a517f08c379a0000000000000000000000000000000000000000000000000000000008152602081870152601f818501527f554249506f6f6c3a20616d6f756e74732063616e6e6f74206265207a65726f0081860152606490fd5b82866011877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5060649291601b7f554249506f6f6c3a206e6f7420656e6f7567682062616c616e636500000000009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b6064929160187f554249506f6f6c3a206c656e677468206d69736d6174636800000000000000009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b60849291602e7f554249506f6f6c3a2076616c696461746f72556e636d705075624b65797320639260208c51957f08c379a00000000000000000000000000000000000000000000000000000000087528601528401528201527f616e6e6f7420626520656d7074790000000000000000000000000000000000006064820152fd5b9181601f8401121561121b5782359167ffffffffffffffff831161121b576020808501948460051b01011161121b57565b600080fd5b60005b8381106112335750506000910152565b8181015183820152602001611223565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761128457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161128457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926112f9826112b3565b916113076040519384611243565b82948184528183011161121b578281602093846000960137010152565b9190820180921161133157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908110156113705760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156113705760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561121b57019081359167ffffffffffffffff831161121b57602001823603811361121b579190565b6020919283604051948593843782019081520301902090565b3d15611443573d90611429826112b3565b916114376040519384611243565b82523d6000602084013e565b606090565b67ffffffffffffffff81116112845760051b60200190565b80518210156113705760209160051b010190565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036114b457565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b906041810361165e5715611370577f04000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000823516036115da57806001602161154f930135910135611796565b1561155657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206f60448201527f6e206375727665000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579207060448201527f72656669780000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b8015801561181f575b8015611817575b80156117ed575b6117e6576007907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f918282818181950909089180091490565b5050600090565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8210156117ad565b5081156117a6565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f81101561179f565b90611888575080511561185e57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806118e0575b611899575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611891565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561191857565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea2646970667358221220ca0cc66213b192fb156cc6a30f8f322354dcdc0857802720b9338288fe85068f64736f6c63430008170033", +} + +// UBIPoolABI is the input ABI used to generate the binding from. +// Deprecated: Use UBIPoolMetaData.ABI instead. +var UBIPoolABI = UBIPoolMetaData.ABI + +// UBIPoolBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UBIPoolMetaData.Bin instead. +var UBIPoolBin = UBIPoolMetaData.Bin + +// DeployUBIPool deploys a new Ethereum contract, binding an instance of UBIPool to it. +func DeployUBIPool(auth *bind.TransactOpts, backend bind.ContractBackend, maxUBIPercentage uint32) (common.Address, *types.Transaction, *UBIPool, error) { + parsed, err := UBIPoolMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UBIPoolBin), backend, maxUBIPercentage) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &UBIPool{UBIPoolCaller: UBIPoolCaller{contract: contract}, UBIPoolTransactor: UBIPoolTransactor{contract: contract}, UBIPoolFilterer: UBIPoolFilterer{contract: contract}}, nil +} + +// UBIPool is an auto generated Go binding around an Ethereum contract. +type UBIPool struct { + UBIPoolCaller // Read-only binding to the contract + UBIPoolTransactor // Write-only binding to the contract + UBIPoolFilterer // Log filterer for contract events +} + +// UBIPoolCaller is an auto generated read-only Go binding around an Ethereum contract. +type UBIPoolCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UBIPoolTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UBIPoolTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UBIPoolFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UBIPoolFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UBIPoolSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UBIPoolSession struct { + Contract *UBIPool // 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 +} + +// UBIPoolCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UBIPoolCallerSession struct { + Contract *UBIPoolCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UBIPoolTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UBIPoolTransactorSession struct { + Contract *UBIPoolTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UBIPoolRaw is an auto generated low-level Go binding around an Ethereum contract. +type UBIPoolRaw struct { + Contract *UBIPool // Generic contract binding to access the raw methods on +} + +// UBIPoolCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UBIPoolCallerRaw struct { + Contract *UBIPoolCaller // Generic read-only contract binding to access the raw methods on +} + +// UBIPoolTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UBIPoolTransactorRaw struct { + Contract *UBIPoolTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUBIPool creates a new instance of UBIPool, bound to a specific deployed contract. +func NewUBIPool(address common.Address, backend bind.ContractBackend) (*UBIPool, error) { + contract, err := bindUBIPool(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UBIPool{UBIPoolCaller: UBIPoolCaller{contract: contract}, UBIPoolTransactor: UBIPoolTransactor{contract: contract}, UBIPoolFilterer: UBIPoolFilterer{contract: contract}}, nil +} + +// NewUBIPoolCaller creates a new read-only instance of UBIPool, bound to a specific deployed contract. +func NewUBIPoolCaller(address common.Address, caller bind.ContractCaller) (*UBIPoolCaller, error) { + contract, err := bindUBIPool(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UBIPoolCaller{contract: contract}, nil +} + +// NewUBIPoolTransactor creates a new write-only instance of UBIPool, bound to a specific deployed contract. +func NewUBIPoolTransactor(address common.Address, transactor bind.ContractTransactor) (*UBIPoolTransactor, error) { + contract, err := bindUBIPool(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UBIPoolTransactor{contract: contract}, nil +} + +// NewUBIPoolFilterer creates a new log filterer instance of UBIPool, bound to a specific deployed contract. +func NewUBIPoolFilterer(address common.Address, filterer bind.ContractFilterer) (*UBIPoolFilterer, error) { + contract, err := bindUBIPool(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UBIPoolFilterer{contract: contract}, nil +} + +// bindUBIPool binds a generic wrapper to an already deployed contract. +func bindUBIPool(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UBIPoolMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UBIPool *UBIPoolRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UBIPool.Contract.UBIPoolCaller.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 (_UBIPool *UBIPoolRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UBIPool.Contract.UBIPoolTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UBIPool *UBIPoolRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UBIPool.Contract.UBIPoolTransactor.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 (_UBIPool *UBIPoolCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UBIPool.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 (_UBIPool *UBIPoolTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UBIPool.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UBIPool *UBIPoolTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UBIPool.Contract.contract.Transact(opts, method, params...) +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_UBIPool *UBIPoolCaller) AA(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "AA") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_UBIPool *UBIPoolSession) AA() (*big.Int, error) { + return _UBIPool.Contract.AA(&_UBIPool.CallOpts) +} + +// AA is a free data retrieval call binding the contract method 0x997da8d4. +// +// Solidity: function AA() view returns(uint256) +func (_UBIPool *UBIPoolCallerSession) AA() (*big.Int, error) { + return _UBIPool.Contract.AA(&_UBIPool.CallOpts) +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_UBIPool *UBIPoolCaller) BB(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "BB") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_UBIPool *UBIPoolSession) BB() (*big.Int, error) { + return _UBIPool.Contract.BB(&_UBIPool.CallOpts) +} + +// BB is a free data retrieval call binding the contract method 0x5727dc5c. +// +// Solidity: function BB() view returns(uint256) +func (_UBIPool *UBIPoolCallerSession) BB() (*big.Int, error) { + return _UBIPool.Contract.BB(&_UBIPool.CallOpts) +} + +// MAXUBIPERCENTAGE is a free data retrieval call binding the contract method 0xd5077f40. +// +// Solidity: function MAX_UBI_PERCENTAGE() view returns(uint32) +func (_UBIPool *UBIPoolCaller) MAXUBIPERCENTAGE(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "MAX_UBI_PERCENTAGE") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// MAXUBIPERCENTAGE is a free data retrieval call binding the contract method 0xd5077f40. +// +// Solidity: function MAX_UBI_PERCENTAGE() view returns(uint32) +func (_UBIPool *UBIPoolSession) MAXUBIPERCENTAGE() (uint32, error) { + return _UBIPool.Contract.MAXUBIPERCENTAGE(&_UBIPool.CallOpts) +} + +// MAXUBIPERCENTAGE is a free data retrieval call binding the contract method 0xd5077f40. +// +// Solidity: function MAX_UBI_PERCENTAGE() view returns(uint32) +func (_UBIPool *UBIPoolCallerSession) MAXUBIPERCENTAGE() (uint32, error) { + return _UBIPool.Contract.MAXUBIPERCENTAGE(&_UBIPool.CallOpts) +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_UBIPool *UBIPoolCaller) PP(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "PP") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_UBIPool *UBIPoolSession) PP() (*big.Int, error) { + return _UBIPool.Contract.PP(&_UBIPool.CallOpts) +} + +// PP is a free data retrieval call binding the contract method 0xeeeac01e. +// +// Solidity: function PP() view returns(uint256) +func (_UBIPool *UBIPoolCallerSession) PP() (*big.Int, error) { + return _UBIPool.Contract.PP(&_UBIPool.CallOpts) +} + +// CurrentDistributionId is a free data retrieval call binding the contract method 0x780069e0. +// +// Solidity: function currentDistributionId() view returns(uint256) +func (_UBIPool *UBIPoolCaller) CurrentDistributionId(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "currentDistributionId") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CurrentDistributionId is a free data retrieval call binding the contract method 0x780069e0. +// +// Solidity: function currentDistributionId() view returns(uint256) +func (_UBIPool *UBIPoolSession) CurrentDistributionId() (*big.Int, error) { + return _UBIPool.Contract.CurrentDistributionId(&_UBIPool.CallOpts) +} + +// CurrentDistributionId is a free data retrieval call binding the contract method 0x780069e0. +// +// Solidity: function currentDistributionId() view returns(uint256) +func (_UBIPool *UBIPoolCallerSession) CurrentDistributionId() (*big.Int, error) { + return _UBIPool.Contract.CurrentDistributionId(&_UBIPool.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UBIPool *UBIPoolCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UBIPool *UBIPoolSession) Owner() (common.Address, error) { + return _UBIPool.Contract.Owner(&_UBIPool.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UBIPool *UBIPoolCallerSession) Owner() (common.Address, error) { + return _UBIPool.Contract.Owner(&_UBIPool.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UBIPool *UBIPoolCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "pendingOwner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UBIPool *UBIPoolSession) PendingOwner() (common.Address, error) { + return _UBIPool.Contract.PendingOwner(&_UBIPool.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UBIPool *UBIPoolCallerSession) PendingOwner() (common.Address, error) { + return _UBIPool.Contract.PendingOwner(&_UBIPool.CallOpts) +} + +// TotalPendingClaims is a free data retrieval call binding the contract method 0x70bf2381. +// +// Solidity: function totalPendingClaims() view returns(uint256) +func (_UBIPool *UBIPoolCaller) TotalPendingClaims(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "totalPendingClaims") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TotalPendingClaims is a free data retrieval call binding the contract method 0x70bf2381. +// +// Solidity: function totalPendingClaims() view returns(uint256) +func (_UBIPool *UBIPoolSession) TotalPendingClaims() (*big.Int, error) { + return _UBIPool.Contract.TotalPendingClaims(&_UBIPool.CallOpts) +} + +// TotalPendingClaims is a free data retrieval call binding the contract method 0x70bf2381. +// +// Solidity: function totalPendingClaims() view returns(uint256) +func (_UBIPool *UBIPoolCallerSession) TotalPendingClaims() (*big.Int, error) { + return _UBIPool.Contract.TotalPendingClaims(&_UBIPool.CallOpts) +} + +// ValidatorUBIAmounts is a free data retrieval call binding the contract method 0xc20c1472. +// +// Solidity: function validatorUBIAmounts(uint256 distributionId, bytes validatorUncmpPubkey) view returns(uint256 amount) +func (_UBIPool *UBIPoolCaller) ValidatorUBIAmounts(opts *bind.CallOpts, distributionId *big.Int, validatorUncmpPubkey []byte) (*big.Int, error) { + var out []interface{} + err := _UBIPool.contract.Call(opts, &out, "validatorUBIAmounts", distributionId, validatorUncmpPubkey) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ValidatorUBIAmounts is a free data retrieval call binding the contract method 0xc20c1472. +// +// Solidity: function validatorUBIAmounts(uint256 distributionId, bytes validatorUncmpPubkey) view returns(uint256 amount) +func (_UBIPool *UBIPoolSession) ValidatorUBIAmounts(distributionId *big.Int, validatorUncmpPubkey []byte) (*big.Int, error) { + return _UBIPool.Contract.ValidatorUBIAmounts(&_UBIPool.CallOpts, distributionId, validatorUncmpPubkey) +} + +// ValidatorUBIAmounts is a free data retrieval call binding the contract method 0xc20c1472. +// +// Solidity: function validatorUBIAmounts(uint256 distributionId, bytes validatorUncmpPubkey) view returns(uint256 amount) +func (_UBIPool *UBIPoolCallerSession) ValidatorUBIAmounts(distributionId *big.Int, validatorUncmpPubkey []byte) (*big.Int, error) { + return _UBIPool.Contract.ValidatorUBIAmounts(&_UBIPool.CallOpts, distributionId, validatorUncmpPubkey) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UBIPool *UBIPoolTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UBIPool *UBIPoolSession) AcceptOwnership() (*types.Transaction, error) { + return _UBIPool.Contract.AcceptOwnership(&_UBIPool.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UBIPool *UBIPoolTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _UBIPool.Contract.AcceptOwnership(&_UBIPool.TransactOpts) +} + +// ClaimUBI is a paid mutator transaction binding the contract method 0x747c4ef7. +// +// Solidity: function claimUBI(uint256 distributionId, bytes validatorUncmpPubkey) returns() +func (_UBIPool *UBIPoolTransactor) ClaimUBI(opts *bind.TransactOpts, distributionId *big.Int, validatorUncmpPubkey []byte) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "claimUBI", distributionId, validatorUncmpPubkey) +} + +// ClaimUBI is a paid mutator transaction binding the contract method 0x747c4ef7. +// +// Solidity: function claimUBI(uint256 distributionId, bytes validatorUncmpPubkey) returns() +func (_UBIPool *UBIPoolSession) ClaimUBI(distributionId *big.Int, validatorUncmpPubkey []byte) (*types.Transaction, error) { + return _UBIPool.Contract.ClaimUBI(&_UBIPool.TransactOpts, distributionId, validatorUncmpPubkey) +} + +// ClaimUBI is a paid mutator transaction binding the contract method 0x747c4ef7. +// +// Solidity: function claimUBI(uint256 distributionId, bytes validatorUncmpPubkey) returns() +func (_UBIPool *UBIPoolTransactorSession) ClaimUBI(distributionId *big.Int, validatorUncmpPubkey []byte) (*types.Transaction, error) { + return _UBIPool.Contract.ClaimUBI(&_UBIPool.TransactOpts, distributionId, validatorUncmpPubkey) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UBIPool *UBIPoolTransactor) Initialize(opts *bind.TransactOpts, owner common.Address) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "initialize", owner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UBIPool *UBIPoolSession) Initialize(owner common.Address) (*types.Transaction, error) { + return _UBIPool.Contract.Initialize(&_UBIPool.TransactOpts, owner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UBIPool *UBIPoolTransactorSession) Initialize(owner common.Address) (*types.Transaction, error) { + return _UBIPool.Contract.Initialize(&_UBIPool.TransactOpts, owner) +} + +// Multicall is a paid mutator transaction binding the contract method 0xac9650d8. +// +// Solidity: function multicall(bytes[] data) returns(bytes[] results) +func (_UBIPool *UBIPoolTransactor) Multicall(opts *bind.TransactOpts, data [][]byte) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "multicall", data) +} + +// Multicall is a paid mutator transaction binding the contract method 0xac9650d8. +// +// Solidity: function multicall(bytes[] data) returns(bytes[] results) +func (_UBIPool *UBIPoolSession) Multicall(data [][]byte) (*types.Transaction, error) { + return _UBIPool.Contract.Multicall(&_UBIPool.TransactOpts, data) +} + +// Multicall is a paid mutator transaction binding the contract method 0xac9650d8. +// +// Solidity: function multicall(bytes[] data) returns(bytes[] results) +func (_UBIPool *UBIPoolTransactorSession) Multicall(data [][]byte) (*types.Transaction, error) { + return _UBIPool.Contract.Multicall(&_UBIPool.TransactOpts, data) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UBIPool *UBIPoolTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UBIPool *UBIPoolSession) RenounceOwnership() (*types.Transaction, error) { + return _UBIPool.Contract.RenounceOwnership(&_UBIPool.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UBIPool *UBIPoolTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _UBIPool.Contract.RenounceOwnership(&_UBIPool.TransactOpts) +} + +// SetUBIDistribution is a paid mutator transaction binding the contract method 0x1971f773. +// +// Solidity: function setUBIDistribution(uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) returns(uint256) +func (_UBIPool *UBIPoolTransactor) SetUBIDistribution(opts *bind.TransactOpts, totalUBI *big.Int, validatorUncmpPubKeys [][]byte, amounts []*big.Int) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "setUBIDistribution", totalUBI, validatorUncmpPubKeys, amounts) +} + +// SetUBIDistribution is a paid mutator transaction binding the contract method 0x1971f773. +// +// Solidity: function setUBIDistribution(uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) returns(uint256) +func (_UBIPool *UBIPoolSession) SetUBIDistribution(totalUBI *big.Int, validatorUncmpPubKeys [][]byte, amounts []*big.Int) (*types.Transaction, error) { + return _UBIPool.Contract.SetUBIDistribution(&_UBIPool.TransactOpts, totalUBI, validatorUncmpPubKeys, amounts) +} + +// SetUBIDistribution is a paid mutator transaction binding the contract method 0x1971f773. +// +// Solidity: function setUBIDistribution(uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) returns(uint256) +func (_UBIPool *UBIPoolTransactorSession) SetUBIDistribution(totalUBI *big.Int, validatorUncmpPubKeys [][]byte, amounts []*big.Int) (*types.Transaction, error) { + return _UBIPool.Contract.SetUBIDistribution(&_UBIPool.TransactOpts, totalUBI, validatorUncmpPubKeys, amounts) +} + +// SetUBIPercentage is a paid mutator transaction binding the contract method 0x47564aa0. +// +// Solidity: function setUBIPercentage(uint32 percentage) returns() +func (_UBIPool *UBIPoolTransactor) SetUBIPercentage(opts *bind.TransactOpts, percentage uint32) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "setUBIPercentage", percentage) +} + +// SetUBIPercentage is a paid mutator transaction binding the contract method 0x47564aa0. +// +// Solidity: function setUBIPercentage(uint32 percentage) returns() +func (_UBIPool *UBIPoolSession) SetUBIPercentage(percentage uint32) (*types.Transaction, error) { + return _UBIPool.Contract.SetUBIPercentage(&_UBIPool.TransactOpts, percentage) +} + +// SetUBIPercentage is a paid mutator transaction binding the contract method 0x47564aa0. +// +// Solidity: function setUBIPercentage(uint32 percentage) returns() +func (_UBIPool *UBIPoolTransactorSession) SetUBIPercentage(percentage uint32) (*types.Transaction, error) { + return _UBIPool.Contract.SetUBIPercentage(&_UBIPool.TransactOpts, percentage) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UBIPool *UBIPoolTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _UBIPool.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UBIPool *UBIPoolSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UBIPool.Contract.TransferOwnership(&_UBIPool.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UBIPool *UBIPoolTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UBIPool.Contract.TransferOwnership(&_UBIPool.TransactOpts, newOwner) +} + +// UBIPoolInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the UBIPool contract. +type UBIPoolInitializedIterator struct { + Event *UBIPoolInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UBIPoolInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UBIPoolInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UBIPoolInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UBIPoolInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UBIPoolInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UBIPoolInitialized represents a Initialized event raised by the UBIPool contract. +type UBIPoolInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UBIPool *UBIPoolFilterer) FilterInitialized(opts *bind.FilterOpts) (*UBIPoolInitializedIterator, error) { + + logs, sub, err := _UBIPool.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &UBIPoolInitializedIterator{contract: _UBIPool.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UBIPool *UBIPoolFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UBIPoolInitialized) (event.Subscription, error) { + + logs, sub, err := _UBIPool.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UBIPoolInitialized) + if err := _UBIPool.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UBIPool *UBIPoolFilterer) ParseInitialized(log types.Log) (*UBIPoolInitialized, error) { + event := new(UBIPoolInitialized) + if err := _UBIPool.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UBIPoolOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the UBIPool contract. +type UBIPoolOwnershipTransferStartedIterator struct { + Event *UBIPoolOwnershipTransferStarted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UBIPoolOwnershipTransferStartedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UBIPoolOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UBIPoolOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UBIPoolOwnershipTransferStartedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UBIPoolOwnershipTransferStartedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UBIPoolOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the UBIPool contract. +type UBIPoolOwnershipTransferStarted struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UBIPool *UBIPoolFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UBIPoolOwnershipTransferStartedIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UBIPool.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UBIPoolOwnershipTransferStartedIterator{contract: _UBIPool.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UBIPool *UBIPoolFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *UBIPoolOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UBIPool.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UBIPoolOwnershipTransferStarted) + if err := _UBIPool.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UBIPool *UBIPoolFilterer) ParseOwnershipTransferStarted(log types.Log) (*UBIPoolOwnershipTransferStarted, error) { + event := new(UBIPoolOwnershipTransferStarted) + if err := _UBIPool.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UBIPoolOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the UBIPool contract. +type UBIPoolOwnershipTransferredIterator struct { + Event *UBIPoolOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UBIPoolOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UBIPoolOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UBIPoolOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UBIPoolOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UBIPoolOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UBIPoolOwnershipTransferred represents a OwnershipTransferred event raised by the UBIPool contract. +type UBIPoolOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UBIPool *UBIPoolFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UBIPoolOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UBIPool.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UBIPoolOwnershipTransferredIterator{contract: _UBIPool.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 (_UBIPool *UBIPoolFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UBIPoolOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UBIPool.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UBIPoolOwnershipTransferred) + if err := _UBIPool.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UBIPool *UBIPoolFilterer) ParseOwnershipTransferred(log types.Log) (*UBIPoolOwnershipTransferred, error) { + event := new(UBIPoolOwnershipTransferred) + if err := _UBIPool.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UBIPoolUBIDistributionSetIterator is returned from FilterUBIDistributionSet and is used to iterate over the raw logs and unpacked data for UBIDistributionSet events raised by the UBIPool contract. +type UBIPoolUBIDistributionSetIterator struct { + Event *UBIPoolUBIDistributionSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UBIPoolUBIDistributionSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UBIPoolUBIDistributionSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UBIPoolUBIDistributionSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UBIPoolUBIDistributionSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UBIPoolUBIDistributionSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UBIPoolUBIDistributionSet represents a UBIDistributionSet event raised by the UBIPool contract. +type UBIPoolUBIDistributionSet struct { + Month *big.Int + TotalUBI *big.Int + ValidatorUncmpPubKeys [][]byte + Amounts []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUBIDistributionSet is a free log retrieval operation binding the contract event 0x1cc6f356308c8399caa490706b01fb9d52cdc87cdf639e66c3da7d4ce2db161c. +// +// Solidity: event UBIDistributionSet(uint256 month, uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) +func (_UBIPool *UBIPoolFilterer) FilterUBIDistributionSet(opts *bind.FilterOpts) (*UBIPoolUBIDistributionSetIterator, error) { + + logs, sub, err := _UBIPool.contract.FilterLogs(opts, "UBIDistributionSet") + if err != nil { + return nil, err + } + return &UBIPoolUBIDistributionSetIterator{contract: _UBIPool.contract, event: "UBIDistributionSet", logs: logs, sub: sub}, nil +} + +// WatchUBIDistributionSet is a free log subscription operation binding the contract event 0x1cc6f356308c8399caa490706b01fb9d52cdc87cdf639e66c3da7d4ce2db161c. +// +// Solidity: event UBIDistributionSet(uint256 month, uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) +func (_UBIPool *UBIPoolFilterer) WatchUBIDistributionSet(opts *bind.WatchOpts, sink chan<- *UBIPoolUBIDistributionSet) (event.Subscription, error) { + + logs, sub, err := _UBIPool.contract.WatchLogs(opts, "UBIDistributionSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UBIPoolUBIDistributionSet) + if err := _UBIPool.contract.UnpackLog(event, "UBIDistributionSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUBIDistributionSet is a log parse operation binding the contract event 0x1cc6f356308c8399caa490706b01fb9d52cdc87cdf639e66c3da7d4ce2db161c. +// +// Solidity: event UBIDistributionSet(uint256 month, uint256 totalUBI, bytes[] validatorUncmpPubKeys, uint256[] amounts) +func (_UBIPool *UBIPoolFilterer) ParseUBIDistributionSet(log types.Log) (*UBIPoolUBIDistributionSet, error) { + event := new(UBIPoolUBIDistributionSet) + if err := _UBIPool.contract.UnpackLog(event, "UBIDistributionSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UBIPoolUBIPercentageSetIterator is returned from FilterUBIPercentageSet and is used to iterate over the raw logs and unpacked data for UBIPercentageSet events raised by the UBIPool contract. +type UBIPoolUBIPercentageSetIterator struct { + Event *UBIPoolUBIPercentageSet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UBIPoolUBIPercentageSetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UBIPoolUBIPercentageSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UBIPoolUBIPercentageSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UBIPoolUBIPercentageSetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UBIPoolUBIPercentageSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UBIPoolUBIPercentageSet represents a UBIPercentageSet event raised by the UBIPool contract. +type UBIPoolUBIPercentageSet struct { + Percentage uint32 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUBIPercentageSet is a free log retrieval operation binding the contract event 0x6c6483041303ba314f169eb2d2af177b4f497324ccf0f3c1e68c2100f76c4929. +// +// Solidity: event UBIPercentageSet(uint32 percentage) +func (_UBIPool *UBIPoolFilterer) FilterUBIPercentageSet(opts *bind.FilterOpts) (*UBIPoolUBIPercentageSetIterator, error) { + + logs, sub, err := _UBIPool.contract.FilterLogs(opts, "UBIPercentageSet") + if err != nil { + return nil, err + } + return &UBIPoolUBIPercentageSetIterator{contract: _UBIPool.contract, event: "UBIPercentageSet", logs: logs, sub: sub}, nil +} + +// WatchUBIPercentageSet is a free log subscription operation binding the contract event 0x6c6483041303ba314f169eb2d2af177b4f497324ccf0f3c1e68c2100f76c4929. +// +// Solidity: event UBIPercentageSet(uint32 percentage) +func (_UBIPool *UBIPoolFilterer) WatchUBIPercentageSet(opts *bind.WatchOpts, sink chan<- *UBIPoolUBIPercentageSet) (event.Subscription, error) { + + logs, sub, err := _UBIPool.contract.WatchLogs(opts, "UBIPercentageSet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UBIPoolUBIPercentageSet) + if err := _UBIPool.contract.UnpackLog(event, "UBIPercentageSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUBIPercentageSet is a log parse operation binding the contract event 0x6c6483041303ba314f169eb2d2af177b4f497324ccf0f3c1e68c2100f76c4929. +// +// Solidity: event UBIPercentageSet(uint32 percentage) +func (_UBIPool *UBIPoolFilterer) ParseUBIPercentageSet(log types.Log) (*UBIPoolUBIPercentageSet, error) { + event := new(UBIPoolUBIPercentageSet) + if err := _UBIPool.contract.UnpackLog(event, "UBIPercentageSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/bindings/ubipool_more.go b/contracts/bindings/ubipool_more.go new file mode 100644 index 00000000..aa16c4b7 --- /dev/null +++ b/contracts/bindings/ubipool_more.go @@ -0,0 +1,14 @@ +package bindings + +import ( + _ "embed" +) + +const ( + UBIPoolDeployedBytecode = "0x60406080815260048036101561001457600080fd5b600091823560e01c9081631971f77314610d1357816347564aa014610c345781635727dc5c14610c1857816370bf238114610bf9578163715018a614610b2f578163747c4ef71461084f578163780069e01461083257816379ba5097146107a55781638da5cb5b14610751578163997da8d414610736578163ac9650d814610536578163c20c1472146104ba578163c4d66de814610281578163d5077f4014610240578163e30c3978146101ec578163eeeac01e146101b1575063f2fde38b146100dd57600080fd5b346101ad5760206003193601126101ad573573ffffffffffffffffffffffffffffffffffffffff8082168092036101a957610116611474565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b5080fd5b8390346101ad57816003193601126101ad57602090517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8152f35b8390346101ad57816003193601126101ad5760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b8390346101ad57816003193601126101ad576020905163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b919050346101a95760206003193601126101a957803573ffffffffffffffffffffffffffffffffffffffff8116908181036104b6577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549260ff84871c16159367ffffffffffffffff8116801590816104ae575b60011490816104a4575b15908161049b575b50610473578460017fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000831617875561043e575b50156103bb575061035c9061034f6118e9565b6103576118e9565b6116e2565b610364578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602560248201527f554249506f6f6c3a206f776e65722063616e6e6f74206265207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000016680100000000000000011785553861033c565b8287517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610309565b303b159150610301565b8691506102f7565b8480fd5b919050346101a957816003193601126101a95760243567ffffffffffffffff811161053257366023820112156105325761052191836020956105068794369060248187013591016112ed565b92358152600184522082855194838680955193849201611220565b820190815203019020549051908152f35b8380fd5b8383346101ad576020806003193601126101a95767ffffffffffffffff9082358281116104b65761056a90369085016111ea565b92865194838601918683109083111761070a57508087939694975283855261059187611448565b9461059e84519687611243565b8786526105aa88611448565b977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0809901865b8181106106fb575050855b81811061067657505050505080519380850191818652845180935281818701918460051b880101950193965b8388106106155786860387f35b9091929394838080837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08b6001960301875285601f8b5161066181518092818752878088019101611220565b01160101970193019701969093929193610608565b806106da8880896106ba8e9b9f9c9e6106c6908b8b6106998f9b8d60019d61139f565b9290965195838794868601998a37840191858301938a855251938491611220565b01038084520182611243565b5190305af46106d3611418565b9030611849565b6106e4828b611460565b526106ef818a611460565b500198949795986105dc565b60608982018b015289016105d1565b8660416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8390346101ad57816003193601126101ad5751908152602090f35b8390346101ad57816003193601126101ad5760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b9050346101a957826003193601126101a9573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054160361080257826107ff336116e2565b80f35b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b8390346101ad57816003193601126101ad57602091549051908152f35b839150346101ad57806003193601126101ad57823560249384359267ffffffffffffffff90818511610b2b5736602386011215610b2b5784830135918211610b2b5786850136888488010111610b27577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00956002875414610aff57600287556108d884836114e4565b83600111610afb5761091290369060257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff870191016112ed565b9283519373ffffffffffffffffffffffffffffffffffffffff60209586339301201603610a7a578588526001845261094d83892082846113ff565b54958615610a1f57885260018452828820889261096a92906113ff565b558580808087335af161097b611418565b50156109c657505060025491820391821161099b57506002556001905580f35b83601186927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b517f08c379a000000000000000000000000000000000000000000000000000000000815291820152601b818601527f554249506f6f6c3a206661696c656420746f2073656e642055424900000000006044820152606490fd5b60648660188c888851937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f554249506f6f6c3a206e6f2055424920746f20636c61696d00000000000000006044820152fd5b608485602e8b878751937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206460448201527f65726976656420616464726573730000000000000000000000000000000000006064820152fd5b8780fd5b8483517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b8680fd5b8580fd5b8334610bf65780600319360112610bf657610b48611474565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b8390346101ad57816003193601126101ad576020906002549051908152f35b8390346101ad57816003193601126101ad576020905160078152f35b9050346101a95760206003193601126101a95781359163ffffffff8084168094036104b657610c61611474565b7f0000000000000000000000000000000000000000000000000000000000000000168311610cb757507f6c6483041303ba314f169eb2d2af177b4f497324ccf0f3c1e68c2100f76c49299160209151908152a180f35b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601c60248201527f554249506f6f6c3a2070657263656e7461676520746f6f2068696768000000006044820152fd5b9050346101a95760606003193601126101a957813592602467ffffffffffffffff813581811161053257610d4a90369087016111ea565b95909360449182358481116101a957610d6690369083016111ea565b939095610d71611474565b891561116957848a0361110e57600254610d8b818d611324565b47106110b2578b610d9b91611324565b6002558384547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110875760010185558b90855b878110610fb0575003610f55575050508096949296549686519580608088018a895260209b8c8a015260808a8a01525260a087019460a08260051b89010195819385925b848410610e905750505050505084830360608601528183527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8211610bf6575092809287927f1cc6f356308c8399caa490706b01fb9d52cdc87cdf639e66c3da7d4ce2db161c9560051b80928583013701030190a151908152f35b9091929394977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608b820301845288357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811215610afb5782018035908f01848211610f51578136038113610f51578f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8580859796869760019a52868601378d858286010152011601019a01940194019294939190610e15565b8880fd5b60649291601e7f554249506f6f6c3a20746f74616c20616d6f756e74206d69736d6174636800009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b9150610fbd82888b611360565b351561102c576110226001918761100f8f8f8f918f90611009928f8b610ff8918195610ff3610fed84888c61139f565b906114e4565b611360565b3596805481528a602052209361139f565b906113ff565b5561101b848a8d611360565b3590611324565b9101908c91610dd1565b8a517f08c379a0000000000000000000000000000000000000000000000000000000008152602081870152601f818501527f554249506f6f6c3a20616d6f756e74732063616e6e6f74206265207a65726f0081860152606490fd5b82866011877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5060649291601b7f554249506f6f6c3a206e6f7420656e6f7567682062616c616e636500000000009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b6064929160187f554249506f6f6c3a206c656e677468206d69736d6174636800000000000000009260208c51957f08c379a0000000000000000000000000000000000000000000000000000000008752860152840152820152fd5b60849291602e7f554249506f6f6c3a2076616c696461746f72556e636d705075624b65797320639260208c51957f08c379a00000000000000000000000000000000000000000000000000000000087528601528401528201527f616e6e6f7420626520656d7074790000000000000000000000000000000000006064820152fd5b9181601f8401121561121b5782359167ffffffffffffffff831161121b576020808501948460051b01011161121b57565b600080fd5b60005b8381106112335750506000910152565b8181015183820152602001611223565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761128457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161128457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926112f9826112b3565b916113076040519384611243565b82948184528183011161121b578281602093846000960137010152565b9190820180921161133157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908110156113705760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156113705760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561121b57019081359167ffffffffffffffff831161121b57602001823603811361121b579190565b6020919283604051948593843782019081520301902090565b3d15611443573d90611429826112b3565b916114376040519384611243565b82523d6000602084013e565b606090565b67ffffffffffffffff81116112845760051b60200190565b80518210156113705760209160051b010190565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300541633036114b457565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b906041810361165e5715611370577f04000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000823516036115da57806001602161154f930135910135611796565b1561155657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206f60448201527f6e206375727665000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579207060448201527f72656669780000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f5075624b657956657269666965723a20496e76616c6964207075626b6579206c60448201527f656e6774680000000000000000000000000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b8015801561181f575b8015611817575b80156117ed575b6117e6576007907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f918282818181950909089180091490565b5050600090565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f8210156117ad565b5081156117a6565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f81101561179f565b90611888575080511561185e57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806118e0575b611899575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15611891565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561191857565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212205c00eee9d5413147cb9546f7a4a223a20c830f84279223325ba23db6224ba5f264736f6c63430008170033" +) + +//go:embed ubipool_storage_layout.json +var ubipoolStorageLayoutJSON []byte + +var UBIPoolStorageLayout = mustGetStorageLayout(ubipoolStorageLayoutJSON) diff --git a/contracts/bindings/ubipool_storage_layout.json b/contracts/bindings/ubipool_storage_layout.json new file mode 100644 index 00000000..96a6ddf1 --- /dev/null +++ b/contracts/bindings/ubipool_storage_layout.json @@ -0,0 +1,54 @@ +{ + "storage": [ + { + "astId": 2443, + "contract": "src/protocol/UBIPool.sol:UBIPool", + "label": "currentDistributionId", + "offset": 0, + "slot": "0", + "type": "t_uint256" + }, + { + "astId": 2450, + "contract": "src/protocol/UBIPool.sol:UBIPool", + "label": "validatorUBIAmounts", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_uint256,t_mapping(t_bytes_memory_ptr,t_uint256))" + }, + { + "astId": 2453, + "contract": "src/protocol/UBIPool.sol:UBIPool", + "label": "totalPendingClaims", + "offset": 0, + "slot": "2", + "type": "t_uint256" + } + ], + "types": { + "t_bytes_memory_ptr": { + "encoding": "bytes", + "label": "bytes", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes_memory_ptr,t_uint256)": { + "encoding": "mapping", + "key": "t_bytes_memory_ptr", + "label": "mapping(bytes => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_uint256,t_mapping(t_bytes_memory_ptr,t_uint256))": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => mapping(bytes => uint256))", + "numberOfBytes": "32", + "value": "t_mapping(t_bytes_memory_ptr,t_uint256)" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } +} diff --git a/contracts/bindings/upgradeentrypoint.go b/contracts/bindings/upgradeentrypoint.go new file mode 100644 index 00000000..7737dd9c --- /dev/null +++ b/contracts/bindings/upgradeentrypoint.go @@ -0,0 +1,1100 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package bindings + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// UpgradeEntrypointMetaData contains all meta data concerning the UpgradeEntrypoint contract. +var UpgradeEntrypointMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"acceptOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelUpgrade\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pendingOwner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"planUpgrade\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"height\",\"type\":\"int64\",\"internalType\":\"int64\"},{\"name\":\"info\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"CancelUpgrade\",\"inputs\":[],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferStarted\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"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\":\"SoftwareUpgrade\",\"inputs\":[{\"name\":\"name\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"height\",\"type\":\"int64\",\"indexed\":false,\"internalType\":\"int64\"},{\"name\":\"info\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x608080604052346100b8577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100a957506001600160401b036002600160401b031982821601610064575b60405161099690816100be8239f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610055565b63f92ee8a960e01b8152600490fd5b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c90816355f2916614610713578163715018a61461062b57816379ba5097146105805781638da5cb5b1461050e578163c4d66de8146102bb578163e30c397814610249578163ef176e0e1461016c575063f2fde38b1461007a57600080fd5b346101685760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610168573573ffffffffffffffffffffffffffffffffffffffff808216809203610164576100d16107e3565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b5080fd5b9050346101645760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101645767ffffffffffffffff918035838111610245576101bd9036908301610771565b919092602435908160070b809203610241576044359586116102415761020a61023b937f112749e79b2098b58eab36c21f123b2883c3ecbbb4f41623a744fa6d9b3e37c697369101610771565b916102136107e3565b61022981519788976060895260608901916107a4565b936020870152858403908601526107a4565b0390a180f35b8680fd5b8480fd5b83903461016857817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101685760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b919050346101645760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016457803573ffffffffffffffffffffffffffffffffffffffff811690818103610245577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549260ff84871c16159367ffffffffffffffff811680159081610506575b60011490816104fc575b1590816104f3575b506104cb578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316178755610496575b501561041357506103b4906103a7610907565b6103af610907565b610853565b6103bc578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602f60248201527f55706772616465456e747279706f696e743a206f776e65722063616e6e6f742060448201527f6265207a65726f206164647265737300000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000166801000000000000000117855538610394565b8287517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610361565b303b159150610359565b86915061034f565b83903461016857817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101685760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b90503461016457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c005416036105fb57826105f833610853565b80f35b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b833461071057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610710576106626107e3565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b833461071057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126107105761074a6107e3565b7f812c36a273ff85c1871fc7c629fa4c010821a53f3a2492dcc0ea00a396b6a64f8180a180f35b9181601f8401121561079f5782359167ffffffffffffffff831161079f576020838186019501011161079f57565b600080fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416330361082357565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561093657565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea2646970667358221220f191a049ebc031e11e32910156e7a4acd2c4bdc61644af7283347412589ec0d064736f6c63430008170033", +} + +// UpgradeEntrypointABI is the input ABI used to generate the binding from. +// Deprecated: Use UpgradeEntrypointMetaData.ABI instead. +var UpgradeEntrypointABI = UpgradeEntrypointMetaData.ABI + +// UpgradeEntrypointBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use UpgradeEntrypointMetaData.Bin instead. +var UpgradeEntrypointBin = UpgradeEntrypointMetaData.Bin + +// DeployUpgradeEntrypoint deploys a new Ethereum contract, binding an instance of UpgradeEntrypoint to it. +func DeployUpgradeEntrypoint(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *UpgradeEntrypoint, error) { + parsed, err := UpgradeEntrypointMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(UpgradeEntrypointBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &UpgradeEntrypoint{UpgradeEntrypointCaller: UpgradeEntrypointCaller{contract: contract}, UpgradeEntrypointTransactor: UpgradeEntrypointTransactor{contract: contract}, UpgradeEntrypointFilterer: UpgradeEntrypointFilterer{contract: contract}}, nil +} + +// UpgradeEntrypoint is an auto generated Go binding around an Ethereum contract. +type UpgradeEntrypoint struct { + UpgradeEntrypointCaller // Read-only binding to the contract + UpgradeEntrypointTransactor // Write-only binding to the contract + UpgradeEntrypointFilterer // Log filterer for contract events +} + +// UpgradeEntrypointCaller is an auto generated read-only Go binding around an Ethereum contract. +type UpgradeEntrypointCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeEntrypointTransactor is an auto generated write-only Go binding around an Ethereum contract. +type UpgradeEntrypointTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeEntrypointFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type UpgradeEntrypointFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// UpgradeEntrypointSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type UpgradeEntrypointSession struct { + Contract *UpgradeEntrypoint // 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 +} + +// UpgradeEntrypointCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type UpgradeEntrypointCallerSession struct { + Contract *UpgradeEntrypointCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// UpgradeEntrypointTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type UpgradeEntrypointTransactorSession struct { + Contract *UpgradeEntrypointTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// UpgradeEntrypointRaw is an auto generated low-level Go binding around an Ethereum contract. +type UpgradeEntrypointRaw struct { + Contract *UpgradeEntrypoint // Generic contract binding to access the raw methods on +} + +// UpgradeEntrypointCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type UpgradeEntrypointCallerRaw struct { + Contract *UpgradeEntrypointCaller // Generic read-only contract binding to access the raw methods on +} + +// UpgradeEntrypointTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type UpgradeEntrypointTransactorRaw struct { + Contract *UpgradeEntrypointTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewUpgradeEntrypoint creates a new instance of UpgradeEntrypoint, bound to a specific deployed contract. +func NewUpgradeEntrypoint(address common.Address, backend bind.ContractBackend) (*UpgradeEntrypoint, error) { + contract, err := bindUpgradeEntrypoint(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &UpgradeEntrypoint{UpgradeEntrypointCaller: UpgradeEntrypointCaller{contract: contract}, UpgradeEntrypointTransactor: UpgradeEntrypointTransactor{contract: contract}, UpgradeEntrypointFilterer: UpgradeEntrypointFilterer{contract: contract}}, nil +} + +// NewUpgradeEntrypointCaller creates a new read-only instance of UpgradeEntrypoint, bound to a specific deployed contract. +func NewUpgradeEntrypointCaller(address common.Address, caller bind.ContractCaller) (*UpgradeEntrypointCaller, error) { + contract, err := bindUpgradeEntrypoint(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &UpgradeEntrypointCaller{contract: contract}, nil +} + +// NewUpgradeEntrypointTransactor creates a new write-only instance of UpgradeEntrypoint, bound to a specific deployed contract. +func NewUpgradeEntrypointTransactor(address common.Address, transactor bind.ContractTransactor) (*UpgradeEntrypointTransactor, error) { + contract, err := bindUpgradeEntrypoint(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &UpgradeEntrypointTransactor{contract: contract}, nil +} + +// NewUpgradeEntrypointFilterer creates a new log filterer instance of UpgradeEntrypoint, bound to a specific deployed contract. +func NewUpgradeEntrypointFilterer(address common.Address, filterer bind.ContractFilterer) (*UpgradeEntrypointFilterer, error) { + contract, err := bindUpgradeEntrypoint(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &UpgradeEntrypointFilterer{contract: contract}, nil +} + +// bindUpgradeEntrypoint binds a generic wrapper to an already deployed contract. +func bindUpgradeEntrypoint(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := UpgradeEntrypointMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_UpgradeEntrypoint *UpgradeEntrypointRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradeEntrypoint.Contract.UpgradeEntrypointCaller.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 (_UpgradeEntrypoint *UpgradeEntrypointRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.UpgradeEntrypointTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradeEntrypoint *UpgradeEntrypointRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.UpgradeEntrypointTransactor.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 (_UpgradeEntrypoint *UpgradeEntrypointCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _UpgradeEntrypoint.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 (_UpgradeEntrypoint *UpgradeEntrypointTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.contract.Transact(opts, method, params...) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradeEntrypoint.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointSession) Owner() (common.Address, error) { + return _UpgradeEntrypoint.Contract.Owner(&_UpgradeEntrypoint.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointCallerSession) Owner() (common.Address, error) { + return _UpgradeEntrypoint.Contract.Owner(&_UpgradeEntrypoint.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _UpgradeEntrypoint.contract.Call(opts, &out, "pendingOwner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointSession) PendingOwner() (common.Address, error) { + return _UpgradeEntrypoint.Contract.PendingOwner(&_UpgradeEntrypoint.CallOpts) +} + +// PendingOwner is a free data retrieval call binding the contract method 0xe30c3978. +// +// Solidity: function pendingOwner() view returns(address) +func (_UpgradeEntrypoint *UpgradeEntrypointCallerSession) PendingOwner() (common.Address, error) { + return _UpgradeEntrypoint.Contract.PendingOwner(&_UpgradeEntrypoint.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) AcceptOwnership() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.AcceptOwnership(&_UpgradeEntrypoint.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.AcceptOwnership(&_UpgradeEntrypoint.TransactOpts) +} + +// CancelUpgrade is a paid mutator transaction binding the contract method 0x55f29166. +// +// Solidity: function cancelUpgrade() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) CancelUpgrade(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "cancelUpgrade") +} + +// CancelUpgrade is a paid mutator transaction binding the contract method 0x55f29166. +// +// Solidity: function cancelUpgrade() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) CancelUpgrade() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.CancelUpgrade(&_UpgradeEntrypoint.TransactOpts) +} + +// CancelUpgrade is a paid mutator transaction binding the contract method 0x55f29166. +// +// Solidity: function cancelUpgrade() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) CancelUpgrade() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.CancelUpgrade(&_UpgradeEntrypoint.TransactOpts) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) Initialize(opts *bind.TransactOpts, owner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "initialize", owner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) Initialize(owner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.Initialize(&_UpgradeEntrypoint.TransactOpts, owner) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc4d66de8. +// +// Solidity: function initialize(address owner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) Initialize(owner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.Initialize(&_UpgradeEntrypoint.TransactOpts, owner) +} + +// PlanUpgrade is a paid mutator transaction binding the contract method 0xef176e0e. +// +// Solidity: function planUpgrade(string name, int64 height, string info) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) PlanUpgrade(opts *bind.TransactOpts, name string, height int64, info string) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "planUpgrade", name, height, info) +} + +// PlanUpgrade is a paid mutator transaction binding the contract method 0xef176e0e. +// +// Solidity: function planUpgrade(string name, int64 height, string info) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) PlanUpgrade(name string, height int64, info string) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.PlanUpgrade(&_UpgradeEntrypoint.TransactOpts, name, height, info) +} + +// PlanUpgrade is a paid mutator transaction binding the contract method 0xef176e0e. +// +// Solidity: function planUpgrade(string name, int64 height, string info) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) PlanUpgrade(name string, height int64, info string) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.PlanUpgrade(&_UpgradeEntrypoint.TransactOpts, name, height, info) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.RenounceOwnership(&_UpgradeEntrypoint.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.RenounceOwnership(&_UpgradeEntrypoint.TransactOpts) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.TransferOwnership(&_UpgradeEntrypoint.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_UpgradeEntrypoint *UpgradeEntrypointTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _UpgradeEntrypoint.Contract.TransferOwnership(&_UpgradeEntrypoint.TransactOpts, newOwner) +} + +// UpgradeEntrypointCancelUpgradeIterator is returned from FilterCancelUpgrade and is used to iterate over the raw logs and unpacked data for CancelUpgrade events raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointCancelUpgradeIterator struct { + Event *UpgradeEntrypointCancelUpgrade // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeEntrypointCancelUpgradeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointCancelUpgrade) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointCancelUpgrade) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeEntrypointCancelUpgradeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeEntrypointCancelUpgradeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeEntrypointCancelUpgrade represents a CancelUpgrade event raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointCancelUpgrade struct { + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCancelUpgrade is a free log retrieval operation binding the contract event 0x812c36a273ff85c1871fc7c629fa4c010821a53f3a2492dcc0ea00a396b6a64f. +// +// Solidity: event CancelUpgrade() +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) FilterCancelUpgrade(opts *bind.FilterOpts) (*UpgradeEntrypointCancelUpgradeIterator, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.FilterLogs(opts, "CancelUpgrade") + if err != nil { + return nil, err + } + return &UpgradeEntrypointCancelUpgradeIterator{contract: _UpgradeEntrypoint.contract, event: "CancelUpgrade", logs: logs, sub: sub}, nil +} + +// WatchCancelUpgrade is a free log subscription operation binding the contract event 0x812c36a273ff85c1871fc7c629fa4c010821a53f3a2492dcc0ea00a396b6a64f. +// +// Solidity: event CancelUpgrade() +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) WatchCancelUpgrade(opts *bind.WatchOpts, sink chan<- *UpgradeEntrypointCancelUpgrade) (event.Subscription, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.WatchLogs(opts, "CancelUpgrade") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeEntrypointCancelUpgrade) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "CancelUpgrade", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseCancelUpgrade is a log parse operation binding the contract event 0x812c36a273ff85c1871fc7c629fa4c010821a53f3a2492dcc0ea00a396b6a64f. +// +// Solidity: event CancelUpgrade() +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) ParseCancelUpgrade(log types.Log) (*UpgradeEntrypointCancelUpgrade, error) { + event := new(UpgradeEntrypointCancelUpgrade) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "CancelUpgrade", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradeEntrypointInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointInitializedIterator struct { + Event *UpgradeEntrypointInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeEntrypointInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeEntrypointInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeEntrypointInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeEntrypointInitialized represents a Initialized event raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) FilterInitialized(opts *bind.FilterOpts) (*UpgradeEntrypointInitializedIterator, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &UpgradeEntrypointInitializedIterator{contract: _UpgradeEntrypoint.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *UpgradeEntrypointInitialized) (event.Subscription, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeEntrypointInitialized) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// +// Solidity: event Initialized(uint64 version) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) ParseInitialized(log types.Log) (*UpgradeEntrypointInitialized, error) { + event := new(UpgradeEntrypointInitialized) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradeEntrypointOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointOwnershipTransferStartedIterator struct { + Event *UpgradeEntrypointOwnershipTransferStarted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeEntrypointOwnershipTransferStartedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointOwnershipTransferStarted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeEntrypointOwnershipTransferStartedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeEntrypointOwnershipTransferStartedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeEntrypointOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointOwnershipTransferStarted struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UpgradeEntrypointOwnershipTransferStartedIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeEntrypoint.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UpgradeEntrypointOwnershipTransferStartedIterator{contract: _UpgradeEntrypoint.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *UpgradeEntrypointOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeEntrypoint.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeEntrypointOwnershipTransferStarted) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700. +// +// Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) ParseOwnershipTransferStarted(log types.Log) (*UpgradeEntrypointOwnershipTransferStarted, error) { + event := new(UpgradeEntrypointOwnershipTransferStarted) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradeEntrypointOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointOwnershipTransferredIterator struct { + Event *UpgradeEntrypointOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeEntrypointOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeEntrypointOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeEntrypointOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeEntrypointOwnershipTransferred represents a OwnershipTransferred event raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*UpgradeEntrypointOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeEntrypoint.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &UpgradeEntrypointOwnershipTransferredIterator{contract: _UpgradeEntrypoint.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 (_UpgradeEntrypoint *UpgradeEntrypointFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *UpgradeEntrypointOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _UpgradeEntrypoint.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeEntrypointOwnershipTransferred) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) ParseOwnershipTransferred(log types.Log) (*UpgradeEntrypointOwnershipTransferred, error) { + event := new(UpgradeEntrypointOwnershipTransferred) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// UpgradeEntrypointSoftwareUpgradeIterator is returned from FilterSoftwareUpgrade and is used to iterate over the raw logs and unpacked data for SoftwareUpgrade events raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointSoftwareUpgradeIterator struct { + Event *UpgradeEntrypointSoftwareUpgrade // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *UpgradeEntrypointSoftwareUpgradeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointSoftwareUpgrade) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(UpgradeEntrypointSoftwareUpgrade) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *UpgradeEntrypointSoftwareUpgradeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *UpgradeEntrypointSoftwareUpgradeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// UpgradeEntrypointSoftwareUpgrade represents a SoftwareUpgrade event raised by the UpgradeEntrypoint contract. +type UpgradeEntrypointSoftwareUpgrade struct { + Name string + Height int64 + Info string + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSoftwareUpgrade is a free log retrieval operation binding the contract event 0x112749e79b2098b58eab36c21f123b2883c3ecbbb4f41623a744fa6d9b3e37c6. +// +// Solidity: event SoftwareUpgrade(string name, int64 height, string info) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) FilterSoftwareUpgrade(opts *bind.FilterOpts) (*UpgradeEntrypointSoftwareUpgradeIterator, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.FilterLogs(opts, "SoftwareUpgrade") + if err != nil { + return nil, err + } + return &UpgradeEntrypointSoftwareUpgradeIterator{contract: _UpgradeEntrypoint.contract, event: "SoftwareUpgrade", logs: logs, sub: sub}, nil +} + +// WatchSoftwareUpgrade is a free log subscription operation binding the contract event 0x112749e79b2098b58eab36c21f123b2883c3ecbbb4f41623a744fa6d9b3e37c6. +// +// Solidity: event SoftwareUpgrade(string name, int64 height, string info) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) WatchSoftwareUpgrade(opts *bind.WatchOpts, sink chan<- *UpgradeEntrypointSoftwareUpgrade) (event.Subscription, error) { + + logs, sub, err := _UpgradeEntrypoint.contract.WatchLogs(opts, "SoftwareUpgrade") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(UpgradeEntrypointSoftwareUpgrade) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "SoftwareUpgrade", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSoftwareUpgrade is a log parse operation binding the contract event 0x112749e79b2098b58eab36c21f123b2883c3ecbbb4f41623a744fa6d9b3e37c6. +// +// Solidity: event SoftwareUpgrade(string name, int64 height, string info) +func (_UpgradeEntrypoint *UpgradeEntrypointFilterer) ParseSoftwareUpgrade(log types.Log) (*UpgradeEntrypointSoftwareUpgrade, error) { + event := new(UpgradeEntrypointSoftwareUpgrade) + if err := _UpgradeEntrypoint.contract.UnpackLog(event, "SoftwareUpgrade", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/bindings/upgradeentrypoint_more.go b/contracts/bindings/upgradeentrypoint_more.go new file mode 100644 index 00000000..62769162 --- /dev/null +++ b/contracts/bindings/upgradeentrypoint_more.go @@ -0,0 +1,14 @@ +package bindings + +import ( + _ "embed" +) + +const ( + UpgradeEntrypointDeployedBytecode = "0x60406080815260048036101561001457600080fd5b600091823560e01c90816355f2916614610713578163715018a61461062b57816379ba5097146105805781638da5cb5b1461050e578163c4d66de8146102bb578163e30c397814610249578163ef176e0e1461016c575063f2fde38b1461007a57600080fd5b346101685760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610168573573ffffffffffffffffffffffffffffffffffffffff808216809203610164576100d16107e3565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b5080fd5b9050346101645760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101645767ffffffffffffffff918035838111610245576101bd9036908301610771565b919092602435908160070b809203610241576044359586116102415761020a61023b937f112749e79b2098b58eab36c21f123b2883c3ecbbb4f41623a744fa6d9b3e37c697369101610771565b916102136107e3565b61022981519788976060895260608901916107a4565b936020870152858403908601526107a4565b0390a180f35b8680fd5b8480fd5b83903461016857817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101685760209073ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0054169051908152f35b919050346101645760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016457803573ffffffffffffffffffffffffffffffffffffffff811690818103610245577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549260ff84871c16159367ffffffffffffffff811680159081610506575b60011490816104fc575b1590816104f3575b506104cb578460017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000008316178755610496575b501561041357506103b4906103a7610907565b6103af610907565b610853565b6103bc578280f35b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a138808280f35b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602f60248201527f55706772616465456e747279706f696e743a206f776e65722063616e6e6f742060448201527f6265207a65726f206164647265737300000000000000000000000000000000006064820152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000166801000000000000000117855538610394565b8287517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610361565b303b159150610359565b86915061034f565b83903461016857817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101685760209073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930054169051908152f35b90503461016457827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610164573373ffffffffffffffffffffffffffffffffffffffff7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c005416036105fb57826105f833610853565b80f35b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b833461071057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610710576106626107e3565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008181541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549182169055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b833461071057807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126107105761074a6107e3565b7f812c36a273ff85c1871fc7c629fa4c010821a53f3a2492dcc0ea00a396b6a64f8180a180f35b9181601f8401121561079f5782359167ffffffffffffffff831161079f576020838186019501011161079f57565b600080fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416330361082357565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd5b7fffffffffffffffffffffffff0000000000000000000000000000000000000000907f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c008281541690557f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080549073ffffffffffffffffffffffffffffffffffffffff80931680948316179055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561093657565b60046040517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fdfea26469706673582212201f8e41e67a182e0c945e2b639310775738680205d656f26b067c62fc5f1f146b64736f6c63430008170033" +) + +//go:embed upgradeentrypoint_storage_layout.json +var upgradeentrypointStorageLayoutJSON []byte + +var UpgradeEntrypointStorageLayout = mustGetStorageLayout(upgradeentrypointStorageLayoutJSON) diff --git a/contracts/bindings/upgradeentrypoint_storage_layout.json b/contracts/bindings/upgradeentrypoint_storage_layout.json new file mode 100644 index 00000000..127dec9f --- /dev/null +++ b/contracts/bindings/upgradeentrypoint_storage_layout.json @@ -0,0 +1,4 @@ +{ + "storage": [], + "types": {} +}