From 56fae8b64ec3766a43d15d377f4ee4cbeedde681 Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Wed, 18 Sep 2024 16:13:04 -0400 Subject: [PATCH 1/6] rename staking folder to validatorManager --- .../ERC20TokenStakingManager.go | 2606 ++++++++++++++++ .../ExampleRewardCalculator.go | 327 ++ .../NativeTokenStakingManager.go | 2637 +++++++++++++++++ .../PoAValidatorManager.go | 1947 ++++++++++++ contracts/mocks/ExampleERC20.sol | 2 +- .../ERC20TokenStakingManager.sol | 0 .../ExampleRewardCalculator.sol | 0 .../NativeTokenStakingManager.sol | 0 .../PoAValidatorManager.sol | 0 .../PoSValidatorManager.sol | 0 .../{staking => validatorManager}/README.md | 0 .../ValidatorManager.sol | 0 .../ValidatorMessages.sol | 0 .../interfaces/IERC20Mintable.sol | 0 .../interfaces/IERC20TokenStakingManager.sol | 0 .../interfaces/INativeTokenStakingManager.sol | 0 .../interfaces/IPoAValidatorManager.sol | 0 .../interfaces/IPoSValidatorManager.sol | 0 .../interfaces/IRewardCalculator.sol | 0 .../interfaces/IValidatorManager.sol | 0 .../tests/ERC20TokenStakingManagerTests.t.sol | 0 .../tests/ExamplesRewardCalculatorTests.t.sol | 0 .../NativeTokenStakingManagerTests.t.sol | 0 .../tests/PoAValidatorManagerTests.t.sol | 0 .../tests/PoSValidatorManagerTests.t.sol | 0 .../tests/ValidatorManagerTests.t.sol | 0 .../tests/ValidatorMessagesTests.t.sol | 0 27 files changed, 7518 insertions(+), 1 deletion(-) create mode 100644 abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go create mode 100644 abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go create mode 100644 abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go create mode 100644 abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go rename contracts/{staking => validatorManager}/ERC20TokenStakingManager.sol (100%) rename contracts/{staking => validatorManager}/ExampleRewardCalculator.sol (100%) rename contracts/{staking => validatorManager}/NativeTokenStakingManager.sol (100%) rename contracts/{staking => validatorManager}/PoAValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/PoSValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/README.md (100%) rename contracts/{staking => validatorManager}/ValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/ValidatorMessages.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IERC20Mintable.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IERC20TokenStakingManager.sol (100%) rename contracts/{staking => validatorManager}/interfaces/INativeTokenStakingManager.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IPoAValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IPoSValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IRewardCalculator.sol (100%) rename contracts/{staking => validatorManager}/interfaces/IValidatorManager.sol (100%) rename contracts/{staking => validatorManager}/tests/ERC20TokenStakingManagerTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/ExamplesRewardCalculatorTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/NativeTokenStakingManagerTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/PoAValidatorManagerTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/PoSValidatorManagerTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/ValidatorManagerTests.t.sol (100%) rename contracts/{staking => validatorManager}/tests/ValidatorMessagesTests.t.sol (100%) diff --git a/abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go new file mode 100644 index 000000000..7c508d3ba --- /dev/null +++ b/abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go @@ -0,0 +1,2606 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20tokenstakingmanager + +import ( + "errors" + "math/big" + "strings" + + "github.com/ava-labs/subnet-evm/accounts/abi" + "github.com/ava-labs/subnet-evm/accounts/abi/bind" + "github.com/ava-labs/subnet-evm/core/types" + "github.com/ava-labs/subnet-evm/interfaces" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = interfaces.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// InitialValidator is an auto generated low-level Go binding around an user-defined struct. +type InitialValidator struct { + NodeID [32]byte + Weight uint64 + BlsPublicKey []byte +} + +// PoSValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. +type PoSValidatorManagerSettings struct { + BaseSettings ValidatorManagerSettings + MinimumStakeAmount *big.Int + MaximumStakeAmount *big.Int + MinimumStakeDuration uint64 + MinimumDelegationFeeBips uint16 + MaximumStakeMultiplier uint8 + RewardCalculator common.Address +} + +// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. +type SubnetConversionData struct { + ConvertSubnetTxID [32]byte + ValidatorManagerBlockchainID [32]byte + ValidatorManagerAddress common.Address + InitialValidators []InitialValidator +} + +// Validator is an auto generated low-level Go binding around an user-defined struct. +type Validator struct { + Status uint8 + NodeID [32]byte + StartingWeight uint64 + MessageNonce uint64 + Weight uint64 + StartedAt uint64 + EndedAt uint64 +} + +// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. +type ValidatorManagerSettings struct { + PChainBlockchainID [32]byte + SubnetID [32]byte + ChurnPeriodSeconds uint64 + MaximumChurnPercentage uint8 +} + +// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. +type ValidatorRegistrationInput struct { + NodeID [32]byte + RegistrationExpiry uint64 + BlsPublicKey []byte +} + +// ERC20TokenStakingManagerMetaData contains all meta data concerning the ERC20TokenStakingManager contract. +var ERC20TokenStakingManagerMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeDelegatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndDelegation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structPoSValidatorManagerSettings\",\"components\":[{\"name\":\"baseSettings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"minimumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minimumStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rewardCalculator\",\"type\":\"address\",\"internalType\":\"contractIRewardCalculator\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20Mintable\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeDelegatorRegistration\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"delegationAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"delegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"minStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendUpdateDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"valueToWeight\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"weightToValue\",\"inputs\":[{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"event\",\"name\":\"DelegationEnded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorAdded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"delegatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"delegatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRegistered\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"startTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRemovalInitialized\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615e8b380380615e8b83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615d3e8061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c806366435abf116100d9578063b771b3bc11610093578063c974d1b61161006e578063c974d1b61461037a578063d5f20ff614610382578063df93d8de146103a2578063eb0acb89146103ac575f80fd5b8063b771b3bc1461032e578063ba3a4b9714610354578063bee0a03f14610367575f80fd5b806366435abf146102c757806376f78621146102da5780638280a25a146102ed57806398f3e2b4146102f55780639e1bc4ef14610308578063a3a65e481461031b575f80fd5b806335455ded1161012a57806335455ded14610242578063467ef06f1461025e5780635297fae61461027157806360305d621461028457806361e2f490146102a157806362065856146102b4575f80fd5b80630118acc4146101715780630322ed98146101865780630cdd098514610199578063151d30d1146101ea5780632e2194d814610204578063330a0a3a1461022f575b5f80fd5b61018461017f3660046150a1565b6103bf565b005b6101846101943660046150dc565b610862565b6101d76101a73660046150dc565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b6101f2600a81565b60405160ff90911681526020016101e1565b6102176102123660046150dc565b610a1b565b6040516001600160401b0390911681526020016101e1565b61018461023d366004615107565b610a31565b61024b61271081565b60405161ffff90911681526020016101e1565b61018461026c366004615145565b610b10565b61018461027f36600461515e565b610bb0565b61028c601481565b60405163ffffffff90911681526020016101e1565b6101846102af366004615186565b610d85565b6101d76102c23660046151ea565b6113b9565b6102176102d53660046150dc565b6113d2565b6101846102e83660046150a1565b6113e6565b6101f2603081565b61018461030336600461515e565b6115e0565b6101d7610316366004615203565b611862565b610184610329366004615145565b61188e565b61033c6005600160991b0181565b6040516001600160a01b0390911681526020016101e1565b6101846103623660046150dc565b611a46565b6101846103753660046150dc565b611ccc565b6101f2601481565b6103956103903660046150dc565b611de0565b6040516101e19190615237565b6102176202a30081565b6101d76103ba3660046152fe565b611ea8565b5f8381527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d06602052604080822060018101548251610100810190935281545f80516020615c92833981519152949193919290829060ff16600481111561042757610427615223565b600481111561043857610438615223565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b909104811660c083015260039092015490911660e09091015290505f6104b483611de0565b90506002825160048111156104cb576104cb615223565b1461051d5760405162461bcd60e51b815260206004820152602a60248201525f80516020615cb28339815191526044820152696e6f742061637469766560b01b60648201526084015b60405180910390fd5b60208201516001600160a01b031633146105825760405162461bcd60e51b815260206004820152603360248201525f80516020615cb28339815191526044820152723737ba1037bbb732b210313c9039b2b73232b960691b6064820152608401610514565b6003825280515f90600290600581111561059e5761059e615223565b036105f55786156105b6576105b38487611edd565b90505b5f836060015183608001516105cb9190615377565b90506105d78582612179565b506001600160401b0390811660e0860152421660a085015250610629565b505f83815260098501602052604090205460608201516001600160401b0390811660e085015260c0830151811660a0850152165b8460040160089054906101000a90046001600160a01b03166001600160a01b031663778c06b561065c85606001516113b9565b60a0808601516080880151918801516040516001600160e01b031960e087901b16815260048101949094526001600160401b03918216602485015291811660448401529081166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa1580156106d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fd9190615397565b5f898152600787016020908152604080832093909355600688019052208351815485929190829060ff1916600183600481111561073c5761073c615223565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560408083015160018301556060830151600283018054608086015160a08088015160c08901516001600160401b03908116600160c01b026001600160c01b03928216600160801b02929092166001600160801b03948216600160401b026001600160801b0319909616978216979097179490941792909216949094171790915560e090940151600390930180549390941667ffffffffffffffff199390931692909217909255840151905185918a917f5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c6991610850916001600160401b0391909116815260200190565b60405180910390a35050505050505050565b5f8181525f80516020615d128339815191526020526040808220815160e0810190925280545f80516020615cd283398151915293929190829060ff1660058111156108af576108af615223565b60058111156108c0576108c0615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091508151600581111561092f5761092f615223565b146109945760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b6064820152608401610514565b6005600160991b016001600160a01b031663ee5b48eb6109b98584606001515f6122d0565b6040518263ffffffff1660e01b81526004016109d591906153d0565b6020604051808303815f875af11580156109f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a159190615397565b50505050565b5f610a2b64e8d4a5100083615402565b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610a7a575080546001600160401b03808416911610155b15610a985760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610ac384846124f7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615c928339815191525f80610b2984612511565b91509150610b368261285b565b610b405750505050565b5f8281526005840160205260409020546001600160a01b0316600482516005811115610b6e57610b6e615223565b03610b93575f83815260088501602052604081208054919055610b918282612896565b505b610ba981610ba484604001516113b9565b61290c565b5050505050565b5f80516020615c928339815191525f610bc88461292f565b90505f80610bd98360400151612b09565b50915091505f610be883611de0565b9050816001600160401b031681606001516001600160401b03161015610c205760405162461bcd60e51b815260040161051490615421565b5f8681526006860160205260409020600201546001600160401b03808416600160c01b909204161115610c655760405162461bcd60e51b815260040161051490615463565b60015f87815260068701602052604090205460ff166004811115610c8b57610c8b615223565b14610cf45760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a2064656c65676174696f6e4960448201527211081b9bdd081c195b991a5b99c81859191959606a1b6064820152608401610514565b5f868152600686016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160401b026fffffffffffffffff000000000000000019909316929092179092559251928352841691859189917f245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064910160405180910390a450505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f80516020615cd28339815191529060ff1615610e225760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b6064820152608401610514565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e899190615397565b836020013514610eeb5760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b6064820152608401610514565b30610efc60608501604086016154ac565b6001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b6064820152608401610514565b5f610f7c60608501856154c7565b91505f9050843560208601356014610f9a6060890160408a016154ac565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff1610156112c9575f61101a60608901896154c7565b8363ffffffff168181106110305761103061550c565b90506020028101906110429190615520565b61104b906155d0565b80515f818152600989016020526040902054919250901561107e5760405162461bcd60e51b815260040161051490615667565b84825f0151836020015184604001516040516020016110a094939291906156af565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f916002916110ee91906156fe565b602060405180830381855afa158015611109573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061112c9190615397565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff191660018360058111156111b8576111b8615223565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff19169284169290921790915584015161126b91168661570f565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a3505050806112c290615722565b9050610ffe565b50600584018190555f6112db8661292f565b90505f6112eb8260400151612d44565b9050806002856040516112fe91906156fe565b602060405180830381855afa158015611319573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061133c9190615397565b146113a05760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b6064820152608401610514565b505050600a909201805460ff1916600117905550505050565b5f610a2b6001600160401b03831664e8d4a51000615744565b5f6113dc82611de0565b6080015192915050565b5f80516020615c928339815191525f6113fe85612eb6565b5f86815260058401602052604090205460a082015191925061143191600160b01b9091046001600160401b03169061575b565b6001600160401b03168160c001516001600160401b031610156114b25760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a206d696e696d756d207374616044820152721ad948191d5c985d1a5bdb881b9bdd081b595d606a1b6064820152608401610514565b8315610ba9575f6114c38685611edd565b5f87815260098501602052604090819020805467ffffffffffffffff19166001600160401b038416179055600485015490840151919250600160401b90046001600160a01b03169063778c06b59061151a906113b9565b60a085015160c086015160405160e085901b6001600160e01b031916815260048101939093526001600160401b0391821660248401819052604484015281166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa158015611590573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b49190615397565b5f878152600885016020526040812080549091906115d390849061570f565b9091555050505050505050565b6115e8613131565b5f80516020615c928339815191525f6116008461292f565b90505f806116118360400151612b09565b50915091505f61162083611de0565b5f8781526006870160205260408082208151610100810190925280549394509192909190829060ff16600481111561165a5761165a615223565b600481111561166b5761166b615223565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b03808216606080850191909152600160401b830482166080850152600160801b8304821660a0850152600160c01b909204811660c0840152600390930154831660e0909201919091528401519192508481169116101561170a5760405162461bcd60e51b815260040161051490615421565b826001600160401b03168160e001516001600160401b031611156117405760405162461bcd60e51b815260040161051490615463565b60038151600481111561175557611755615223565b146117a95760405162461bcd60e51b815260206004820152603160248201525f80516020615cb28339815191526044820152701b9bdd081c195b991a5b99c81859191959607a1b6064820152608401610514565b5f8781526006870160209081526040808320805460ff191660041790558382015160078a01909252909120546117df9190612896565b856007015f8881526020019081526020015f205f905561180a8160200151610ba483606001516113b9565b826001600160401b031684887f52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab60405160405180910390a450505050505061185e60015f80516020615cf283398151915255565b5050565b5f61186b613131565b61187683338461317b565b9050610a2b60015f80516020615cf283398151915255565b5f80516020615cd28339815191525f6118a68361292f565b90505f806118b78360400151613535565b91509150806119195760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b6064820152608401610514565b5f828152600785016020526040812080546119339061577b565b9050118015611965575060015f83815260088601602052604090205460ff16600581111561196357611963615223565b145b6119815760405162461bcd60e51b8152600401610514906157b3565b5f828152600785016020526040812061199991614ff1565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0660205260408082208151610100810190925280545f80516020615c9283398151915293929190829060ff166004811115611aa757611aa7615223565b6004811115611ab857611ab8615223565b8152815461010090046001600160a01b03166020820152600180830154604083015260028301546001600160401b038082166060850152600160401b820481166080850152600160801b8204811660a0850152600160c01b909104811660c084015260039093015490921660e09091015290915081516004811115611b3f57611b3f615223565b1480611b5d5750600381516004811115611b5b57611b5b615223565b145b611bb15760405162461bcd60e51b815260206004820152603260248201525f80516020615cb2833981519152604482015271737461747573206e6f742070656e64696e6760701b6064820152608401610514565b5f611bbf8260400151611de0565b905080606001516001600160401b03165f03611c435760405162461bcd60e51b815260206004820152603f60248201527f506f5356616c696461746f724d616e616765723a20636f756c64206e6f74206660448201527f696e642076616c696461746f7220666f722064656c65676174696f6e204944006064820152608401610514565b6005600160991b016001600160a01b031663ee5b48eb611c708460400151846060015185608001516122d0565b6040518263ffffffff1660e01b8152600401611c8c91906153d0565b6020604051808303815f875af1158015611ca8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba99190615397565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f80516020615cd2833981519152929190611d149061577b565b9050118015611d46575060015f83815260088301602052604090205460ff166005811115611d4457611d44615223565b145b611d625760405162461bcd60e51b8152600401610514906157b3565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91611d9b91906004016157fa565b6020604051808303815f875af1158015611db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ddb9190615397565b505050565b611de8615028565b5f8281525f80516020615d12833981519152602052604090819020815160e0810190925280545f80516020615cd2833981519152929190829060ff166005811115611e3557611e35615223565b6005811115611e4657611e46615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b5f611eb1613131565b611ebd858585856136d6565b9050611ed560015f80516020615cf283398151915255565b949350505050565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015611f28573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f4f919081019061588f565b9150915080611fb25760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642077617260448201526870206d65737361676560b81b6064820152608401610514565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120199190615397565b82511461207d5760405162461bcd60e51b815260206004820152602c60248201527f506f5356616c696461746f724d616e616765723a20696e76616c696420736f7560448201526b1c98d94818da185a5b88125160a21b6064820152608401610514565b60208201516001600160a01b0316156120f35760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b6064820152608401610514565b5f80612102846040015161394b565b9150915081871461216f5760405162461bcd60e51b815260206004820152603160248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964207570746044820152701a5b59481d985b1a59185d1a5bdb881251607a1b6064820152608401610514565b9695505050505050565b5f8281525f80516020615d12833981519152602052604081206002015481905f80516020615cd283398151915290600160801b90046001600160401b03166121c18582613b23565b5f6121cb87613d31565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb61221b8a858b6122d0565b6040518263ffffffff1660e01b815260040161223791906153d0565b6020604051808303815f875af1158015612253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122779190615397565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b600281101561234957612309816001615961565b612314906008615744565b5081515f9083908390811061232b5761232b61550c565b60200101906001600160f81b03191690815f1a9053506001016122f5565b505f5b60048110156123b457612360816003615961565b61236b906008615744565b600263ffffffff16901c60f81b82826002612386919061570f565b815181106123965761239661550c565b60200101906001600160f81b03191690815f1a90535060010161234c565b505f5b6020811015612416576123cb81601f615961565b6123d6906008615744565b86901c60f81b826123e883600661570f565b815181106123f8576123f861550c565b60200101906001600160f81b03191690815f1a9053506001016123b7565b505f5b60088110156124815761242d816007615961565b612438906008615744565b6001600160401b038616901c60f81b8261245383602661570f565b815181106124635761246361550c565b60200101906001600160f81b03191690815f1a905350600101612419565b505f5b60088110156124ec57612498816007615961565b6124a3906008615744565b6001600160401b038516901c60f81b826124be83602e61570f565b815181106124ce576124ce61550c565b60200101906001600160f81b03191690815f1a905350600101612484565b5090505b9392505050565b6124ff613dc1565b61250882613e0c565b61185e81613e83565b5f61251a615028565b5f80516020615cd28339815191525f6125328561292f565b90505f806125438360400151613535565b9150915080156125a85760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b6064820152608401610514565b5f828152600885016020526040808220815160e081019092528054829060ff1660058111156125d9576125d9615223565b60058111156125ea576125ea615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f908251600581111561265b5761265b615223565b1480612679575060018251600581111561267757612677615223565b145b6126d85760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b6064820152608401610514565b6003825160058111156126ed576126ed615223565b036126fa575060046126fe565b5060055b6020808301515f9081526009880190915260408120558181600581111561272757612727615223565b9081600581111561273a5761273a615223565b9052505f84815260088701602052604090208251815484929190829060ff1916600183600581111561276e5761276e615223565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558151600581111561282257612822615223565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b5f9081527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0560205260409020546001600160a01b0316151590565b5f5f80516020615c7283398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b1580156128f1575f80fd5b505af1158015612903573d5f803e3d5ffd5b50505050505050565b5f80516020615c728339815191525461185e906001600160a01b03168383613f24565b60408051606080820183525f8083526020830181905292820152905f80516020615cd28339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156129a4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129cb919081019061588f565b9150915080612a2b5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b6064820152608401610514565b8254825114612a8e5760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b6064820152608401610514565b60208201516001600160a01b031615612b015760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b6064820152608401610514565b509392505050565b5f805f8351603614612b2d5760405162461bcd60e51b815260040161051490615974565b5f805b6002811015612b7c57612b44816001615961565b612b4f906008615744565b61ffff16868281518110612b6557612b6561550c565b016020015160f81c901b9190911790600101612b30565b5061ffff811615612b9f5760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015612bfa57612bb6816003615961565b612bc1906008615744565b63ffffffff1687612bd383600261570f565b81518110612be357612be361550c565b016020015160f81c901b9190911790600101612ba2565b5063ffffffff8116600414612c215760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015612c7657612c3881601f615961565b612c43906008615744565b88612c4f83600661570f565b81518110612c5f57612c5f61550c565b016020015160f81c901b9190911790600101612c24565b505f805b6008811015612cd557612c8e816007615961565b612c99906008615744565b6001600160401b031689612cae83602661570f565b81518110612cbe57612cbe61550c565b016020015160f81c901b9190911790600101612c7a565b505f805b6008811015612d3457612ced816007615961565b612cf8906008615744565b6001600160401b03168a612d0d83602e61570f565b81518110612d1d57612d1d61550c565b016020015160f81c901b9190911790600101612cd9565b5091989097509095509350505050565b5f8151602614612d665760405162461bcd60e51b815260040161051490615974565b5f805b6002811015612db557612d7d816001615961565b612d88906008615744565b61ffff16848281518110612d9e57612d9e61550c565b016020015160f81c901b9190911790600101612d69565b5061ffff811615612dd85760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015612e3357612def816003615961565b612dfa906008615744565b63ffffffff1685612e0c83600261570f565b81518110612e1c57612e1c61550c565b016020015160f81c901b9190911790600101612ddb565b5063ffffffff811615612e585760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015612ead57612e6f81601f615961565b612e7a906008615744565b86612e8683600661570f565b81518110612e9657612e9661550c565b016020015160f81c901b9190911790600101612e5b565b50949350505050565b612ebe615028565b5f8281525f80516020615d128339815191526020526040808220815160e0810190925280545f80516020615cd283398151915293929190829060ff166005811115612f0b57612f0b615223565b6005811115612f1c57612f1c615223565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c09091015290915081516005811115612f8e57612f8e615223565b14612fea5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b6064820152608401610514565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff1916600183600581111561302e5761302e615223565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6130da8582612179565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f80516020615cf283398151915280546001190161316257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f80516020615cf283398151915255565b5f5f80516020615c928339815191528161319761021285613f83565b90505f6131a387611de0565b90506131ae8761285b565b61320b5760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a206e6f74206120506f53207660448201526730b634b230ba37b960c11b6064820152608401610514565b60028151600581111561322057613220615223565b1461327f5760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a2076616c696461746f72206e6044820152686f742061637469766560b81b6064820152608401610514565b5f828260800151613290919061575b565b600485015460408401519192506132b2916001600160401b0390911690615a47565b6001600160401b0316816001600160401b031611156133315760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a206d6178696d756d2076616c6044820152741a59185d1bdc881dd95a59da1d081c995858da1959605a1b6064820152608401610514565b5f8061333d8a84612179565b915091505f8a8360405160200161336b92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815282825280516020909101206101008301909152915080600181526001600160a01b038c1660208083019190915260408083018f90526001600160401b03808b1660608501525f6080850181905260a0850181905290881660c085015260e090930183905284835260068b01909152902081518154829060ff1916600183600481111561340657613406615223565b02179055506020828101518254610100600160a81b0319166101006001600160a01b039283160217835560408085015160018501556060808601516002860180546080808a015160a08b015160c08c01516001600160401b039687166001600160801b031990951694909417600160401b92871692909202919091176001600160801b0316600160801b918616919091026001600160c01b031617600160c01b928516929092029190911790915560e0909701516003909601805467ffffffffffffffff191696821696909617909555815189861681528a861694810194909452938b1690830152918101859052908c16918d9184917fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426910160405180910390a49a9950505050505050505050565b5f8082516027146135585760405162461bcd60e51b815260040161051490615974565b5f805b60028110156135a75761356f816001615961565b61357a906008615744565b61ffff168582815181106135905761359061550c565b016020015160f81c901b919091179060010161355b565b5061ffff8116156135ca5760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015613625576135e1816003615961565b6135ec906008615744565b63ffffffff16866135fe83600261570f565b8151811061360e5761360e61550c565b016020015160f81c901b91909117906001016135cd565b5063ffffffff811660031461364c5760405162461bcd60e51b815260040161051490615a00565b5f805b60208110156136a15761366381601f615961565b61366e906008615744565b8761367a83600661570f565b8151811061368a5761368a61550c565b016020015160f81c901b919091179060010161364f565b505f866026815181106136b6576136b661550c565b016020015191976001600160f81b03199092161515965090945050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d03545f905f80516020615c928339815191529061ffff861610801590613722575061271061ffff861611155b61373e5760405162461bcd60e51b815260040161051490615a72565b60028101546001600160401b0390811690851610156137b75760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d696e60448201526e1039ba30b5b290323ab930ba34b7b760891b6064820152608401610514565b805483101561381a5760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152687420746f6f206c6f7760b81b6064820152608401610514565b80600101548311156138815760405162461bcd60e51b815260206004820152602a60248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152690e840e8dede40d0d2ced60b31b6064820152608401610514565b5f61388b84613f83565b90505f61389782610a1b565b90505f6138a48983613fa6565b905060405180606001604052806138b83390565b6001600160a01b03908116825261ffff808c166020808501919091526001600160401b03808d166040958601525f8781526005909a0182529884902085518154928701519690950151909916600160b01b0267ffffffffffffffff60b01b1995909216600160a01b026001600160b01b031990911693909216929092171791909116179093555090915050949350505050565b5f808251602e1461396e5760405162461bcd60e51b815260040161051490615974565b5f805b60028110156139bd57613985816001615961565b613990906008615744565b61ffff168582815181106139a6576139a661550c565b016020015160f81c901b9190911790600101613971565b5061ffff8116156139e05760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015613a3b576139f7816003615961565b613a02906008615744565b63ffffffff1686613a1483600261570f565b81518110613a2457613a2461550c565b016020015160f81c901b91909117906001016139e3565b5063ffffffff8116600514613a625760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015613ab757613a7981601f615961565b613a84906008615744565b87613a9083600661570f565b81518110613aa057613aa061550c565b016020015160f81c901b9190911790600101613a65565b505f805b6008811015613b1657613acf816007615961565b613ada906008615744565b6001600160401b031688613aef83602661570f565b81518110613aff57613aff61550c565b016020015160f81c901b9190911790600101613abb565b5090969095509350505050565b5f80516020615cd28339815191525f6001600160401b038084169085161115613b5757613b508385615377565b9050613b64565b613b618484615377565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b0316606082015242911580613bc6575060028401548151613bc2916001600160401b03169061570f565b8210155b15613bec576001600160401b038316606082015281815260408101516020820152613c0b565b8281606001818151613bfe919061575b565b6001600160401b03169052505b6060810151613c1b906064615a47565b602082015160028601546001600160401b039290921691613c469190600160401b900460ff16615744565b1015613caa5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b6064820152608401610514565b856001600160401b031681604001818151613cc5919061570f565b9052506040810180516001600160401b0387169190613ce5908390615961565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f8181525f80516020615d128339815191526020526040812060020180545f80516020615cd283398151915291600160401b9091046001600160401b0316906008613d7b83615abd565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16613e0a57604051631afcd79f60e31b815260040160405180910390fd5b565b613e14613dc1565b613e1d8161450b565b613e25614524565b613e80608082013560a0830135613e4260e0850160c086016151ea565b613e53610100860160e08701615ad8565b61ffff16613e6961012087016101008801615af1565b613e7b610140880161012089016154ac565b614534565b50565b613e8b613dc1565b5f80516020615c728339815191526001600160a01b038216613f045760405162461bcd60e51b815260206004820152602c60248201527f4552433230546f6b656e5374616b696e674d616e616765723a207a65726f207460448201526b6f6b656e206164647265737360a01b6064820152608401610514565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b03838116602483015260448201839052611ddb91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614778565b5f610a2b825f80516020615c72833981519152546001600160a01b0316906147d9565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff166140315760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b6064820152608401610514565b5f80516020615cd28339815191524261405060408601602087016151ea565b6001600160401b0316116140c25760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b6064820152608401610514565b6140d260408501602086016151ea565b6001600160401b03166140e86202a3004261570f565b1161415b5760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e206675747572650000000000000000006064820152608401610514565b83356141b35760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b6064820152608401610514565b83355f908152600982016020526040902054156141e25760405162461bcd60e51b815260040161051490615667565b60306141f16040860186615b11565b9050146142565760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b6064820152608401610514565b614260835f613b23565b5f806142fa6040518060a0016040528085600101548152602001885f01358152602001876001600160401b031681526020018860200160208101906142a591906151ea565b6001600160401b031681526020016142c060408a018a615b11565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505091525061493b565b5f828152600786016020526040902091935091506143188282615b97565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb906143459085906004016153d0565b6020604051808303815f875af1158015614361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143859190615397565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff191660018360058111156143fd576143fd615223565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b916144dd918e01908e016151ea565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b614513613dc1565b61451b614cea565b613e8081614cf2565b61452c613dc1565b613e0a614e94565b61453c613dc1565b5f80516020615c92833981519152836145a85760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a207a65726f2064656c65676160448201526774696f6e2066656560c01b6064820152608401610514565b6127108411156145ca5760405162461bcd60e51b815260040161051490615a72565b858711156146325760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642073746160448201526e6b6520616d6f756e742072616e676560881b6064820152608401610514565b5f8360ff161161469f5760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a207a65726f206d6178696d75604482015271369039ba30b5b29036bab63a34b83634b2b960711b6064820152608401610514565b600a60ff841611156147115760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d617860448201527434b6bab69039ba30b5b29036bab63a34b83634b2b960591b6064820152608401610514565b95865560018601949094556002850180546001600160401b0390941667ffffffffffffffff19909416939093179092556003840155600490920180546001600160a01b03909216600160401b026001600160e01b031990921660ff90931692909217179055565b5f61478c6001600160a01b03841683614e9c565b905080515f141580156147b05750808060200190518101906147ae9190615c56565b155b15611ddb57604051635274afe760e01b81526001600160a01b0384166004820152602401610514565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038516906370a0823190602401602060405180830381865afa15801561481f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148439190615397565b905061485a6001600160a01b038516333086614ea9565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa15801561489e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148c29190615397565b90508181116149285760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610514565b6149328282615961565b95945050505050565b5f60608260800151516030146149a55760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b6064820152608401610514565b60408051608680825260c082019092525f916020820181803683370190505090505f5b6002811015614a1c576149dc816001615961565b6149e7906008615744565b5081515f908390839081106149fe576149fe61550c565b60200101906001600160f81b03191690815f1a9053506001016149c8565b505f5b6004811015614a8457614a33816003615961565b614a3e906008615744565b600160ff919091161c60f81b82614a5683600261570f565b81518110614a6657614a6661550c565b60200101906001600160f81b03191690815f1a905350600101614a1f565b505f5b6020811015614ae15784518160208110614aa357614aa361550c565b1a60f81b82614ab383600661570f565b81518110614ac357614ac361550c565b60200101906001600160f81b03191690815f1a905350600101614a87565b505f5b6020811015614b415784602001518160208110614b0357614b0361550c565b1a60f81b82614b1383602661570f565b81518110614b2357614b2361550c565b60200101906001600160f81b03191690815f1a905350600101614ae4565b505f5b6008811015614bb557614b58816007615961565b614b63906008615744565b60ff1685604001516001600160401b0316901c60f81b82826046614b87919061570f565b81518110614b9757614b9761550c565b60200101906001600160f81b03191690815f1a905350600101614b44565b505f5b6030811015614c205784608001518181518110614bd757614bd761550c565b01602001516001600160f81b03191682614bf283604e61570f565b81518110614c0257614c0261550c565b60200101906001600160f81b03191690815f1a905350600101614bb8565b505f5b6008811015614c9257614c37816007615961565b614c42906008615744565b60608601516001600160401b0390811691161c60f81b82614c6483607e61570f565b81518110614c7457614c7461550c565b60200101906001600160f81b03191690815f1a905350600101614c23565b50600281604051614ca391906156fe565b602060405180830381855afa158015614cbe573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190614ce19190615397565b94909350915050565b613e0a613dc1565b614cfa613dc1565b80355f80516020615cd283398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014614d466080840160608501615af1565b60ff161115614db35760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b6064820152608401610514565b5f614dc46080840160608501615af1565b60ff1611614e2c5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b6064820152608401610514565b614e3c6080830160608401615af1565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055614e6d60608301604084016151ea565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b613168613dc1565b60606124f083835f614ee2565b6040516001600160a01b038481166024830152838116604483015260648201839052610a159186918216906323b872dd90608401613f51565b606081471015614f075760405163cd78605960e01b8152306004820152602401610514565b5f80856001600160a01b03168486604051614f2291906156fe565b5f6040518083038185875af1925050503d805f8114614f5c576040519150601f19603f3d011682016040523d82523d5f602084013e614f61565b606091505b509150915061216f868383606082614f8157614f7c82614fc8565b6124f0565b8151158015614f9857506001600160a01b0384163b155b15614fc157604051639996b31560e01b81526001600160a01b0385166004820152602401610514565b50806124f0565b805115614fd85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614ffd9061577b565b5f825580601f1061500c575050565b601f0160209004905f5260205f2090810190613e809190615064565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115615078575f8155600101615065565b5090565b8015158114613e80575f80fd5b803563ffffffff8116811461509c575f80fd5b919050565b5f805f606084860312156150b3575f80fd5b8335925060208401356150c58161507c565b91506150d360408501615089565b90509250925092565b5f602082840312156150ec575f80fd5b5035919050565b6001600160a01b0381168114613e80575f80fd5b5f8082840361016081121561511a575f80fd5b61014080821215615129575f80fd5b849350830135905061513a816150f3565b809150509250929050565b5f60208284031215615155575f80fd5b6124f082615089565b5f806040838503121561516f575f80fd5b61517883615089565b946020939093013593505050565b5f8060408385031215615197575f80fd5b82356001600160401b038111156151ac575f80fd5b8301608081860312156151bd575f80fd5b91506151cb60208401615089565b90509250929050565b80356001600160401b038116811461509c575f80fd5b5f602082840312156151fa575f80fd5b6124f0826151d4565b5f8060408385031215615214575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b815160e08201906006811061525a57634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b036040840151166040830152606083015161529560608401826001600160401b03169052565b5060808301516152b060808401826001600160401b03169052565b5060a08301516152cb60a08401826001600160401b03169052565b5060c08301516152e660c08401826001600160401b03169052565b5092915050565b803561ffff8116811461509c575f80fd5b5f805f8060808587031215615311575f80fd5b84356001600160401b03811115615326575f80fd5b850160608188031215615337575f80fd5b9350615345602086016152ed565b9250615353604086016151d4565b9396929550929360600135925050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038281168282160390808211156152e6576152e6615363565b5f602082840312156153a7575f80fd5b5051919050565b5f5b838110156153c85781810151838201526020016153b0565b50505f910152565b602081525f82518060208401526153ee8160408501602087016153ae565b601f01601f19169190910160400192915050565b5f8261541c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526022908201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206e6f6e604082015261636560f01b606082015260800190565b60208082526029908201527f506f5356616c696461746f724d616e616765723a206e6f6e636520646f6573206040820152680dcdee840dac2e8c6d60bb1b606082015260800190565b5f602082840312156154bc575f80fd5b81356124f0816150f3565b5f808335601e198436030181126154dc575f80fd5b8301803591506001600160401b038211156154f5575f80fd5b6020019150600581901b36038213156122c9575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615534575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156155745761557461553e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156155a2576155a261553e565b604052919050565b5f6001600160401b038211156155c2576155c261553e565b50601f01601f191660200190565b5f606082360312156155e0575f80fd5b6155e8615552565b8235815260206155f98185016151d4565b8183015260408401356001600160401b03811115615615575f80fd5b840136601f820112615625575f80fd5b8035615638615633826155aa565b61557a565b818152368483850101111561564b575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f85516156c0818460208a016153ae565b80830190508581526001600160401b0360c01b8560c01b16602082015283516156f08160288401602088016153ae565b016028019695505050505050565b5f82516155348184602087016153ae565b80820180821115610a2b57610a2b615363565b5f63ffffffff80831681810361573a5761573a615363565b6001019392505050565b8082028115828204841417610a2b57610a2b615363565b6001600160401b038181168382160190808211156152e6576152e6615363565b600181811c9082168061578f57607f821691505b6020821081036157ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f845461580c8161577b565b806020870152604060018084165f811461582d576001811461584957615876565b60ff19851660408a0152604084151560051b8a01019550615876565b895f5260205f205f5b8581101561586d5781548b8201860152908301908801615852565b8a016040019650505b509398975050505050505050565b805161509c8161507c565b5f80604083850312156158a0575f80fd5b82516001600160401b03808211156158b6575f80fd5b90840190606082870312156158c9575f80fd5b6158d1615552565b825181526020808401516158e4816150f3565b828201526040840151838111156158f9575f80fd5b80850194505087601f85011261590d575f80fd5b8351925061591d615633846155aa565b8381528882858701011115615930575f80fd5b61593f848383018488016153ae565b80604084015250819550615954818801615884565b9450505050509250929050565b81810381811115610a2b57610a2b615363565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b6001600160401b03818116838216028082169190828114615a6a57615a6a615363565b505092915050565b6020808252602b908201527f506f5356616c696461746f724d616e616765723a20696e76616c69642064656c60408201526a65676174696f6e2066656560a81b606082015260800190565b5f6001600160401b0380831681810361573a5761573a615363565b5f60208284031215615ae8575f80fd5b6124f0826152ed565b5f60208284031215615b01575f80fd5b813560ff811681146124f0575f80fd5b5f808335601e19843603018112615b26575f80fd5b8301803591506001600160401b03821115615b3f575f80fd5b6020019150368190038213156122c9575f80fd5b601f821115611ddb57805f5260205f20601f840160051c81016020851015615b785750805b601f840160051c820191505b81811015610ba9575f8155600101615b84565b81516001600160401b03811115615bb057615bb061553e565b615bc481615bbe845461577b565b84615b53565b602080601f831160018114615bf7575f8415615be05750858301515b5f19600386901b1c1916600185901b178555615c4e565b5f85815260208120601f198616915b82811015615c2557888601518255948401946001909101908401615c06565b5085821015615c4257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215615c66575f80fd5b81516124f08161507c56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab004317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d00506f5356616c696461746f724d616e616765723a2064656c65676174696f6e20e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", +} + +// ERC20TokenStakingManagerABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20TokenStakingManagerMetaData.ABI instead. +var ERC20TokenStakingManagerABI = ERC20TokenStakingManagerMetaData.ABI + +// ERC20TokenStakingManagerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC20TokenStakingManagerMetaData.Bin instead. +var ERC20TokenStakingManagerBin = ERC20TokenStakingManagerMetaData.Bin + +// DeployERC20TokenStakingManager deploys a new Ethereum contract, binding an instance of ERC20TokenStakingManager to it. +func DeployERC20TokenStakingManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *ERC20TokenStakingManager, error) { + parsed, err := ERC20TokenStakingManagerMetaData.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(ERC20TokenStakingManagerBin), backend, init) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20TokenStakingManager{ERC20TokenStakingManagerCaller: ERC20TokenStakingManagerCaller{contract: contract}, ERC20TokenStakingManagerTransactor: ERC20TokenStakingManagerTransactor{contract: contract}, ERC20TokenStakingManagerFilterer: ERC20TokenStakingManagerFilterer{contract: contract}}, nil +} + +// ERC20TokenStakingManager is an auto generated Go binding around an Ethereum contract. +type ERC20TokenStakingManager struct { + ERC20TokenStakingManagerCaller // Read-only binding to the contract + ERC20TokenStakingManagerTransactor // Write-only binding to the contract + ERC20TokenStakingManagerFilterer // Log filterer for contract events +} + +// ERC20TokenStakingManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20TokenStakingManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20TokenStakingManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20TokenStakingManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20TokenStakingManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20TokenStakingManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20TokenStakingManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20TokenStakingManagerSession struct { + Contract *ERC20TokenStakingManager // 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 +} + +// ERC20TokenStakingManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20TokenStakingManagerCallerSession struct { + Contract *ERC20TokenStakingManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20TokenStakingManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20TokenStakingManagerTransactorSession struct { + Contract *ERC20TokenStakingManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20TokenStakingManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20TokenStakingManagerRaw struct { + Contract *ERC20TokenStakingManager // Generic contract binding to access the raw methods on +} + +// ERC20TokenStakingManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20TokenStakingManagerCallerRaw struct { + Contract *ERC20TokenStakingManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20TokenStakingManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20TokenStakingManagerTransactorRaw struct { + Contract *ERC20TokenStakingManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20TokenStakingManager creates a new instance of ERC20TokenStakingManager, bound to a specific deployed contract. +func NewERC20TokenStakingManager(address common.Address, backend bind.ContractBackend) (*ERC20TokenStakingManager, error) { + contract, err := bindERC20TokenStakingManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManager{ERC20TokenStakingManagerCaller: ERC20TokenStakingManagerCaller{contract: contract}, ERC20TokenStakingManagerTransactor: ERC20TokenStakingManagerTransactor{contract: contract}, ERC20TokenStakingManagerFilterer: ERC20TokenStakingManagerFilterer{contract: contract}}, nil +} + +// NewERC20TokenStakingManagerCaller creates a new read-only instance of ERC20TokenStakingManager, bound to a specific deployed contract. +func NewERC20TokenStakingManagerCaller(address common.Address, caller bind.ContractCaller) (*ERC20TokenStakingManagerCaller, error) { + contract, err := bindERC20TokenStakingManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerCaller{contract: contract}, nil +} + +// NewERC20TokenStakingManagerTransactor creates a new write-only instance of ERC20TokenStakingManager, bound to a specific deployed contract. +func NewERC20TokenStakingManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20TokenStakingManagerTransactor, error) { + contract, err := bindERC20TokenStakingManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerTransactor{contract: contract}, nil +} + +// NewERC20TokenStakingManagerFilterer creates a new log filterer instance of ERC20TokenStakingManager, bound to a specific deployed contract. +func NewERC20TokenStakingManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20TokenStakingManagerFilterer, error) { + contract, err := bindERC20TokenStakingManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerFilterer{contract: contract}, nil +} + +// bindERC20TokenStakingManager binds a generic wrapper to an already deployed contract. +func bindERC20TokenStakingManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20TokenStakingManagerMetaData.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerCaller.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerTransactor.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.contract.Transact(opts, method, params...) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "ADDRESS_LENGTH") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ADDRESSLENGTH() (uint32, error) { + return _ERC20TokenStakingManager.Contract.ADDRESSLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ADDRESSLENGTH() (uint32, error) { + return _ERC20TokenStakingManager.Contract.ADDRESSLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _ERC20TokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _ERC20TokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMDELEGATIONFEEBIPS(opts *bind.CallOpts) (uint16, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_DELEGATION_FEE_BIPS") + + if err != nil { + return *new(uint16), err + } + + out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) + + return out0, err + +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMSTAKEMULTIPLIERLIMIT(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_STAKE_MULTIPLIER_LIMIT") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_ERC20TokenStakingManager.CallOpts) +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { + return _ERC20TokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_ERC20TokenStakingManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "WARP_MESSENGER") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) WARPMESSENGER() (common.Address, error) { + return _ERC20TokenStakingManager.Contract.WARPMESSENGER(&_ERC20TokenStakingManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) WARPMESSENGER() (common.Address, error) { + return _ERC20TokenStakingManager.Contract.WARPMESSENGER(&_ERC20TokenStakingManager.CallOpts) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "activeValidators", nodeID) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _ERC20TokenStakingManager.Contract.ActiveValidators(&_ERC20TokenStakingManager.CallOpts, nodeID) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _ERC20TokenStakingManager.Contract.ActiveValidators(&_ERC20TokenStakingManager.CallOpts, nodeID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "getValidator", validationID) + + if err != nil { + return *new(Validator), err + } + + out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) + + return out0, err + +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _ERC20TokenStakingManager.Contract.GetValidator(&_ERC20TokenStakingManager.CallOpts, validationID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _ERC20TokenStakingManager.Contract.GetValidator(&_ERC20TokenStakingManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ValueToWeight(opts *bind.CallOpts, value *big.Int) (uint64, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "valueToWeight", value) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ValueToWeight(value *big.Int) (uint64, error) { + return _ERC20TokenStakingManager.Contract.ValueToWeight(&_ERC20TokenStakingManager.CallOpts, value) +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ValueToWeight(value *big.Int) (uint64, error) { + return _ERC20TokenStakingManager.Contract.ValueToWeight(&_ERC20TokenStakingManager.CallOpts, value) +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) WeightToValue(opts *bind.CallOpts, weight uint64) (*big.Int, error) { + var out []interface{} + err := _ERC20TokenStakingManager.contract.Call(opts, &out, "weightToValue", weight) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) WeightToValue(weight uint64) (*big.Int, error) { + return _ERC20TokenStakingManager.Contract.WeightToValue(&_ERC20TokenStakingManager.CallOpts, weight) +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) WeightToValue(weight uint64) (*big.Int, error) { + return _ERC20TokenStakingManager.Contract.WeightToValue(&_ERC20TokenStakingManager.CallOpts, weight) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteDelegatorRegistration(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "completeDelegatorRegistration", messageIndex, delegationID) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "completeEndDelegation", messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "completeEndValidation", messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteEndValidation(&_ERC20TokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteEndValidation(&_ERC20TokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex) +} + +// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) Initialize(opts *bind.TransactOpts, settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initialize", settings, token) +} + +// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) Initialize(settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.Initialize(&_ERC20TokenStakingManager.TransactOpts, settings, token) +} + +// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Initialize(settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.Initialize(&_ERC20TokenStakingManager.TransactOpts, settings, token) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeDelegatorRegistration", validationID, delegationAmount) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, subnetConversionData, messageIndex) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendEndValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendEndValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendRegisterValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendRegisterValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendUpdateDelegation(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "resendUpdateDelegation", delegationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) +} + +// ERC20TokenStakingManagerDelegationEndedIterator is returned from FilterDelegationEnded and is used to iterate over the raw logs and unpacked data for DelegationEnded events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegationEndedIterator struct { + Event *ERC20TokenStakingManagerDelegationEnded // 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 interfaces.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 *ERC20TokenStakingManagerDelegationEndedIterator) 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(ERC20TokenStakingManagerDelegationEnded) + 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(ERC20TokenStakingManagerDelegationEnded) + 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 *ERC20TokenStakingManagerDelegationEndedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerDelegationEndedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegationEnded struct { + DelegationID [32]byte + ValidationID [32]byte + Nonce uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerDelegationEndedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerDelegationEndedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil +} + +// WatchDelegationEnded is a free log subscription operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) + 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(ERC20TokenStakingManagerDelegationEnded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegationEnded", 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 +} + +// ParseDelegationEnded is a log parse operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*ERC20TokenStakingManagerDelegationEnded, error) { + event := new(ERC20TokenStakingManagerDelegationEnded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerDelegatorAddedIterator is returned from FilterDelegatorAdded and is used to iterate over the raw logs and unpacked data for DelegatorAdded events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorAddedIterator struct { + Event *ERC20TokenStakingManagerDelegatorAdded // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorAddedIterator) 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(ERC20TokenStakingManagerDelegatorAdded) + 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(ERC20TokenStakingManagerDelegatorAdded) + 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 *ERC20TokenStakingManagerDelegatorAddedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerDelegatorAdded represents a DelegatorAdded event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorAdded struct { + DelegationID [32]byte + ValidationID [32]byte + DelegatorAddress common.Address + Nonce uint64 + ValidatorWeight uint64 + DelegatorWeight uint64 + SetWeightMessageID [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorAdded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*ERC20TokenStakingManagerDelegatorAddedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerDelegatorAddedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil +} + +// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorAdded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorAdded, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + 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(ERC20TokenStakingManagerDelegatorAdded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", 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 +} + +// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorAdded(log types.Log) (*ERC20TokenStakingManagerDelegatorAdded, error) { + event := new(ERC20TokenStakingManagerDelegatorAdded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerDelegatorRegisteredIterator is returned from FilterDelegatorRegistered and is used to iterate over the raw logs and unpacked data for DelegatorRegistered events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorRegisteredIterator struct { + Event *ERC20TokenStakingManagerDelegatorRegistered // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorRegisteredIterator) 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(ERC20TokenStakingManagerDelegatorRegistered) + 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(ERC20TokenStakingManagerDelegatorRegistered) + 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 *ERC20TokenStakingManagerDelegatorRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerDelegatorRegistered represents a DelegatorRegistered event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorRegistered struct { + DelegationID [32]byte + ValidationID [32]byte + Nonce uint64 + StartTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerDelegatorRegisteredIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerDelegatorRegisteredIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil +} + +// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) + 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(ERC20TokenStakingManagerDelegatorRegistered) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", 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 +} + +// ParseDelegatorRegistered is a log parse operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*ERC20TokenStakingManagerDelegatorRegistered, error) { + event := new(ERC20TokenStakingManagerDelegatorRegistered) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerDelegatorRemovalInitializedIterator is returned from FilterDelegatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for DelegatorRemovalInitialized events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorRemovalInitializedIterator struct { + Event *ERC20TokenStakingManagerDelegatorRemovalInitialized // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) + 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) + 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 *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerDelegatorRemovalInitialized represents a DelegatorRemovalInitialized event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerDelegatorRemovalInitialized struct { + DelegationID [32]byte + ValidationID [32]byte + EndTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerDelegatorRemovalInitializedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerDelegatorRemovalInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil +} + +// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", 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 +} + +// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerDelegatorRemovalInitialized, error) { + event := new(ERC20TokenStakingManagerDelegatorRemovalInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitialValidatorCreatedIterator struct { + Event *ERC20TokenStakingManagerInitialValidatorCreated // 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 interfaces.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 *ERC20TokenStakingManagerInitialValidatorCreatedIterator) 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(ERC20TokenStakingManagerInitialValidatorCreated) + 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(ERC20TokenStakingManagerInitialValidatorCreated) + 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 *ERC20TokenStakingManagerInitialValidatorCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerInitialValidatorCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitialValidatorCreated struct { + ValidationID [32]byte + NodeID [32]byte + Weight *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*ERC20TokenStakingManagerInitialValidatorCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerInitialValidatorCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil +} + +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + 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(ERC20TokenStakingManagerInitialValidatorCreated) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 +} + +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*ERC20TokenStakingManagerInitialValidatorCreated, error) { + event := new(ERC20TokenStakingManagerInitialValidatorCreated) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitializedIterator struct { + Event *ERC20TokenStakingManagerInitialized // 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 interfaces.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 *ERC20TokenStakingManagerInitializedIterator) 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(ERC20TokenStakingManagerInitialized) + 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(ERC20TokenStakingManagerInitialized) + 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 *ERC20TokenStakingManagerInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerInitialized represents a Initialized event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitialized 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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC20TokenStakingManagerInitializedIterator, error) { + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerInitializedIterator{contract: _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialized) (event.Subscription, error) { + + logs, sub, err := _ERC20TokenStakingManager.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(ERC20TokenStakingManagerInitialized) + if err := _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitialized(log types.Log) (*ERC20TokenStakingManagerInitialized, error) { + event := new(ERC20TokenStakingManagerInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodCreatedIterator struct { + Event *ERC20TokenStakingManagerValidationPeriodCreated // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodCreatedIterator) 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(ERC20TokenStakingManagerValidationPeriodCreated) + 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(ERC20TokenStakingManagerValidationPeriodCreated) + 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 *ERC20TokenStakingManagerValidationPeriodCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerValidationPeriodCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodCreated struct { + ValidationID [32]byte + NodeID [32]byte + RegisterValidationMessageID [32]byte + Weight *big.Int + RegistrationExpiry uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerValidationPeriodCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + 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(ERC20TokenStakingManagerValidationPeriodCreated) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 +} + +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*ERC20TokenStakingManagerValidationPeriodCreated, error) { + event := new(ERC20TokenStakingManagerValidationPeriodCreated) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodEndedIterator struct { + Event *ERC20TokenStakingManagerValidationPeriodEnded // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodEndedIterator) 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(ERC20TokenStakingManagerValidationPeriodEnded) + 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(ERC20TokenStakingManagerValidationPeriodEnded) + 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 *ERC20TokenStakingManagerValidationPeriodEndedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerValidationPeriodEndedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodEnded struct { + ValidationID [32]byte + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*ERC20TokenStakingManagerValidationPeriodEndedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerValidationPeriodEndedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + 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(ERC20TokenStakingManagerValidationPeriodEnded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 +} + +// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*ERC20TokenStakingManagerValidationPeriodEnded, error) { + event := new(ERC20TokenStakingManagerValidationPeriodEnded) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodRegisteredIterator struct { + Event *ERC20TokenStakingManagerValidationPeriodRegistered // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) 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(ERC20TokenStakingManagerValidationPeriodRegistered) + 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(ERC20TokenStakingManagerValidationPeriodRegistered) + 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 *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidationPeriodRegistered struct { + ValidationID [32]byte + Weight *big.Int + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodRegisteredIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerValidationPeriodRegisteredIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) + 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(ERC20TokenStakingManagerValidationPeriodRegistered) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 +} + +// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*ERC20TokenStakingManagerValidationPeriodRegistered, error) { + event := new(ERC20TokenStakingManagerValidationPeriodRegistered) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidatorRemovalInitializedIterator struct { + Event *ERC20TokenStakingManagerValidatorRemovalInitialized // 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 interfaces.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 *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) 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(ERC20TokenStakingManagerValidatorRemovalInitialized) + 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(ERC20TokenStakingManagerValidatorRemovalInitialized) + 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 *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidatorRemovalInitialized struct { + ValidationID [32]byte + SetWeightMessageID [32]byte + Weight *big.Int + EndTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*ERC20TokenStakingManagerValidatorRemovalInitializedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerValidatorRemovalInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil +} + +// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + 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(ERC20TokenStakingManagerValidatorRemovalInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 +} + +// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerValidatorRemovalInitialized, error) { + event := new(ERC20TokenStakingManagerValidatorRemovalInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20TokenStakingManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidatorWeightUpdateIterator struct { + Event *ERC20TokenStakingManagerValidatorWeightUpdate // 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 interfaces.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 *ERC20TokenStakingManagerValidatorWeightUpdateIterator) 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(ERC20TokenStakingManagerValidatorWeightUpdate) + 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(ERC20TokenStakingManagerValidatorWeightUpdate) + 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 *ERC20TokenStakingManagerValidatorWeightUpdateIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TokenStakingManagerValidatorWeightUpdateIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20TokenStakingManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerValidatorWeightUpdate struct { + ValidationID [32]byte + Nonce uint64 + ValidatorWeight uint64 + SetWeightMessageID [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerValidatorWeightUpdateIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &ERC20TokenStakingManagerValidatorWeightUpdateIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil +} + +// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + 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(ERC20TokenStakingManagerValidatorWeightUpdate) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 +} + +// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*ERC20TokenStakingManagerValidatorWeightUpdate, error) { + event := new(ERC20TokenStakingManagerValidatorWeightUpdate) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go b/abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go new file mode 100644 index 000000000..d343cda87 --- /dev/null +++ b/abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go @@ -0,0 +1,327 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package examplerewardcalculator + +import ( + "errors" + "math/big" + "strings" + + "github.com/ava-labs/subnet-evm/accounts/abi" + "github.com/ava-labs/subnet-evm/accounts/abi/bind" + "github.com/ava-labs/subnet-evm/core/types" + "github.com/ava-labs/subnet-evm/interfaces" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = interfaces.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// ExampleRewardCalculatorMetaData contains all meta data concerning the ExampleRewardCalculator contract. +var ExampleRewardCalculatorMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"rewardBasisPoints_\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"SECONDS_IN_YEAR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"UPTIME_REWARDS_THRESHOLD_PERCENTAGE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateReward\",\"inputs\":[{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"validatorStartTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakingStartTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakingEndTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"uptimeSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rewardBasisPoints\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"}]", + Bin: "0x60a0604052348015600e575f80fd5b50604051610357380380610357833981016040819052602b91603b565b6001600160401b03166080526066565b5f60208284031215604a575f80fd5b81516001600160401b0381168114605f575f80fd5b9392505050565b6080516102d36100845f395f8181609e015261013a01526102d35ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80635dcc93911461004e578063778c06b51461006c578063afba878a1461007f578063bb65b24214610099575b5f80fd5b6100596301e1338081565b6040519081526020015b60405180910390f35b61005961007a3660046101b6565b6100d9565b610087605081565b60405160ff9091168152602001610063565b6100c07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610063565b5f60506100e68887610236565b6100f0919061025e565b67ffffffffffffffff1661010585606461025e565b67ffffffffffffffff16101561011c57505f61018f565b6127106301e1338061012e8888610236565b67ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff168b61016e919061028a565b610178919061028a565b61018291906102a7565b61018c91906102a7565b90505b979650505050505050565b803567ffffffffffffffff811681146101b1575f80fd5b919050565b5f805f805f805f60e0888a0312156101cc575f80fd5b873596506101dc6020890161019a565b95506101ea6040890161019a565b94506101f86060890161019a565b93506102066080890161019a565b925060a0880135915060c0880135905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b67ffffffffffffffff82811682821603908082111561025757610257610222565b5092915050565b67ffffffffffffffff81811683821602808216919082811461028257610282610222565b505092915050565b80820281158282048414176102a1576102a1610222565b92915050565b5f826102c157634e487b7160e01b5f52601260045260245ffd5b50049056fea164736f6c6343000819000a", +} + +// ExampleRewardCalculatorABI is the input ABI used to generate the binding from. +// Deprecated: Use ExampleRewardCalculatorMetaData.ABI instead. +var ExampleRewardCalculatorABI = ExampleRewardCalculatorMetaData.ABI + +// ExampleRewardCalculatorBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ExampleRewardCalculatorMetaData.Bin instead. +var ExampleRewardCalculatorBin = ExampleRewardCalculatorMetaData.Bin + +// DeployExampleRewardCalculator deploys a new Ethereum contract, binding an instance of ExampleRewardCalculator to it. +func DeployExampleRewardCalculator(auth *bind.TransactOpts, backend bind.ContractBackend, rewardBasisPoints_ uint64) (common.Address, *types.Transaction, *ExampleRewardCalculator, error) { + parsed, err := ExampleRewardCalculatorMetaData.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(ExampleRewardCalculatorBin), backend, rewardBasisPoints_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ExampleRewardCalculator{ExampleRewardCalculatorCaller: ExampleRewardCalculatorCaller{contract: contract}, ExampleRewardCalculatorTransactor: ExampleRewardCalculatorTransactor{contract: contract}, ExampleRewardCalculatorFilterer: ExampleRewardCalculatorFilterer{contract: contract}}, nil +} + +// ExampleRewardCalculator is an auto generated Go binding around an Ethereum contract. +type ExampleRewardCalculator struct { + ExampleRewardCalculatorCaller // Read-only binding to the contract + ExampleRewardCalculatorTransactor // Write-only binding to the contract + ExampleRewardCalculatorFilterer // Log filterer for contract events +} + +// ExampleRewardCalculatorCaller is an auto generated read-only Go binding around an Ethereum contract. +type ExampleRewardCalculatorCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExampleRewardCalculatorTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ExampleRewardCalculatorTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExampleRewardCalculatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ExampleRewardCalculatorFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExampleRewardCalculatorSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ExampleRewardCalculatorSession struct { + Contract *ExampleRewardCalculator // 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 +} + +// ExampleRewardCalculatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ExampleRewardCalculatorCallerSession struct { + Contract *ExampleRewardCalculatorCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ExampleRewardCalculatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ExampleRewardCalculatorTransactorSession struct { + Contract *ExampleRewardCalculatorTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ExampleRewardCalculatorRaw is an auto generated low-level Go binding around an Ethereum contract. +type ExampleRewardCalculatorRaw struct { + Contract *ExampleRewardCalculator // Generic contract binding to access the raw methods on +} + +// ExampleRewardCalculatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ExampleRewardCalculatorCallerRaw struct { + Contract *ExampleRewardCalculatorCaller // Generic read-only contract binding to access the raw methods on +} + +// ExampleRewardCalculatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ExampleRewardCalculatorTransactorRaw struct { + Contract *ExampleRewardCalculatorTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewExampleRewardCalculator creates a new instance of ExampleRewardCalculator, bound to a specific deployed contract. +func NewExampleRewardCalculator(address common.Address, backend bind.ContractBackend) (*ExampleRewardCalculator, error) { + contract, err := bindExampleRewardCalculator(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ExampleRewardCalculator{ExampleRewardCalculatorCaller: ExampleRewardCalculatorCaller{contract: contract}, ExampleRewardCalculatorTransactor: ExampleRewardCalculatorTransactor{contract: contract}, ExampleRewardCalculatorFilterer: ExampleRewardCalculatorFilterer{contract: contract}}, nil +} + +// NewExampleRewardCalculatorCaller creates a new read-only instance of ExampleRewardCalculator, bound to a specific deployed contract. +func NewExampleRewardCalculatorCaller(address common.Address, caller bind.ContractCaller) (*ExampleRewardCalculatorCaller, error) { + contract, err := bindExampleRewardCalculator(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ExampleRewardCalculatorCaller{contract: contract}, nil +} + +// NewExampleRewardCalculatorTransactor creates a new write-only instance of ExampleRewardCalculator, bound to a specific deployed contract. +func NewExampleRewardCalculatorTransactor(address common.Address, transactor bind.ContractTransactor) (*ExampleRewardCalculatorTransactor, error) { + contract, err := bindExampleRewardCalculator(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ExampleRewardCalculatorTransactor{contract: contract}, nil +} + +// NewExampleRewardCalculatorFilterer creates a new log filterer instance of ExampleRewardCalculator, bound to a specific deployed contract. +func NewExampleRewardCalculatorFilterer(address common.Address, filterer bind.ContractFilterer) (*ExampleRewardCalculatorFilterer, error) { + contract, err := bindExampleRewardCalculator(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ExampleRewardCalculatorFilterer{contract: contract}, nil +} + +// bindExampleRewardCalculator binds a generic wrapper to an already deployed contract. +func bindExampleRewardCalculator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ExampleRewardCalculatorMetaData.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 (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorCaller.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 (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorTransactor.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 (_ExampleRewardCalculator *ExampleRewardCalculatorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ExampleRewardCalculator.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 (_ExampleRewardCalculator *ExampleRewardCalculatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExampleRewardCalculator.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ExampleRewardCalculator *ExampleRewardCalculatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ExampleRewardCalculator.Contract.contract.Transact(opts, method, params...) +} + +// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. +// +// Solidity: function SECONDS_IN_YEAR() view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) SECONDSINYEAR(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ExampleRewardCalculator.contract.Call(opts, &out, "SECONDS_IN_YEAR") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. +// +// Solidity: function SECONDS_IN_YEAR() view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) SECONDSINYEAR() (*big.Int, error) { + return _ExampleRewardCalculator.Contract.SECONDSINYEAR(&_ExampleRewardCalculator.CallOpts) +} + +// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. +// +// Solidity: function SECONDS_IN_YEAR() view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) SECONDSINYEAR() (*big.Int, error) { + return _ExampleRewardCalculator.Contract.SECONDSINYEAR(&_ExampleRewardCalculator.CallOpts) +} + +// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. +// +// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) UPTIMEREWARDSTHRESHOLDPERCENTAGE(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ExampleRewardCalculator.contract.Call(opts, &out, "UPTIME_REWARDS_THRESHOLD_PERCENTAGE") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. +// +// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) +func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) UPTIMEREWARDSTHRESHOLDPERCENTAGE() (uint8, error) { + return _ExampleRewardCalculator.Contract.UPTIMEREWARDSTHRESHOLDPERCENTAGE(&_ExampleRewardCalculator.CallOpts) +} + +// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. +// +// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) UPTIMEREWARDSTHRESHOLDPERCENTAGE() (uint8, error) { + return _ExampleRewardCalculator.Contract.UPTIMEREWARDSTHRESHOLDPERCENTAGE(&_ExampleRewardCalculator.CallOpts) +} + +// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. +// +// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) CalculateReward(opts *bind.CallOpts, stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { + var out []interface{} + err := _ExampleRewardCalculator.contract.Call(opts, &out, "calculateReward", stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. +// +// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) CalculateReward(stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { + return _ExampleRewardCalculator.Contract.CalculateReward(&_ExampleRewardCalculator.CallOpts, stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) +} + +// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. +// +// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) CalculateReward(stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { + return _ExampleRewardCalculator.Contract.CalculateReward(&_ExampleRewardCalculator.CallOpts, stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) +} + +// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. +// +// Solidity: function rewardBasisPoints() view returns(uint64) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) RewardBasisPoints(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _ExampleRewardCalculator.contract.Call(opts, &out, "rewardBasisPoints") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. +// +// Solidity: function rewardBasisPoints() view returns(uint64) +func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) RewardBasisPoints() (uint64, error) { + return _ExampleRewardCalculator.Contract.RewardBasisPoints(&_ExampleRewardCalculator.CallOpts) +} + +// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. +// +// Solidity: function rewardBasisPoints() view returns(uint64) +func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) RewardBasisPoints() (uint64, error) { + return _ExampleRewardCalculator.Contract.RewardBasisPoints(&_ExampleRewardCalculator.CallOpts) +} diff --git a/abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go new file mode 100644 index 000000000..9cf250ac3 --- /dev/null +++ b/abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go @@ -0,0 +1,2637 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package nativetokenstakingmanager + +import ( + "errors" + "math/big" + "strings" + + "github.com/ava-labs/subnet-evm/accounts/abi" + "github.com/ava-labs/subnet-evm/accounts/abi/bind" + "github.com/ava-labs/subnet-evm/core/types" + "github.com/ava-labs/subnet-evm/interfaces" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = interfaces.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// InitialValidator is an auto generated low-level Go binding around an user-defined struct. +type InitialValidator struct { + NodeID [32]byte + Weight uint64 + BlsPublicKey []byte +} + +// PoSValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. +type PoSValidatorManagerSettings struct { + BaseSettings ValidatorManagerSettings + MinimumStakeAmount *big.Int + MaximumStakeAmount *big.Int + MinimumStakeDuration uint64 + MinimumDelegationFeeBips uint16 + MaximumStakeMultiplier uint8 + RewardCalculator common.Address +} + +// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. +type SubnetConversionData struct { + ConvertSubnetTxID [32]byte + ValidatorManagerBlockchainID [32]byte + ValidatorManagerAddress common.Address + InitialValidators []InitialValidator +} + +// Validator is an auto generated low-level Go binding around an user-defined struct. +type Validator struct { + Status uint8 + NodeID [32]byte + StartingWeight uint64 + MessageNonce uint64 + Weight uint64 + StartedAt uint64 + EndedAt uint64 +} + +// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. +type ValidatorManagerSettings struct { + PChainBlockchainID [32]byte + SubnetID [32]byte + ChurnPeriodSeconds uint64 + MaximumChurnPercentage uint8 +} + +// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. +type ValidatorRegistrationInput struct { + NodeID [32]byte + RegistrationExpiry uint64 + BlsPublicKey []byte +} + +// NativeTokenStakingManagerMetaData contains all meta data concerning the NativeTokenStakingManager contract. +var NativeTokenStakingManagerMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"NATIVE_MINTER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractINativeMinter\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeDelegatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndDelegation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structPoSValidatorManagerSettings\",\"components\":[{\"name\":\"baseSettings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"minimumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minimumStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rewardCalculator\",\"type\":\"address\",\"internalType\":\"contractIRewardCalculator\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeDelegatorRegistration\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"initializeEndDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"delegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"minStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendUpdateDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"valueToWeight\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"weightToValue\",\"inputs\":[{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"event\",\"name\":\"DelegationEnded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorAdded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"delegatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"delegatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRegistered\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"startTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRemovalInitialized\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615b3d380380615b3d83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6159f08061014d5f395ff3fe60806040526004361061017b575f3560e01c806362065856116100cd578063b771b3bc11610087578063c599e24f11610062578063c599e24f14610492578063c974d1b6146104a5578063d5f20ff6146104b9578063df93d8de146104e5575f80fd5b8063b771b3bc1461043a578063ba3a4b9714610454578063bee0a03f14610473575f80fd5b8063620658561461038b57806366435abf146103aa57806376f78621146103c95780638280a25a146103e857806398f3e2b4146103fc578063a3a65e481461041b575f80fd5b8063329c3e1211610138578063467ef06f11610113578063467ef06f146103055780635297fae61461032457806360305d621461034357806361e2f4901461036c575f80fd5b8063329c3e121461029857806335455ded146102ca57806340034a93146102f2575f80fd5b80630118acc41461017f5780630322ed98146101a05780630cdd0985146101bf578063151d30d11461021c5780631f7a9d8f146102425780632e2194d814610261575b5f80fd5b34801561018a575f80fd5b5061019e610199366004614df0565b6104fb565b005b3480156101ab575f80fd5b5061019e6101ba366004614e2b565b61099e565b3480156101ca575f80fd5b506102096101d9366004614e2b565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b348015610227575f80fd5b50610230600a81565b60405160ff9091168152602001610213565b34801561024d575f80fd5b5061019e61025c366004614e42565b610b57565b34801561026c575f80fd5b5061028061027b366004614e2b565b610c34565b6040516001600160401b039091168152602001610213565b3480156102a3575f80fd5b506102b26001600160991b0181565b6040516001600160a01b039091168152602001610213565b3480156102d5575f80fd5b506102df61271081565b60405161ffff9091168152602001610213565b610209610300366004614e80565b610c4a565b348015610310575f80fd5b5061019e61031f366004614ed4565b610c7e565b34801561032f575f80fd5b5061019e61033e366004614eed565b610d1e565b34801561034e575f80fd5b50610357601481565b60405163ffffffff9091168152602001610213565b348015610377575f80fd5b5061019e610386366004614f15565b610ef3565b348015610396575f80fd5b506102096103a5366004614f63565b611527565b3480156103b5575f80fd5b506102806103c4366004614e2b565b611540565b3480156103d4575f80fd5b5061019e6103e3366004614df0565b611554565b3480156103f3575f80fd5b50610230603081565b348015610407575f80fd5b5061019e610416366004614eed565b61174e565b348015610426575f80fd5b5061019e610435366004614ed4565b6119d0565b348015610445575f80fd5b506102b26005600160991b0181565b34801561045f575f80fd5b5061019e61046e366004614e2b565b611b88565b34801561047e575f80fd5b5061019e61048d366004614e2b565b611e0e565b6102096104a0366004614e2b565b611f22565b3480156104b0575f80fd5b50610230601481565b3480156104c4575f80fd5b506104d86104d3366004614e2b565b611f53565b6040516102139190614f90565b3480156104f0575f80fd5b506102806202a30081565b5f8381527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d06602052604080822060018101548251610100810190935281545f80516020615944833981519152949193919290829060ff16600481111561056357610563614f7c565b600481111561057457610574614f7c565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b909104811660c083015260039092015490911660e09091015290505f6105f083611f53565b905060028251600481111561060757610607614f7c565b146106595760405162461bcd60e51b815260206004820152602a60248201525f805160206159648339815191526044820152696e6f742061637469766560b01b60648201526084015b60405180910390fd5b60208201516001600160a01b031633146106be5760405162461bcd60e51b815260206004820152603360248201525f805160206159648339815191526044820152723737ba1037bbb732b210313c9039b2b73232b960691b6064820152608401610650565b6003825280515f9060029060058111156106da576106da614f7c565b036107315786156106f2576106ef848761201b565b90505b5f83606001518360800151610707919061505a565b905061071385826122b7565b506001600160401b0390811660e0860152421660a085015250610765565b505f83815260098501602052604090205460608201516001600160401b0390811660e085015260c0830151811660a0850152165b8460040160089054906101000a90046001600160a01b03166001600160a01b031663778c06b56107988560600151611527565b60a0808601516080880151918801516040516001600160e01b031960e087901b16815260048101949094526001600160401b03918216602485015291811660448401529081166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa158015610815573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610839919061507a565b5f898152600787016020908152604080832093909355600688019052208351815485929190829060ff1916600183600481111561087857610878614f7c565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560408083015160018301556060830151600283018054608086015160a08088015160c08901516001600160401b03908116600160c01b026001600160c01b03928216600160801b02929092166001600160801b03948216600160401b026001600160801b0319909616978216979097179490941792909216949094171790915560e090940151600390930180549390941667ffffffffffffffff199390931692909217909255840151905185918a917f5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c699161098c916001600160401b0391909116815260200190565b60405180910390a35050505050505050565b5f8181525f805160206159c48339815191526020526040808220815160e0810190925280545f8051602061598483398151915293929190829060ff1660058111156109eb576109eb614f7c565b60058111156109fc576109fc614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c09091015290915081516005811115610a6b57610a6b614f7c565b14610ad05760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b6064820152608401610650565b6005600160991b016001600160a01b031663ee5b48eb610af58584606001515f61240e565b6040518263ffffffff1660e01b8152600401610b1191906150b3565b6020604051808303815f875af1158015610b2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b51919061507a565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610ba0575080546001600160401b03808416911610155b15610bbe5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610be883612633565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f610c4464e8d4a51000836150e5565b92915050565b5f610c53612647565b610c5f8484843461267e565b9050610c7760015f805160206159a483398151915255565b9392505050565b5f805160206159448339815191525f80610c97846128fb565b91509150610ca482612c45565b610cae5750505050565b5f8281526005840160205260409020546001600160a01b0316600482516005811115610cdc57610cdc614f7c565b03610d01575f83815260088501602052604081208054919055610cff8282612c80565b505b610d1781610d128460400151611527565b612ce6565b5050505050565b5f805160206159448339815191525f610d3684612cf9565b90505f80610d478360400151612ed3565b50915091505f610d5683611f53565b9050816001600160401b031681606001516001600160401b03161015610d8e5760405162461bcd60e51b815260040161065090615104565b5f8681526006860160205260409020600201546001600160401b03808416600160c01b909204161115610dd35760405162461bcd60e51b815260040161065090615146565b60015f87815260068701602052604090205460ff166004811115610df957610df9614f7c565b14610e625760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a2064656c65676174696f6e4960448201527211081b9bdd081c195b991a5b99c81859191959606a1b6064820152608401610650565b5f868152600686016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160401b026fffffffffffffffff000000000000000019909316929092179092559251928352841691859189917f245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064910160405180910390a450505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f805160206159848339815191529060ff1615610f905760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b6064820152608401610650565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff7919061507a565b8360200135146110595760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b6064820152608401610650565b3061106a60608501604086016151a3565b6001600160a01b0316146110dc5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b6064820152608401610650565b5f6110ea60608501856151be565b91505f90508435602086013560146111086060890160408a016151a3565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff161015611437575f61118860608901896151be565b8363ffffffff1681811061119e5761119e615203565b90506020028101906111b09190615217565b6111b9906152c7565b80515f81815260098901602052604090205491925090156111ec5760405162461bcd60e51b81526004016106509061535e565b84825f01518360200151846040015160405160200161120e94939291906153a6565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f9160029161125c91906153f5565b602060405180830381855afa158015611277573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061129a919061507a565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff1916600183600581111561132657611326614f7c565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff1916928416929092179091558401516113d9911686615406565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a35050508061143090615419565b905061116c565b50600584018190555f61144986612cf9565b90505f611459826040015161310e565b90508060028560405161146c91906153f5565b602060405180830381855afa158015611487573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906114aa919061507a565b1461150e5760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b6064820152608401610650565b505050600a909201805460ff1916600117905550505050565b5f610c446001600160401b03831664e8d4a5100061543b565b5f61154a82611f53565b6080015192915050565b5f805160206159448339815191525f61156c85613277565b5f86815260058401602052604090205460a082015191925061159f91600160b01b9091046001600160401b031690615452565b6001600160401b03168160c001516001600160401b031610156116205760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a206d696e696d756d207374616044820152721ad948191d5c985d1a5bdb881b9bdd081b595d606a1b6064820152608401610650565b8315610d17575f611631868561201b565b5f87815260098501602052604090819020805467ffffffffffffffff19166001600160401b038416179055600485015490840151919250600160401b90046001600160a01b03169063778c06b59061168890611527565b60a085015160c086015160405160e085901b6001600160e01b031916815260048101939093526001600160401b0391821660248401819052604484015281166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611722919061507a565b5f87815260088501602052604081208054909190611741908490615406565b9091555050505050505050565b611756612647565b5f805160206159448339815191525f61176e84612cf9565b90505f8061177f8360400151612ed3565b50915091505f61178e83611f53565b5f8781526006870160205260408082208151610100810190925280549394509192909190829060ff1660048111156117c8576117c8614f7c565b60048111156117d9576117d9614f7c565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b03808216606080850191909152600160401b830482166080850152600160801b8304821660a0850152600160c01b909204811660c0840152600390930154831660e090920191909152840151919250848116911610156118785760405162461bcd60e51b815260040161065090615104565b826001600160401b03168160e001516001600160401b031611156118ae5760405162461bcd60e51b815260040161065090615146565b6003815160048111156118c3576118c3614f7c565b146119175760405162461bcd60e51b815260206004820152603160248201525f805160206159648339815191526044820152701b9bdd081c195b991a5b99c81859191959607a1b6064820152608401610650565b5f8781526006870160209081526040808320805460ff191660041790558382015160078a019092529091205461194d9190612c80565b856007015f8881526020019081526020015f205f90556119788160200151610d128360600151611527565b826001600160401b031684887f52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab60405160405180910390a45050505050506119cc60015f805160206159a483398151915255565b5050565b5f805160206159848339815191525f6119e883612cf9565b90505f806119f983604001516134f2565b9150915080611a5b5760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b6064820152608401610650565b5f82815260078501602052604081208054611a7590615472565b9050118015611aa7575060015f83815260088601602052604090205460ff166005811115611aa557611aa5614f7c565b145b611ac35760405162461bcd60e51b8152600401610650906154a4565b5f8281526007850160205260408120611adb91614d45565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0660205260408082208151610100810190925280545f8051602061594483398151915293929190829060ff166004811115611be957611be9614f7c565b6004811115611bfa57611bfa614f7c565b8152815461010090046001600160a01b03166020820152600180830154604083015260028301546001600160401b038082166060850152600160401b820481166080850152600160801b8204811660a0850152600160c01b909104811660c084015260039093015490921660e09091015290915081516004811115611c8157611c81614f7c565b1480611c9f5750600381516004811115611c9d57611c9d614f7c565b145b611cf35760405162461bcd60e51b815260206004820152603260248201525f80516020615964833981519152604482015271737461747573206e6f742070656e64696e6760701b6064820152608401610650565b5f611d018260400151611f53565b905080606001516001600160401b03165f03611d855760405162461bcd60e51b815260206004820152603f60248201527f506f5356616c696461746f724d616e616765723a20636f756c64206e6f74206660448201527f696e642076616c696461746f7220666f722064656c65676174696f6e204944006064820152608401610650565b6005600160991b016001600160a01b031663ee5b48eb611db284604001518460600151856080015161240e565b6040518263ffffffff1660e01b8152600401611dce91906150b3565b6020604051808303815f875af1158015611dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d17919061507a565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f80516020615984833981519152929190611e5690615472565b9050118015611e88575060015f83815260088301602052604090205460ff166005811115611e8657611e86614f7c565b145b611ea45760405162461bcd60e51b8152600401610650906154a4565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91611edd91906004016154eb565b6020604051808303815f875af1158015611ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1d919061507a565b505050565b5f611f2b612647565b611f36823334613693565b9050611f4e60015f805160206159a483398151915255565b919050565b611f5b614d7c565b5f8281525f805160206159c4833981519152602052604090819020815160e0810190925280545f80516020615984833981519152929190829060ff166005811115611fa857611fa8614f7c565b6005811115611fb957611fb9614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612066573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261208d9190810190615580565b91509150806120f05760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642077617260448201526870206d65737361676560b81b6064820152608401610650565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612157919061507a565b8251146121bb5760405162461bcd60e51b815260206004820152602c60248201527f506f5356616c696461746f724d616e616765723a20696e76616c696420736f7560448201526b1c98d94818da185a5b88125160a21b6064820152608401610650565b60208201516001600160a01b0316156122315760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b6064820152608401610650565b5f806122408460400151613a4a565b915091508187146122ad5760405162461bcd60e51b815260206004820152603160248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964207570746044820152701a5b59481d985b1a59185d1a5bdb881251607a1b6064820152608401610650565b9695505050505050565b5f8281525f805160206159c4833981519152602052604081206002015481905f8051602061598483398151915290600160801b90046001600160401b03166122ff8582613c22565b5f61230987613e30565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb6123598a858b61240e565b6040518263ffffffff1660e01b815260040161237591906150b3565b6020604051808303815f875af1158015612391573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b5919061507a565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b600281101561248757612447816001615652565b61245290600861543b565b5081515f9083908390811061246957612469615203565b60200101906001600160f81b03191690815f1a905350600101612433565b505f5b60048110156124f25761249e816003615652565b6124a990600861543b565b600263ffffffff16901c60f81b828260026124c49190615406565b815181106124d4576124d4615203565b60200101906001600160f81b03191690815f1a90535060010161248a565b505f5b60208110156125545761250981601f615652565b61251490600861543b565b86901c60f81b82612526836006615406565b8151811061253657612536615203565b60200101906001600160f81b03191690815f1a9053506001016124f5565b505f5b60088110156125bf5761256b816007615652565b61257690600861543b565b6001600160401b038616901c60f81b82612591836026615406565b815181106125a1576125a1615203565b60200101906001600160f81b03191690815f1a905350600101612557565b505f5b600881101561262a576125d6816007615652565b6125e190600861543b565b6001600160401b038516901c60f81b826125fc83602e615406565b8151811061260c5761260c615203565b60200101906001600160f81b03191690815f1a9053506001016125c2565b50949350505050565b61263b613ec0565b61264481613f0b565b50565b5f805160206159a483398151915280546001190161267857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d03545f905f805160206159448339815191529061ffff8616108015906126ca575061271061ffff861611155b6126e65760405162461bcd60e51b815260040161065090615665565b60028101546001600160401b03908116908516101561275f5760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d696e60448201526e1039ba30b5b290323ab930ba34b7b760891b6064820152608401610650565b80548310156127c25760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152687420746f6f206c6f7760b81b6064820152608401610650565b80600101548311156128295760405162461bcd60e51b815260206004820152602a60248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152690e840e8dede40d0d2ced60b31b6064820152608401610650565b825f61283482610c34565b90505f6128418983613f7f565b905060405180606001604052806128553390565b6001600160a01b03908116825261ffff808c166020808501919091526001600160401b03808d166040958601525f8781526005909a0182529884902085518154928701519690950151909916600160b01b0267ffffffffffffffff60b01b1995909216600160a01b026001600160b01b031990911693909216929092171791909116179093555090915050949350505050565b60015f805160206159a483398151915255565b5f612904614d7c565b5f805160206159848339815191525f61291c85612cf9565b90505f8061292d83604001516134f2565b9150915080156129925760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b6064820152608401610650565b5f828152600885016020526040808220815160e081019092528054829060ff1660058111156129c3576129c3614f7c565b60058111156129d4576129d4614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f9082516005811115612a4557612a45614f7c565b1480612a635750600182516005811115612a6157612a61614f7c565b145b612ac25760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b6064820152608401610650565b600382516005811115612ad757612ad7614f7c565b03612ae457506004612ae8565b5060055b6020808301515f90815260098801909152604081205581816005811115612b1157612b11614f7c565b90816005811115612b2457612b24614f7c565b9052505f84815260088701602052604090208251815484929190829060ff19166001836005811115612b5857612b58614f7c565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905581516005811115612c0c57612c0c614f7c565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b5f9081527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0560205260409020546001600160a01b0316151590565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015612ccc575f80fd5b505af1158015612cde573d5f803e3d5ffd5b505050505050565b6119cc6001600160a01b038316826144e4565b60408051606080820183525f8083526020830181905292820152905f805160206159848339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa158015612d6e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d959190810190615580565b9150915080612df55760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b6064820152608401610650565b8254825114612e585760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b6064820152608401610650565b60208201516001600160a01b031615612ecb5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b6064820152608401610650565b509392505050565b5f805f8351603614612ef75760405162461bcd60e51b8152600401610650906156b0565b5f805b6002811015612f4657612f0e816001615652565b612f1990600861543b565b61ffff16868281518110612f2f57612f2f615203565b016020015160f81c901b9190911790600101612efa565b5061ffff811615612f695760405162461bcd60e51b8152600401610650906156f9565b5f805b6004811015612fc457612f80816003615652565b612f8b90600861543b565b63ffffffff1687612f9d836002615406565b81518110612fad57612fad615203565b016020015160f81c901b9190911790600101612f6c565b5063ffffffff8116600414612feb5760405162461bcd60e51b81526004016106509061573c565b5f805b60208110156130405761300281601f615652565b61300d90600861543b565b88613019836006615406565b8151811061302957613029615203565b016020015160f81c901b9190911790600101612fee565b505f805b600881101561309f57613058816007615652565b61306390600861543b565b6001600160401b031689613078836026615406565b8151811061308857613088615203565b016020015160f81c901b9190911790600101613044565b505f805b60088110156130fe576130b7816007615652565b6130c290600861543b565b6001600160401b03168a6130d783602e615406565b815181106130e7576130e7615203565b016020015160f81c901b91909117906001016130a3565b5091989097509095509350505050565b5f81516026146131305760405162461bcd60e51b8152600401610650906156b0565b5f805b600281101561317f57613147816001615652565b61315290600861543b565b61ffff1684828151811061316857613168615203565b016020015160f81c901b9190911790600101613133565b5061ffff8116156131a25760405162461bcd60e51b8152600401610650906156f9565b5f805b60048110156131fd576131b9816003615652565b6131c490600861543b565b63ffffffff16856131d6836002615406565b815181106131e6576131e6615203565b016020015160f81c901b91909117906001016131a5565b5063ffffffff8116156132225760405162461bcd60e51b81526004016106509061573c565b5f805b602081101561262a5761323981601f615652565b61324490600861543b565b86613250836006615406565b8151811061326057613260615203565b016020015160f81c901b9190911790600101613225565b61327f614d7c565b5f8281525f805160206159c48339815191526020526040808220815160e0810190925280545f8051602061598483398151915293929190829060ff1660058111156132cc576132cc614f7c565b60058111156132dd576132dd614f7c565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c0909101529091508151600581111561334f5761334f614f7c565b146133ab5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b6064820152608401610650565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff191660018360058111156133ef576133ef614f7c565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61349b85826122b7565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f8082516027146135155760405162461bcd60e51b8152600401610650906156b0565b5f805b60028110156135645761352c816001615652565b61353790600861543b565b61ffff1685828151811061354d5761354d615203565b016020015160f81c901b9190911790600101613518565b5061ffff8116156135875760405162461bcd60e51b8152600401610650906156f9565b5f805b60048110156135e25761359e816003615652565b6135a990600861543b565b63ffffffff16866135bb836002615406565b815181106135cb576135cb615203565b016020015160f81c901b919091179060010161358a565b5063ffffffff81166003146136095760405162461bcd60e51b81526004016106509061573c565b5f805b602081101561365e5761362081601f615652565b61362b90600861543b565b87613637836006615406565b8151811061364757613647615203565b016020015160f81c901b919091179060010161360c565b505f8660268151811061367357613673615203565b016020015191976001600160f81b03199092161515965090945050505050565b5f5f80516020615944833981519152816136ac84610c34565b90505f6136b887611f53565b90506136c387612c45565b6137205760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a206e6f74206120506f53207660448201526730b634b230ba37b960c11b6064820152608401610650565b60028151600581111561373557613735614f7c565b146137945760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a2076616c696461746f72206e6044820152686f742061637469766560b81b6064820152608401610650565b5f8282608001516137a59190615452565b600485015460408401519192506137c7916001600160401b0390911690615783565b6001600160401b0316816001600160401b031611156138465760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a206d6178696d756d2076616c6044820152741a59185d1bdc881dd95a59da1d081c995858da1959605a1b6064820152608401610650565b5f806138528a846122b7565b915091505f8a8360405160200161388092919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815282825280516020909101206101008301909152915080600181526001600160a01b038c1660208083019190915260408083018f90526001600160401b03808b1660608501525f6080850181905260a0850181905290881660c085015260e090930183905284835260068b01909152902081518154829060ff1916600183600481111561391b5761391b614f7c565b02179055506020828101518254610100600160a81b0319166101006001600160a01b039283160217835560408085015160018501556060808601516002860180546080808a015160a08b015160c08c01516001600160401b039687166001600160801b031990951694909417600160401b92871692909202919091176001600160801b0316600160801b918616919091026001600160c01b031617600160c01b928516929092029190911790915560e0909701516003909601805467ffffffffffffffff191696821696909617909555815189861681528a861694810194909452938b1690830152918101859052908c16918d9184917fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426910160405180910390a49a9950505050505050505050565b5f808251602e14613a6d5760405162461bcd60e51b8152600401610650906156b0565b5f805b6002811015613abc57613a84816001615652565b613a8f90600861543b565b61ffff16858281518110613aa557613aa5615203565b016020015160f81c901b9190911790600101613a70565b5061ffff811615613adf5760405162461bcd60e51b8152600401610650906156f9565b5f805b6004811015613b3a57613af6816003615652565b613b0190600861543b565b63ffffffff1686613b13836002615406565b81518110613b2357613b23615203565b016020015160f81c901b9190911790600101613ae2565b5063ffffffff8116600514613b615760405162461bcd60e51b81526004016106509061573c565b5f805b6020811015613bb657613b7881601f615652565b613b8390600861543b565b87613b8f836006615406565b81518110613b9f57613b9f615203565b016020015160f81c901b9190911790600101613b64565b505f805b6008811015613c1557613bce816007615652565b613bd990600861543b565b6001600160401b031688613bee836026615406565b81518110613bfe57613bfe615203565b016020015160f81c901b9190911790600101613bba565b5090969095509350505050565b5f805160206159848339815191525f6001600160401b038084169085161115613c5657613c4f838561505a565b9050613c63565b613c60848461505a565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b0316606082015242911580613cc5575060028401548151613cc1916001600160401b031690615406565b8210155b15613ceb576001600160401b038316606082015281815260408101516020820152613d0a565b8281606001818151613cfd9190615452565b6001600160401b03169052505b6060810151613d1a906064615783565b602082015160028601546001600160401b039290921691613d459190600160401b900460ff1661543b565b1015613da95760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b6064820152608401610650565b856001600160401b031681604001818151613dc49190615406565b9052506040810180516001600160401b0387169190613de4908390615652565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f8181525f805160206159c48339815191526020526040812060020180545f8051602061598483398151915291600160401b9091046001600160401b0316906008613e7a836157ae565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16613f0957604051631afcd79f60e31b815260040160405180910390fd5b565b613f13613ec0565b613f1c81614577565b613f24614590565b612644608082013560a0830135613f4160e0850160c08601614f63565b613f52610100860160e087016157c9565b61ffff16613f68610120870161010088016157e2565b613f7a610140880161012089016151a3565b6145a0565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff1661400a5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b6064820152608401610650565b5f80516020615984833981519152426140296040860160208701614f63565b6001600160401b03161161409b5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b6064820152608401610650565b6140ab6040850160208601614f63565b6001600160401b03166140c16202a30042615406565b116141345760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e206675747572650000000000000000006064820152608401610650565b833561418c5760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b6064820152608401610650565b83355f908152600982016020526040902054156141bb5760405162461bcd60e51b81526004016106509061535e565b60306141ca6040860186615802565b90501461422f5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b6064820152608401610650565b614239835f613c22565b5f806142d36040518060a0016040528085600101548152602001885f01358152602001876001600160401b0316815260200188602001602081019061427e9190614f63565b6001600160401b0316815260200161429960408a018a615802565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509152506147e4565b5f828152600786016020526040902091935091506142f18282615888565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb9061431e9085906004016150b3565b6020604051808303815f875af115801561433a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061435e919061507a565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff191660018360058111156143d6576143d6614f7c565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b916144b6918e01908e01614f63565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b804710156145075760405163cd78605960e01b8152306004820152602401610650565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114614550576040519150601f19603f3d011682016040523d82523d5f602084013e614555565b606091505b5050905080611f1d57604051630a12f52160e11b815260040160405180910390fd5b61457f613ec0565b614587614b93565b61264481614b9b565b614598613ec0565b613f09614d3d565b6145a8613ec0565b5f80516020615944833981519152836146145760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a207a65726f2064656c65676160448201526774696f6e2066656560c01b6064820152608401610650565b6127108411156146365760405162461bcd60e51b815260040161065090615665565b8587111561469e5760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642073746160448201526e6b6520616d6f756e742072616e676560881b6064820152608401610650565b5f8360ff161161470b5760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a207a65726f206d6178696d75604482015271369039ba30b5b29036bab63a34b83634b2b960711b6064820152608401610650565b600a60ff8416111561477d5760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d617860448201527434b6bab69039ba30b5b29036bab63a34b83634b2b960591b6064820152608401610650565b95865560018601949094556002850180546001600160401b0390941667ffffffffffffffff19909416939093179092556003840155600490920180546001600160a01b03909216600160401b026001600160e01b031990921660ff90931692909217179055565b5f606082608001515160301461484e5760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b6064820152608401610650565b60408051608680825260c082019092525f916020820181803683370190505090505f5b60028110156148c557614885816001615652565b61489090600861543b565b5081515f908390839081106148a7576148a7615203565b60200101906001600160f81b03191690815f1a905350600101614871565b505f5b600481101561492d576148dc816003615652565b6148e790600861543b565b600160ff919091161c60f81b826148ff836002615406565b8151811061490f5761490f615203565b60200101906001600160f81b03191690815f1a9053506001016148c8565b505f5b602081101561498a578451816020811061494c5761494c615203565b1a60f81b8261495c836006615406565b8151811061496c5761496c615203565b60200101906001600160f81b03191690815f1a905350600101614930565b505f5b60208110156149ea57846020015181602081106149ac576149ac615203565b1a60f81b826149bc836026615406565b815181106149cc576149cc615203565b60200101906001600160f81b03191690815f1a90535060010161498d565b505f5b6008811015614a5e57614a01816007615652565b614a0c90600861543b565b60ff1685604001516001600160401b0316901c60f81b82826046614a309190615406565b81518110614a4057614a40615203565b60200101906001600160f81b03191690815f1a9053506001016149ed565b505f5b6030811015614ac95784608001518181518110614a8057614a80615203565b01602001516001600160f81b03191682614a9b83604e615406565b81518110614aab57614aab615203565b60200101906001600160f81b03191690815f1a905350600101614a61565b505f5b6008811015614b3b57614ae0816007615652565b614aeb90600861543b565b60608601516001600160401b0390811691161c60f81b82614b0d83607e615406565b81518110614b1d57614b1d615203565b60200101906001600160f81b03191690815f1a905350600101614acc565b50600281604051614b4c91906153f5565b602060405180830381855afa158015614b67573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190614b8a919061507a565b94909350915050565b613f09613ec0565b614ba3613ec0565b80355f8051602061598483398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014614bef60808401606085016157e2565b60ff161115614c5c5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b6064820152608401610650565b5f614c6d60808401606085016157e2565b60ff1611614cd55760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b6064820152608401610650565b614ce560808301606084016157e2565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055614d166060830160408401614f63565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b6128e8613ec0565b508054614d5190615472565b5f825580601f10614d60575050565b601f0160209004905f5260205f20908101906126449190614db8565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115614dcc575f8155600101614db9565b5090565b8015158114612644575f80fd5b803563ffffffff81168114611f4e575f80fd5b5f805f60608486031215614e02575f80fd5b833592506020840135614e1481614dd0565b9150614e2260408501614ddd565b90509250925092565b5f60208284031215614e3b575f80fd5b5035919050565b5f6101408284031215614e53575f80fd5b50919050565b803561ffff81168114611f4e575f80fd5b80356001600160401b0381168114611f4e575f80fd5b5f805f60608486031215614e92575f80fd5b83356001600160401b03811115614ea7575f80fd5b840160608187031215614eb8575f80fd5b9250614ec660208501614e59565b9150614e2260408501614e6a565b5f60208284031215614ee4575f80fd5b610c7782614ddd565b5f8060408385031215614efe575f80fd5b614f0783614ddd565b946020939093013593505050565b5f8060408385031215614f26575f80fd5b82356001600160401b03811115614f3b575f80fd5b830160808186031215614f4c575f80fd5b9150614f5a60208401614ddd565b90509250929050565b5f60208284031215614f73575f80fd5b610c7782614e6a565b634e487b7160e01b5f52602160045260245ffd5b815160e082019060068110614fb357634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b0360408401511660408301526060830151614fee60608401826001600160401b03169052565b50608083015161500960808401826001600160401b03169052565b5060a083015161502460a08401826001600160401b03169052565b5060c083015161503f60c08401826001600160401b03169052565b5092915050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0382811682821603908082111561503f5761503f615046565b5f6020828403121561508a575f80fd5b5051919050565b5f5b838110156150ab578181015183820152602001615093565b50505f910152565b602081525f82518060208401526150d1816040850160208701615091565b601f01601f19169190910160400192915050565b5f826150ff57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526022908201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206e6f6e604082015261636560f01b606082015260800190565b60208082526029908201527f506f5356616c696461746f724d616e616765723a206e6f6e636520646f6573206040820152680dcdee840dac2e8c6d60bb1b606082015260800190565b6001600160a01b0381168114612644575f80fd5b5f602082840312156151b3575f80fd5b8135610c778161518f565b5f808335601e198436030181126151d3575f80fd5b8301803591506001600160401b038211156151ec575f80fd5b6020019150600581901b3603821315612407575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261522b575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561526b5761526b615235565b60405290565b604051601f8201601f191681016001600160401b038111828210171561529957615299615235565b604052919050565b5f6001600160401b038211156152b9576152b9615235565b50601f01601f191660200190565b5f606082360312156152d7575f80fd5b6152df615249565b8235815260206152f0818501614e6a565b8183015260408401356001600160401b0381111561530c575f80fd5b840136601f82011261531c575f80fd5b803561532f61532a826152a1565b615271565b8181523684838501011115615342575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f85516153b7818460208a01615091565b80830190508581526001600160401b0360c01b8560c01b16602082015283516153e7816028840160208801615091565b016028019695505050505050565b5f825161522b818460208701615091565b80820180821115610c4457610c44615046565b5f63ffffffff80831681810361543157615431615046565b6001019392505050565b8082028115828204841417610c4457610c44615046565b6001600160401b0381811683821601908082111561503f5761503f615046565b600181811c9082168061548657607f821691505b602082108103614e5357634e487b7160e01b5f52602260045260245ffd5b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f84546154fd81615472565b806020870152604060018084165f811461551e576001811461553a57615567565b60ff19851660408a0152604084151560051b8a01019550615567565b895f5260205f205f5b8581101561555e5781548b8201860152908301908801615543565b8a016040019650505b509398975050505050505050565b8051611f4e81614dd0565b5f8060408385031215615591575f80fd5b82516001600160401b03808211156155a7575f80fd5b90840190606082870312156155ba575f80fd5b6155c2615249565b825181526020808401516155d58161518f565b828201526040840151838111156155ea575f80fd5b80850194505087601f8501126155fe575f80fd5b8351925061560e61532a846152a1565b8381528882858701011115615621575f80fd5b61563084838301848801615091565b80604084015250819550615645818801615575565b9450505050509250929050565b81810381811115610c4457610c44615046565b6020808252602b908201527f506f5356616c696461746f724d616e616765723a20696e76616c69642064656c60408201526a65676174696f6e2066656560a81b606082015260800190565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b6001600160401b038181168382160280821691908281146157a6576157a6615046565b505092915050565b5f6001600160401b0380831681810361543157615431615046565b5f602082840312156157d9575f80fd5b610c7782614e59565b5f602082840312156157f2575f80fd5b813560ff81168114610c77575f80fd5b5f808335601e19843603018112615817575f80fd5b8301803591506001600160401b03821115615830575f80fd5b602001915036819003821315612407575f80fd5b601f821115611f1d57805f5260205f20601f840160051c810160208510156158695750805b601f840160051c820191505b81811015610d17575f8155600101615875565b81516001600160401b038111156158a1576158a1615235565b6158b5816158af8454615472565b84615844565b602080601f8311600181146158e8575f84156158d15750858301515b5f19600386901b1c1916600185901b178555612cde565b5f85815260208120601f198616915b82811015615916578886015182559484019460019091019084016158f7565b508582101561593357878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d00506f5356616c696461746f724d616e616765723a2064656c65676174696f6e20e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", +} + +// NativeTokenStakingManagerABI is the input ABI used to generate the binding from. +// Deprecated: Use NativeTokenStakingManagerMetaData.ABI instead. +var NativeTokenStakingManagerABI = NativeTokenStakingManagerMetaData.ABI + +// NativeTokenStakingManagerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use NativeTokenStakingManagerMetaData.Bin instead. +var NativeTokenStakingManagerBin = NativeTokenStakingManagerMetaData.Bin + +// DeployNativeTokenStakingManager deploys a new Ethereum contract, binding an instance of NativeTokenStakingManager to it. +func DeployNativeTokenStakingManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *NativeTokenStakingManager, error) { + parsed, err := NativeTokenStakingManagerMetaData.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(NativeTokenStakingManagerBin), backend, init) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &NativeTokenStakingManager{NativeTokenStakingManagerCaller: NativeTokenStakingManagerCaller{contract: contract}, NativeTokenStakingManagerTransactor: NativeTokenStakingManagerTransactor{contract: contract}, NativeTokenStakingManagerFilterer: NativeTokenStakingManagerFilterer{contract: contract}}, nil +} + +// NativeTokenStakingManager is an auto generated Go binding around an Ethereum contract. +type NativeTokenStakingManager struct { + NativeTokenStakingManagerCaller // Read-only binding to the contract + NativeTokenStakingManagerTransactor // Write-only binding to the contract + NativeTokenStakingManagerFilterer // Log filterer for contract events +} + +// NativeTokenStakingManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type NativeTokenStakingManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NativeTokenStakingManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type NativeTokenStakingManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NativeTokenStakingManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type NativeTokenStakingManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// NativeTokenStakingManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type NativeTokenStakingManagerSession struct { + Contract *NativeTokenStakingManager // 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 +} + +// NativeTokenStakingManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type NativeTokenStakingManagerCallerSession struct { + Contract *NativeTokenStakingManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// NativeTokenStakingManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type NativeTokenStakingManagerTransactorSession struct { + Contract *NativeTokenStakingManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// NativeTokenStakingManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type NativeTokenStakingManagerRaw struct { + Contract *NativeTokenStakingManager // Generic contract binding to access the raw methods on +} + +// NativeTokenStakingManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type NativeTokenStakingManagerCallerRaw struct { + Contract *NativeTokenStakingManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// NativeTokenStakingManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type NativeTokenStakingManagerTransactorRaw struct { + Contract *NativeTokenStakingManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewNativeTokenStakingManager creates a new instance of NativeTokenStakingManager, bound to a specific deployed contract. +func NewNativeTokenStakingManager(address common.Address, backend bind.ContractBackend) (*NativeTokenStakingManager, error) { + contract, err := bindNativeTokenStakingManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &NativeTokenStakingManager{NativeTokenStakingManagerCaller: NativeTokenStakingManagerCaller{contract: contract}, NativeTokenStakingManagerTransactor: NativeTokenStakingManagerTransactor{contract: contract}, NativeTokenStakingManagerFilterer: NativeTokenStakingManagerFilterer{contract: contract}}, nil +} + +// NewNativeTokenStakingManagerCaller creates a new read-only instance of NativeTokenStakingManager, bound to a specific deployed contract. +func NewNativeTokenStakingManagerCaller(address common.Address, caller bind.ContractCaller) (*NativeTokenStakingManagerCaller, error) { + contract, err := bindNativeTokenStakingManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerCaller{contract: contract}, nil +} + +// NewNativeTokenStakingManagerTransactor creates a new write-only instance of NativeTokenStakingManager, bound to a specific deployed contract. +func NewNativeTokenStakingManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*NativeTokenStakingManagerTransactor, error) { + contract, err := bindNativeTokenStakingManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerTransactor{contract: contract}, nil +} + +// NewNativeTokenStakingManagerFilterer creates a new log filterer instance of NativeTokenStakingManager, bound to a specific deployed contract. +func NewNativeTokenStakingManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*NativeTokenStakingManagerFilterer, error) { + contract, err := bindNativeTokenStakingManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerFilterer{contract: contract}, nil +} + +// bindNativeTokenStakingManager binds a generic wrapper to an already deployed contract. +func bindNativeTokenStakingManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := NativeTokenStakingManagerMetaData.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 (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerCaller.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 (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerTransactor.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 (_NativeTokenStakingManager *NativeTokenStakingManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.contract.Transact(opts, method, params...) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "ADDRESS_LENGTH") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ADDRESSLENGTH() (uint32, error) { + return _NativeTokenStakingManager.Contract.ADDRESSLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ADDRESSLENGTH() (uint32, error) { + return _NativeTokenStakingManager.Contract.ADDRESSLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _NativeTokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _NativeTokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMDELEGATIONFEEBIPS(opts *bind.CallOpts) (uint16, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_DELEGATION_FEE_BIPS") + + if err != nil { + return *new(uint16), err + } + + out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) + + return out0, err + +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. +// +// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMSTAKEMULTIPLIERLIMIT(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_STAKE_MULTIPLIER_LIMIT") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_NativeTokenStakingManager.CallOpts) +} + +// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. +// +// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { + return _NativeTokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_NativeTokenStakingManager.CallOpts) +} + +// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. +// +// Solidity: function NATIVE_MINTER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) NATIVEMINTER(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "NATIVE_MINTER") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. +// +// Solidity: function NATIVE_MINTER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) NATIVEMINTER() (common.Address, error) { + return _NativeTokenStakingManager.Contract.NATIVEMINTER(&_NativeTokenStakingManager.CallOpts) +} + +// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. +// +// Solidity: function NATIVE_MINTER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) NATIVEMINTER() (common.Address, error) { + return _NativeTokenStakingManager.Contract.NATIVEMINTER(&_NativeTokenStakingManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "WARP_MESSENGER") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) WARPMESSENGER() (common.Address, error) { + return _NativeTokenStakingManager.Contract.WARPMESSENGER(&_NativeTokenStakingManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) WARPMESSENGER() (common.Address, error) { + return _NativeTokenStakingManager.Contract.WARPMESSENGER(&_NativeTokenStakingManager.CallOpts) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "activeValidators", nodeID) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _NativeTokenStakingManager.Contract.ActiveValidators(&_NativeTokenStakingManager.CallOpts, nodeID) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _NativeTokenStakingManager.Contract.ActiveValidators(&_NativeTokenStakingManager.CallOpts, nodeID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "getValidator", validationID) + + if err != nil { + return *new(Validator), err + } + + out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) + + return out0, err + +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _NativeTokenStakingManager.Contract.GetValidator(&_NativeTokenStakingManager.CallOpts, validationID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _NativeTokenStakingManager.Contract.GetValidator(&_NativeTokenStakingManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ValueToWeight(opts *bind.CallOpts, value *big.Int) (uint64, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "valueToWeight", value) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ValueToWeight(value *big.Int) (uint64, error) { + return _NativeTokenStakingManager.Contract.ValueToWeight(&_NativeTokenStakingManager.CallOpts, value) +} + +// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. +// +// Solidity: function valueToWeight(uint256 value) pure returns(uint64) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ValueToWeight(value *big.Int) (uint64, error) { + return _NativeTokenStakingManager.Contract.ValueToWeight(&_NativeTokenStakingManager.CallOpts, value) +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) WeightToValue(opts *bind.CallOpts, weight uint64) (*big.Int, error) { + var out []interface{} + err := _NativeTokenStakingManager.contract.Call(opts, &out, "weightToValue", weight) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) WeightToValue(weight uint64) (*big.Int, error) { + return _NativeTokenStakingManager.Contract.WeightToValue(&_NativeTokenStakingManager.CallOpts, weight) +} + +// WeightToValue is a free data retrieval call binding the contract method 0x62065856. +// +// Solidity: function weightToValue(uint64 weight) pure returns(uint256) +func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) WeightToValue(weight uint64) (*big.Int, error) { + return _NativeTokenStakingManager.Contract.WeightToValue(&_NativeTokenStakingManager.CallOpts, weight) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteDelegatorRegistration(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "completeDelegatorRegistration", messageIndex, delegationID) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. +// +// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "completeEndDelegation", messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. +// +// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "completeEndValidation", messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteEndValidation(&_NativeTokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteEndValidation(&_NativeTokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) Initialize(opts *bind.TransactOpts, settings PoSValidatorManagerSettings) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initialize", settings) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) Initialize(settings PoSValidatorManagerSettings) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.Initialize(&_NativeTokenStakingManager.TransactOpts, settings) +} + +// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. +// +// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Initialize(settings PoSValidatorManagerSettings) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.Initialize(&_NativeTokenStakingManager.TransactOpts, settings) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeDelegatorRegistration", validationID) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// +// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// +// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. +// +// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, delegationFeeBips, minStakeDuration) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, subnetConversionData, messageIndex) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendEndValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendEndValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendRegisterValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendRegisterValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendUpdateDelegation(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "resendUpdateDelegation", delegationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) +} + +// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// +// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) +} + +// NativeTokenStakingManagerDelegationEndedIterator is returned from FilterDelegationEnded and is used to iterate over the raw logs and unpacked data for DelegationEnded events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegationEndedIterator struct { + Event *NativeTokenStakingManagerDelegationEnded // 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 interfaces.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 *NativeTokenStakingManagerDelegationEndedIterator) 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(NativeTokenStakingManagerDelegationEnded) + 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(NativeTokenStakingManagerDelegationEnded) + 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 *NativeTokenStakingManagerDelegationEndedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerDelegationEndedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegationEnded struct { + DelegationID [32]byte + ValidationID [32]byte + Nonce uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerDelegationEndedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerDelegationEndedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil +} + +// WatchDelegationEnded is a free log subscription operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) + 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(NativeTokenStakingManagerDelegationEnded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegationEnded", 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 +} + +// ParseDelegationEnded is a log parse operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. +// +// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*NativeTokenStakingManagerDelegationEnded, error) { + event := new(NativeTokenStakingManagerDelegationEnded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerDelegatorAddedIterator is returned from FilterDelegatorAdded and is used to iterate over the raw logs and unpacked data for DelegatorAdded events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorAddedIterator struct { + Event *NativeTokenStakingManagerDelegatorAdded // 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 interfaces.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 *NativeTokenStakingManagerDelegatorAddedIterator) 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(NativeTokenStakingManagerDelegatorAdded) + 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(NativeTokenStakingManagerDelegatorAdded) + 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 *NativeTokenStakingManagerDelegatorAddedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerDelegatorAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerDelegatorAdded represents a DelegatorAdded event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorAdded struct { + DelegationID [32]byte + ValidationID [32]byte + DelegatorAddress common.Address + Nonce uint64 + ValidatorWeight uint64 + DelegatorWeight uint64 + SetWeightMessageID [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorAdded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*NativeTokenStakingManagerDelegatorAddedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerDelegatorAddedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil +} + +// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorAdded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorAdded, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + 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(NativeTokenStakingManagerDelegatorAdded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", 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 +} + +// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// +// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorAdded(log types.Log) (*NativeTokenStakingManagerDelegatorAdded, error) { + event := new(NativeTokenStakingManagerDelegatorAdded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerDelegatorRegisteredIterator is returned from FilterDelegatorRegistered and is used to iterate over the raw logs and unpacked data for DelegatorRegistered events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorRegisteredIterator struct { + Event *NativeTokenStakingManagerDelegatorRegistered // 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 interfaces.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 *NativeTokenStakingManagerDelegatorRegisteredIterator) 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(NativeTokenStakingManagerDelegatorRegistered) + 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(NativeTokenStakingManagerDelegatorRegistered) + 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 *NativeTokenStakingManagerDelegatorRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerDelegatorRegistered represents a DelegatorRegistered event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorRegistered struct { + DelegationID [32]byte + ValidationID [32]byte + Nonce uint64 + StartTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerDelegatorRegisteredIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerDelegatorRegisteredIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil +} + +// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) + 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(NativeTokenStakingManagerDelegatorRegistered) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", 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 +} + +// ParseDelegatorRegistered is a log parse operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. +// +// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*NativeTokenStakingManagerDelegatorRegistered, error) { + event := new(NativeTokenStakingManagerDelegatorRegistered) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerDelegatorRemovalInitializedIterator is returned from FilterDelegatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for DelegatorRemovalInitialized events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorRemovalInitializedIterator struct { + Event *NativeTokenStakingManagerDelegatorRemovalInitialized // 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 interfaces.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 *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) 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(NativeTokenStakingManagerDelegatorRemovalInitialized) + 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(NativeTokenStakingManagerDelegatorRemovalInitialized) + 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 *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerDelegatorRemovalInitialized represents a DelegatorRemovalInitialized event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerDelegatorRemovalInitialized struct { + DelegationID [32]byte + ValidationID [32]byte + EndTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerDelegatorRemovalInitializedIterator, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerDelegatorRemovalInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil +} + +// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { + + var delegationIDRule []interface{} + for _, delegationIDItem := range delegationID { + delegationIDRule = append(delegationIDRule, delegationIDItem) + } + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + 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(NativeTokenStakingManagerDelegatorRemovalInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", 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 +} + +// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. +// +// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerDelegatorRemovalInitialized, error) { + event := new(NativeTokenStakingManagerDelegatorRemovalInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitialValidatorCreatedIterator struct { + Event *NativeTokenStakingManagerInitialValidatorCreated // 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 interfaces.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 *NativeTokenStakingManagerInitialValidatorCreatedIterator) 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(NativeTokenStakingManagerInitialValidatorCreated) + 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(NativeTokenStakingManagerInitialValidatorCreated) + 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 *NativeTokenStakingManagerInitialValidatorCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerInitialValidatorCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitialValidatorCreated struct { + ValidationID [32]byte + NodeID [32]byte + Weight *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*NativeTokenStakingManagerInitialValidatorCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerInitialValidatorCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil +} + +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + 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(NativeTokenStakingManagerInitialValidatorCreated) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 +} + +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*NativeTokenStakingManagerInitialValidatorCreated, error) { + event := new(NativeTokenStakingManagerInitialValidatorCreated) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitializedIterator struct { + Event *NativeTokenStakingManagerInitialized // 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 interfaces.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 *NativeTokenStakingManagerInitializedIterator) 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(NativeTokenStakingManagerInitialized) + 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(NativeTokenStakingManagerInitialized) + 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 *NativeTokenStakingManagerInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerInitialized represents a Initialized event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitialized 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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*NativeTokenStakingManagerInitializedIterator, error) { + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerInitializedIterator{contract: _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialized) (event.Subscription, error) { + + logs, sub, err := _NativeTokenStakingManager.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(NativeTokenStakingManagerInitialized) + if err := _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitialized(log types.Log) (*NativeTokenStakingManagerInitialized, error) { + event := new(NativeTokenStakingManagerInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodCreatedIterator struct { + Event *NativeTokenStakingManagerValidationPeriodCreated // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodCreatedIterator) 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(NativeTokenStakingManagerValidationPeriodCreated) + 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(NativeTokenStakingManagerValidationPeriodCreated) + 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 *NativeTokenStakingManagerValidationPeriodCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerValidationPeriodCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodCreated struct { + ValidationID [32]byte + NodeID [32]byte + RegisterValidationMessageID [32]byte + Weight *big.Int + RegistrationExpiry uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*NativeTokenStakingManagerValidationPeriodCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerValidationPeriodCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + 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(NativeTokenStakingManagerValidationPeriodCreated) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 +} + +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*NativeTokenStakingManagerValidationPeriodCreated, error) { + event := new(NativeTokenStakingManagerValidationPeriodCreated) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodEndedIterator struct { + Event *NativeTokenStakingManagerValidationPeriodEnded // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodEndedIterator) 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(NativeTokenStakingManagerValidationPeriodEnded) + 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(NativeTokenStakingManagerValidationPeriodEnded) + 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 *NativeTokenStakingManagerValidationPeriodEndedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerValidationPeriodEndedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodEnded struct { + ValidationID [32]byte + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*NativeTokenStakingManagerValidationPeriodEndedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerValidationPeriodEndedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + 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(NativeTokenStakingManagerValidationPeriodEnded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 +} + +// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*NativeTokenStakingManagerValidationPeriodEnded, error) { + event := new(NativeTokenStakingManagerValidationPeriodEnded) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodRegisteredIterator struct { + Event *NativeTokenStakingManagerValidationPeriodRegistered // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodRegisteredIterator) 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(NativeTokenStakingManagerValidationPeriodRegistered) + 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(NativeTokenStakingManagerValidationPeriodRegistered) + 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 *NativeTokenStakingManagerValidationPeriodRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerValidationPeriodRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidationPeriodRegistered struct { + ValidationID [32]byte + Weight *big.Int + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerValidationPeriodRegisteredIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerValidationPeriodRegisteredIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) + 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(NativeTokenStakingManagerValidationPeriodRegistered) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 +} + +// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*NativeTokenStakingManagerValidationPeriodRegistered, error) { + event := new(NativeTokenStakingManagerValidationPeriodRegistered) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidatorRemovalInitializedIterator struct { + Event *NativeTokenStakingManagerValidatorRemovalInitialized // 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 interfaces.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 *NativeTokenStakingManagerValidatorRemovalInitializedIterator) 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(NativeTokenStakingManagerValidatorRemovalInitialized) + 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(NativeTokenStakingManagerValidatorRemovalInitialized) + 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 *NativeTokenStakingManagerValidatorRemovalInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerValidatorRemovalInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidatorRemovalInitialized struct { + ValidationID [32]byte + SetWeightMessageID [32]byte + Weight *big.Int + EndTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*NativeTokenStakingManagerValidatorRemovalInitializedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerValidatorRemovalInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil +} + +// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + 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(NativeTokenStakingManagerValidatorRemovalInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 +} + +// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerValidatorRemovalInitialized, error) { + event := new(NativeTokenStakingManagerValidatorRemovalInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// NativeTokenStakingManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidatorWeightUpdateIterator struct { + Event *NativeTokenStakingManagerValidatorWeightUpdate // 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 interfaces.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 *NativeTokenStakingManagerValidatorWeightUpdateIterator) 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(NativeTokenStakingManagerValidatorWeightUpdate) + 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(NativeTokenStakingManagerValidatorWeightUpdate) + 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 *NativeTokenStakingManagerValidatorWeightUpdateIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *NativeTokenStakingManagerValidatorWeightUpdateIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// NativeTokenStakingManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerValidatorWeightUpdate struct { + ValidationID [32]byte + Nonce uint64 + ValidatorWeight uint64 + SetWeightMessageID [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerValidatorWeightUpdateIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &NativeTokenStakingManagerValidatorWeightUpdateIterator{contract: _NativeTokenStakingManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil +} + +// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + 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(NativeTokenStakingManagerValidatorWeightUpdate) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 +} + +// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*NativeTokenStakingManagerValidatorWeightUpdate, error) { + event := new(NativeTokenStakingManagerValidatorWeightUpdate) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go new file mode 100644 index 000000000..2dbe9c8fa --- /dev/null +++ b/abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go @@ -0,0 +1,1947 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package poavalidatormanager + +import ( + "errors" + "math/big" + "strings" + + "github.com/ava-labs/subnet-evm/accounts/abi" + "github.com/ava-labs/subnet-evm/accounts/abi/bind" + "github.com/ava-labs/subnet-evm/core/types" + "github.com/ava-labs/subnet-evm/interfaces" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = interfaces.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// InitialValidator is an auto generated low-level Go binding around an user-defined struct. +type InitialValidator struct { + NodeID [32]byte + Weight uint64 + BlsPublicKey []byte +} + +// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. +type SubnetConversionData struct { + ConvertSubnetTxID [32]byte + ValidatorManagerBlockchainID [32]byte + ValidatorManagerAddress common.Address + InitialValidators []InitialValidator +} + +// Validator is an auto generated low-level Go binding around an user-defined struct. +type Validator struct { + Status uint8 + NodeID [32]byte + StartingWeight uint64 + MessageNonce uint64 + Weight uint64 + StartedAt uint64 + EndedAt uint64 +} + +// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. +type ValidatorManagerSettings struct { + PChainBlockchainID [32]byte + SubnetID [32]byte + ChurnPeriodSeconds uint64 + MaximumChurnPercentage uint8 +} + +// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. +type ValidatorRegistrationInput struct { + NodeID [32]byte + RegistrationExpiry uint64 + BlsPublicKey []byte +} + +// PoAValidatorManagerMetaData contains all meta data concerning the PoAValidatorManager contract. +var PoAValidatorManagerMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"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: "0x608060405234801561000f575f80fd5b5060405161396538038061396583398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6138188061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c80638994ab49116100a9578063bee0a03f1161006e578063bee0a03f146102b4578063c974d1b6146102c7578063d5f20ff6146102cf578063df93d8de146102ef578063f2fde38b146102f9575f80fd5b80638994ab49146102295780638da5cb5b1461023c57806397fb70d414610280578063a3a65e4814610293578063b771b3bc146102a6575f80fd5b806360305d62116100ef57806360305d62146101ac57806361e2f490146101c957806366435abf146101dc578063715018a6146102075780638280a25a1461020f575f80fd5b80630322ed98146101205780630cdd098514610135578063467ef06f14610186578063580a400614610199575b5f80fd5b61013361012e366004612daa565b61030c565b005b610173610143366004612daa565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b610133610194366004612dd9565b6104ca565b6101336101a7366004612e1c565b6104d8565b6101b4601481565b60405163ffffffff909116815260200161017d565b6101336101d7366004612e52565b6105e6565b6101ef6101ea366004612daa565b610c1a565b6040516001600160401b03909116815260200161017d565b610133610c2e565b610217603081565b60405160ff909116815260200161017d565b610173610237366004612eb2565b610c41565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017d565b61013361028e366004612daa565b610c5d565b6101336102a1366004612dd9565b610c72565b6102686005600160991b0181565b6101336102c2366004612daa565b610e2a565b610217601481565b6102e26102dd366004612daa565b610f39565b60405161017d9190612f0b565b6101ef6202a30081565b610133610307366004612fc1565b611001565b5f8181525f805160206137ec8339815191526020526040808220815160e0810190925280545f805160206137cc83398151915293929190829060ff16600581111561035957610359612ef7565b600581111561036a5761036a612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c090910152909150815160058111156103d9576103d9612ef7565b146104435760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b60648201526084015b60405180910390fd5b6005600160991b016001600160a01b031663ee5b48eb6104688584606001515f61103e565b6040518263ffffffff1660e01b81526004016104849190613005565b6020604051808303815f875af11580156104a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c49190613037565b50505050565b6104d381611263565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f8115801561051c5750825b90505f826001600160401b031660011480156105375750303b155b905081158015610545575080155b156105635760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561058d57845460ff60401b1916600160401b1785555b61059787876115ad565b83156105dd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f805160206137cc8339815191529060ff16156106835760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b606482015260840161043a565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea9190613037565b83602001351461074c5760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b606482015260840161043a565b3061075d6060850160408601612fc1565b6001600160a01b0316146107cf5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b606482015260840161043a565b5f6107dd606085018561304e565b91505f90508435602086013560146107fb6060890160408a01612fc1565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff161015610b2a575f61087b606089018961304e565b8363ffffffff1681811061089157610891613093565b90506020028101906108a391906130a7565b6108ac90613157565b80515f81815260098901602052604090205491925090156108df5760405162461bcd60e51b815260040161043a906131ee565b84825f0151836020015184604001516040516020016109019493929190613236565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f9160029161094f9190613285565b602060405180830381855afa15801561096a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061098d9190613037565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff19166001836005811115610a1957610a19612ef7565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff191692841692909217909155840151610acc9116866132aa565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a350505080610b23906132bd565b905061085f565b50600584018190555f610b3c866115c7565b90505f610b4c82604001516117a1565b905080600285604051610b5f9190613285565b602060405180830381855afa158015610b7a573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610b9d9190613037565b14610c015760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b606482015260840161043a565b505050600a909201805460ff1916600117905550505050565b5f610c2482610f39565b6080015192915050565b610c3661190a565b610c3f5f611965565b565b5f610c4a61190a565b610c5483836119d5565b90505b92915050565b610c6561190a565b610c6e81611f3a565b5050565b5f805160206137cc8339815191525f610c8a836115c7565b90505f80610c9b83604001516121b5565b9150915080610cfd5760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b606482015260840161043a565b5f82815260078501602052604081208054610d17906132df565b9050118015610d49575060015f83815260088601602052604090205460ff166005811115610d4757610d47612ef7565b145b610d655760405162461bcd60e51b815260040161043a90613311565b5f8281526007850160205260408120610d7d91612d1f565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f805160206137cc833981519152929190610e72906132df565b9050118015610ea4575060015f83815260088301602052604090205460ff166005811115610ea257610ea2612ef7565b145b610ec05760405162461bcd60e51b815260040161043a90613311565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91610ef99190600401613358565b6020604051808303815f875af1158015610f15573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d39190613037565b610f41612d56565b5f8281525f805160206137ec833981519152602052604090819020815160e0810190925280545f805160206137cc833981519152929190829060ff166005811115610f8e57610f8e612ef7565b6005811115610f9f57610f9f612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b61100961190a565b6001600160a01b03811661103257604051631e4fbdf760e01b81525f600482015260240161043a565b61103b81611965565b50565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b60028110156110b7576110778160016133e2565b6110829060086133f5565b5081515f9083908390811061109957611099613093565b60200101906001600160f81b03191690815f1a905350600101611063565b505f5b6004811015611122576110ce8160036133e2565b6110d99060086133f5565b600263ffffffff16901c60f81b828260026110f491906132aa565b8151811061110457611104613093565b60200101906001600160f81b03191690815f1a9053506001016110ba565b505f5b60208110156111845761113981601f6133e2565b6111449060086133f5565b86901c60f81b826111568360066132aa565b8151811061116657611166613093565b60200101906001600160f81b03191690815f1a905350600101611125565b505f5b60088110156111ef5761119b8160076133e2565b6111a69060086133f5565b6001600160401b038616901c60f81b826111c18360266132aa565b815181106111d1576111d1613093565b60200101906001600160f81b03191690815f1a905350600101611187565b505f5b600881101561125a576112068160076133e2565b6112119060086133f5565b6001600160401b038516901c60f81b8261122c83602e6132aa565b8151811061123c5761123c613093565b60200101906001600160f81b03191690815f1a9053506001016111f2565b50949350505050565b5f61126c612d56565b5f805160206137cc8339815191525f611284856115c7565b90505f8061129583604001516121b5565b9150915080156112fa5760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b606482015260840161043a565b5f828152600885016020526040808220815160e081019092528054829060ff16600581111561132b5761132b612ef7565b600581111561133c5761133c612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f90825160058111156113ad576113ad612ef7565b14806113cb57506001825160058111156113c9576113c9612ef7565b145b61142a5760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b606482015260840161043a565b60038251600581111561143f5761143f612ef7565b0361144c57506004611450565b5060055b6020808301515f9081526009880190915260408120558181600581111561147957611479612ef7565b9081600581111561148c5761148c612ef7565b9052505f84815260088701602052604090208251815484929190829060ff191660018360058111156114c0576114c0612ef7565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558151600581111561157457611574612ef7565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b6115b5612356565b6115be8261239f565b610c6e816123b8565b60408051606080820183525f8083526020830181905292820152905f805160206137cc8339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561163c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611663919081019061341b565b91509150806116c35760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b606482015260840161043a565b82548251146117265760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b606482015260840161043a565b60208201516001600160a01b0316156117995760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b606482015260840161043a565b509392505050565b5f81516026146117c35760405162461bcd60e51b815260040161043a906134ed565b5f805b6002811015611812576117da8160016133e2565b6117e59060086133f5565b61ffff168482815181106117fb576117fb613093565b016020015160f81c901b91909117906001016117c6565b5061ffff8116156118355760405162461bcd60e51b815260040161043a90613536565b5f805b60048110156118905761184c8160036133e2565b6118579060086133f5565b63ffffffff16856118698360026132aa565b8151811061187957611879613093565b016020015160f81c901b9190911790600101611838565b5063ffffffff8116156118b55760405162461bcd60e51b815260040161043a90613579565b5f805b602081101561125a576118cc81601f6133e2565b6118d79060086133f5565b866118e38360066132aa565b815181106118f3576118f3613093565b016020015160f81c901b91909117906001016118b8565b3361193c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610c3f5760405163118cdaa760e01b815233600482015260240161043a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff16611a605760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b606482015260840161043a565b5f805160206137cc83398151915242611a7f60408601602087016135c0565b6001600160401b031611611af15760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b606482015260840161043a565b611b0160408501602086016135c0565b6001600160401b0316611b176202a300426132aa565b11611b8a5760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e20667574757265000000000000000000606482015260840161043a565b8335611be25760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b606482015260840161043a565b83355f90815260098201602052604090205415611c115760405162461bcd60e51b815260040161043a906131ee565b6030611c2060408601866135d9565b905014611c855760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b606482015260840161043a565b611c8f835f6123c9565b5f80611d296040518060a0016040528085600101548152602001885f01358152602001876001600160401b03168152602001886020016020810190611cd491906135c0565b6001600160401b03168152602001611cef60408a018a6135d9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509152506125d7565b5f82815260078601602052604090209193509150611d478282613666565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611d74908590600401613005565b6020604051808303815f875af1158015611d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db49190613037565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff19166001836005811115611e2c57611e2c612ef7565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b91611f0c918e01908e016135c0565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b611f42612d56565b5f8281525f805160206137ec8339815191526020526040808220815160e0810190925280545f805160206137cc83398151915293929190829060ff166005811115611f8f57611f8f612ef7565b6005811115611fa057611fa0612ef7565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c0909101529091508151600581111561201257612012612ef7565b1461206e5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b606482015260840161043a565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff191660018360058111156120b2576120b2612ef7565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61215e8582612986565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f8082516027146121d85760405162461bcd60e51b815260040161043a906134ed565b5f805b6002811015612227576121ef8160016133e2565b6121fa9060086133f5565b61ffff1685828151811061221057612210613093565b016020015160f81c901b91909117906001016121db565b5061ffff81161561224a5760405162461bcd60e51b815260040161043a90613536565b5f805b60048110156122a5576122618160036133e2565b61226c9060086133f5565b63ffffffff168661227e8360026132aa565b8151811061228e5761228e613093565b016020015160f81c901b919091179060010161224d565b5063ffffffff81166003146122cc5760405162461bcd60e51b815260040161043a90613579565b5f805b6020811015612321576122e381601f6133e2565b6122ee9060086133f5565b876122fa8360066132aa565b8151811061230a5761230a613093565b016020015160f81c901b91909117906001016122cf565b505f8660268151811061233657612336613093565b016020015191976001600160f81b03199092161515965090945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610c3f57604051631afcd79f60e31b815260040160405180910390fd5b6123a7612356565b6123af612add565b61103b81612ae5565b6123c0612356565b61103b81612c87565b5f805160206137cc8339815191525f6001600160401b0380841690851611156123fd576123f68385613725565b905061240a565b6124078484613725565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b031660608201524291158061246c575060028401548151612468916001600160401b0316906132aa565b8210155b15612492576001600160401b0383166060820152818152604081015160208201526124b1565b82816060018181516124a49190613745565b6001600160401b03169052505b60608101516124c1906064613765565b602082015160028601546001600160401b0392909216916124ec9190600160401b900460ff166133f5565b10156125505760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b606482015260840161043a565b856001600160401b03168160400181815161256b91906132aa565b9052506040810180516001600160401b038716919061258b9083906133e2565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f60608260800151516030146126415760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b606482015260840161043a565b60408051608680825260c082019092525f916020820181803683370190505090505f5b60028110156126b8576126788160016133e2565b6126839060086133f5565b5081515f9083908390811061269a5761269a613093565b60200101906001600160f81b03191690815f1a905350600101612664565b505f5b6004811015612720576126cf8160036133e2565b6126da9060086133f5565b600160ff919091161c60f81b826126f28360026132aa565b8151811061270257612702613093565b60200101906001600160f81b03191690815f1a9053506001016126bb565b505f5b602081101561277d578451816020811061273f5761273f613093565b1a60f81b8261274f8360066132aa565b8151811061275f5761275f613093565b60200101906001600160f81b03191690815f1a905350600101612723565b505f5b60208110156127dd578460200151816020811061279f5761279f613093565b1a60f81b826127af8360266132aa565b815181106127bf576127bf613093565b60200101906001600160f81b03191690815f1a905350600101612780565b505f5b6008811015612851576127f48160076133e2565b6127ff9060086133f5565b60ff1685604001516001600160401b0316901c60f81b8282604661282391906132aa565b8151811061283357612833613093565b60200101906001600160f81b03191690815f1a9053506001016127e0565b505f5b60308110156128bc578460800151818151811061287357612873613093565b01602001516001600160f81b0319168261288e83604e6132aa565b8151811061289e5761289e613093565b60200101906001600160f81b03191690815f1a905350600101612854565b505f5b600881101561292e576128d38160076133e2565b6128de9060086133f5565b60608601516001600160401b0390811691161c60f81b8261290083607e6132aa565b8151811061291057612910613093565b60200101906001600160f81b03191690815f1a9053506001016128bf565b5060028160405161293f9190613285565b602060405180830381855afa15801561295a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061297d9190613037565b94909350915050565b5f8281525f805160206137ec833981519152602052604081206002015481905f805160206137cc83398151915290600160801b90046001600160401b03166129ce85826123c9565b5f6129d887612c8f565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb612a288a858b61103e565b6040518263ffffffff1660e01b8152600401612a449190613005565b6020604051808303815f875af1158015612a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a849190613037565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b610c3f612356565b612aed612356565b80355f805160206137cc83398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014612b396080840160608501613790565b60ff161115612ba65760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b606482015260840161043a565b5f612bb76080840160608501613790565b60ff1611612c1f5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b606482015260840161043a565b612c2f6080830160608401613790565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055612c6060608301604084016135c0565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b611009612356565b5f8181525f805160206137ec8339815191526020526040812060020180545f805160206137cc83398151915291600160401b9091046001600160401b0316906008612cd9836137b0565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b508054612d2b906132df565b5f825580601f10612d3a575050565b601f0160209004905f5260205f209081019061103b9190612d92565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115612da6575f8155600101612d93565b5090565b5f60208284031215612dba575f80fd5b5035919050565b803563ffffffff81168114612dd4575f80fd5b919050565b5f60208284031215612de9575f80fd5b610c5482612dc1565b5f60808284031215612e02575f80fd5b50919050565b6001600160a01b038116811461103b575f80fd5b5f8060a08385031215612e2d575f80fd5b612e378484612df2565b91506080830135612e4781612e08565b809150509250929050565b5f8060408385031215612e63575f80fd5b82356001600160401b03811115612e78575f80fd5b612e8485828601612df2565b925050612e9360208401612dc1565b90509250929050565b80356001600160401b0381168114612dd4575f80fd5b5f8060408385031215612ec3575f80fd5b82356001600160401b03811115612ed8575f80fd5b830160608186031215612ee9575f80fd5b9150612e9360208401612e9c565b634e487b7160e01b5f52602160045260245ffd5b815160e082019060068110612f2e57634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b0360408401511660408301526060830151612f6960608401826001600160401b03169052565b506080830151612f8460808401826001600160401b03169052565b5060a0830151612f9f60a08401826001600160401b03169052565b5060c0830151612fba60c08401826001600160401b03169052565b5092915050565b5f60208284031215612fd1575f80fd5b8135612fdc81612e08565b9392505050565b5f5b83811015612ffd578181015183820152602001612fe5565b50505f910152565b602081525f8251806020840152613023816040850160208701612fe3565b601f01601f19169190910160400192915050565b5f60208284031215613047575f80fd5b5051919050565b5f808335601e19843603018112613063575f80fd5b8301803591506001600160401b0382111561307c575f80fd5b6020019150600581901b3603821315612ad6575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126130bb575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156130fb576130fb6130c5565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613129576131296130c5565b604052919050565b5f6001600160401b03821115613149576131496130c5565b50601f01601f191660200190565b5f60608236031215613167575f80fd5b61316f6130d9565b823581526020613180818501612e9c565b8183015260408401356001600160401b0381111561319c575f80fd5b840136601f8201126131ac575f80fd5b80356131bf6131ba82613131565b613101565b81815236848385010111156131d2575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f8551613247818460208a01612fe3565b80830190508581526001600160401b0360c01b8560c01b1660208201528351613277816028840160208801612fe3565b016028019695505050505050565b5f82516130bb818460208701612fe3565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c5757610c57613296565b5f63ffffffff8083168181036132d5576132d5613296565b6001019392505050565b600181811c908216806132f357607f821691505b602082108103612e0257634e487b7160e01b5f52602260045260245ffd5b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f845461336a816132df565b806020870152604060018084165f811461338b57600181146133a7576133d4565b60ff19851660408a0152604084151560051b8a010195506133d4565b895f5260205f205f5b858110156133cb5781548b82018601529083019088016133b0565b8a016040019650505b509398975050505050505050565b81810381811115610c5757610c57613296565b8082028115828204841417610c5757610c57613296565b80518015158114612dd4575f80fd5b5f806040838503121561342c575f80fd5b82516001600160401b0380821115613442575f80fd5b9084019060608287031215613455575f80fd5b61345d6130d9565b8251815260208084015161347081612e08565b82820152604084015183811115613485575f80fd5b80850194505087601f850112613499575f80fd5b835192506134a96131ba84613131565b83815288828587010111156134bc575f80fd5b6134cb84838301848801612fe3565b806040840152508195506134e081880161340c565b9450505050509250929050565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b5f602082840312156135d0575f80fd5b610c5482612e9c565b5f808335601e198436030181126135ee575f80fd5b8301803591506001600160401b03821115613607575f80fd5b602001915036819003821315612ad6575f80fd5b601f8211156104d357805f5260205f20601f840160051c810160208510156136405750805b601f840160051c820191505b8181101561365f575f815560010161364c565b5050505050565b81516001600160401b0381111561367f5761367f6130c5565b6136938161368d84546132df565b8461361b565b602080601f8311600181146136c6575f84156136af5750858301515b5f19600386901b1c1916600185901b17855561371d565b5f85815260208120601f198616915b828110156136f4578886015182559484019460019091019084016136d5565b508582101561371157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6001600160401b03828116828216039080821115612fba57612fba613296565b6001600160401b03818116838216019080821115612fba57612fba613296565b6001600160401b0381811683821602808216919082811461378857613788613296565b505092915050565b5f602082840312156137a0575f80fd5b813560ff81168114612fdc575f80fd5b5f6001600160401b038083168181036132d5576132d561329656fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", +} + +// PoAValidatorManagerABI is the input ABI used to generate the binding from. +// Deprecated: Use PoAValidatorManagerMetaData.ABI instead. +var PoAValidatorManagerABI = PoAValidatorManagerMetaData.ABI + +// PoAValidatorManagerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use PoAValidatorManagerMetaData.Bin instead. +var PoAValidatorManagerBin = PoAValidatorManagerMetaData.Bin + +// DeployPoAValidatorManager deploys a new Ethereum contract, binding an instance of PoAValidatorManager to it. +func DeployPoAValidatorManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *PoAValidatorManager, error) { + parsed, err := PoAValidatorManagerMetaData.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(PoAValidatorManagerBin), backend, init) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &PoAValidatorManager{PoAValidatorManagerCaller: PoAValidatorManagerCaller{contract: contract}, PoAValidatorManagerTransactor: PoAValidatorManagerTransactor{contract: contract}, PoAValidatorManagerFilterer: PoAValidatorManagerFilterer{contract: contract}}, nil +} + +// PoAValidatorManager is an auto generated Go binding around an Ethereum contract. +type PoAValidatorManager struct { + PoAValidatorManagerCaller // Read-only binding to the contract + PoAValidatorManagerTransactor // Write-only binding to the contract + PoAValidatorManagerFilterer // Log filterer for contract events +} + +// PoAValidatorManagerCaller is an auto generated read-only Go binding around an Ethereum contract. +type PoAValidatorManagerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PoAValidatorManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type PoAValidatorManagerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PoAValidatorManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type PoAValidatorManagerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PoAValidatorManagerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type PoAValidatorManagerSession struct { + Contract *PoAValidatorManager // 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 +} + +// PoAValidatorManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type PoAValidatorManagerCallerSession struct { + Contract *PoAValidatorManagerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// PoAValidatorManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type PoAValidatorManagerTransactorSession struct { + Contract *PoAValidatorManagerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PoAValidatorManagerRaw is an auto generated low-level Go binding around an Ethereum contract. +type PoAValidatorManagerRaw struct { + Contract *PoAValidatorManager // Generic contract binding to access the raw methods on +} + +// PoAValidatorManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type PoAValidatorManagerCallerRaw struct { + Contract *PoAValidatorManagerCaller // Generic read-only contract binding to access the raw methods on +} + +// PoAValidatorManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type PoAValidatorManagerTransactorRaw struct { + Contract *PoAValidatorManagerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewPoAValidatorManager creates a new instance of PoAValidatorManager, bound to a specific deployed contract. +func NewPoAValidatorManager(address common.Address, backend bind.ContractBackend) (*PoAValidatorManager, error) { + contract, err := bindPoAValidatorManager(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &PoAValidatorManager{PoAValidatorManagerCaller: PoAValidatorManagerCaller{contract: contract}, PoAValidatorManagerTransactor: PoAValidatorManagerTransactor{contract: contract}, PoAValidatorManagerFilterer: PoAValidatorManagerFilterer{contract: contract}}, nil +} + +// NewPoAValidatorManagerCaller creates a new read-only instance of PoAValidatorManager, bound to a specific deployed contract. +func NewPoAValidatorManagerCaller(address common.Address, caller bind.ContractCaller) (*PoAValidatorManagerCaller, error) { + contract, err := bindPoAValidatorManager(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PoAValidatorManagerCaller{contract: contract}, nil +} + +// NewPoAValidatorManagerTransactor creates a new write-only instance of PoAValidatorManager, bound to a specific deployed contract. +func NewPoAValidatorManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*PoAValidatorManagerTransactor, error) { + contract, err := bindPoAValidatorManager(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PoAValidatorManagerTransactor{contract: contract}, nil +} + +// NewPoAValidatorManagerFilterer creates a new log filterer instance of PoAValidatorManager, bound to a specific deployed contract. +func NewPoAValidatorManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*PoAValidatorManagerFilterer, error) { + contract, err := bindPoAValidatorManager(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PoAValidatorManagerFilterer{contract: contract}, nil +} + +// bindPoAValidatorManager binds a generic wrapper to an already deployed contract. +func bindPoAValidatorManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := PoAValidatorManagerMetaData.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 (_PoAValidatorManager *PoAValidatorManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PoAValidatorManager.Contract.PoAValidatorManagerCaller.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 (_PoAValidatorManager *PoAValidatorManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.PoAValidatorManagerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_PoAValidatorManager *PoAValidatorManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.PoAValidatorManagerTransactor.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 (_PoAValidatorManager *PoAValidatorManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_PoAValidatorManager *PoAValidatorManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.contract.Transact(opts, method, params...) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_PoAValidatorManager *PoAValidatorManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "ADDRESS_LENGTH") + + if err != nil { + return *new(uint32), err + } + + out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) + + return out0, err + +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_PoAValidatorManager *PoAValidatorManagerSession) ADDRESSLENGTH() (uint32, error) { + return _PoAValidatorManager.Contract.ADDRESSLENGTH(&_PoAValidatorManager.CallOpts) +} + +// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. +// +// Solidity: function ADDRESS_LENGTH() view returns(uint32) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) ADDRESSLENGTH() (uint32, error) { + return _PoAValidatorManager.Contract.ADDRESSLENGTH(&_PoAValidatorManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _PoAValidatorManager.Contract.BLSPUBLICKEYLENGTH(&_PoAValidatorManager.CallOpts) +} + +// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. +// +// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { + return _PoAValidatorManager.Contract.BLSPUBLICKEYLENGTH(&_PoAValidatorManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _PoAValidatorManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_PoAValidatorManager.CallOpts) +} + +// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. +// +// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { + return _PoAValidatorManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_PoAValidatorManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _PoAValidatorManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_PoAValidatorManager.CallOpts) +} + +// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. +// +// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { + return _PoAValidatorManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_PoAValidatorManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_PoAValidatorManager *PoAValidatorManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "WARP_MESSENGER") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_PoAValidatorManager *PoAValidatorManagerSession) WARPMESSENGER() (common.Address, error) { + return _PoAValidatorManager.Contract.WARPMESSENGER(&_PoAValidatorManager.CallOpts) +} + +// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. +// +// Solidity: function WARP_MESSENGER() view returns(address) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) WARPMESSENGER() (common.Address, error) { + return _PoAValidatorManager.Contract.WARPMESSENGER(&_PoAValidatorManager.CallOpts) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_PoAValidatorManager *PoAValidatorManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "activeValidators", nodeID) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_PoAValidatorManager *PoAValidatorManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _PoAValidatorManager.Contract.ActiveValidators(&_PoAValidatorManager.CallOpts, nodeID) +} + +// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. +// +// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { + return _PoAValidatorManager.Contract.ActiveValidators(&_PoAValidatorManager.CallOpts, nodeID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_PoAValidatorManager *PoAValidatorManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "getValidator", validationID) + + if err != nil { + return *new(Validator), err + } + + out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) + + return out0, err + +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_PoAValidatorManager *PoAValidatorManagerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _PoAValidatorManager.Contract.GetValidator(&_PoAValidatorManager.CallOpts, validationID) +} + +// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. +// +// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { + return _PoAValidatorManager.Contract.GetValidator(&_PoAValidatorManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { + var out []interface{} + err := _PoAValidatorManager.contract.Call(opts, &out, "getWeight", validationID) + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) +} + +// GetWeight is a free data retrieval call binding the contract method 0x66435abf. +// +// Solidity: function getWeight(bytes32 validationID) view returns(uint64) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { + return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_PoAValidatorManager *PoAValidatorManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerSession) Owner() (common.Address, error) { + return _PoAValidatorManager.Contract.Owner(&_PoAValidatorManager.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_PoAValidatorManager *PoAValidatorManagerCallerSession) Owner() (common.Address, error) { + return _PoAValidatorManager.Contract.Owner(&_PoAValidatorManager.CallOpts) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "completeEndValidation", messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.CompleteEndValidation(&_PoAValidatorManager.TransactOpts, messageIndex) +} + +// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. +// +// Solidity: function completeEndValidation(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.CompleteEndValidation(&_PoAValidatorManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.CompleteValidatorRegistration(&_PoAValidatorManager.TransactOpts, messageIndex) +} + +// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. +// +// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.CompleteValidatorRegistration(&_PoAValidatorManager.TransactOpts, messageIndex) +} + +// Initialize is a paid mutator transaction binding the contract method 0x580a4006. +// +// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) Initialize(opts *bind.TransactOpts, settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initialize", settings, initialOwner) +} + +// Initialize is a paid mutator transaction binding the contract method 0x580a4006. +// +// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) Initialize(settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.Initialize(&_PoAValidatorManager.TransactOpts, settings, initialOwner) +} + +// Initialize is a paid mutator transaction binding the contract method 0x580a4006. +// +// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) Initialize(settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.Initialize(&_PoAValidatorManager.TransactOpts, settings, initialOwner) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// +// Solidity: function initializeEndValidation(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initializeEndValidation", validationID) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// +// Solidity: function initializeEndValidation(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) +} + +// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// +// Solidity: function initializeEndValidation(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, weight) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorRegistration(&_PoAValidatorManager.TransactOpts, registrationInput, weight) +} + +// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. +// +// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorRegistration(&_PoAValidatorManager.TransactOpts, registrationInput, weight) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, subnetConversionData, messageIndex) +} + +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. +// +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, subnetConversionData, messageIndex) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) RenounceOwnership() (*types.Transaction, error) { + return _PoAValidatorManager.Contract.RenounceOwnership(&_PoAValidatorManager.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _PoAValidatorManager.Contract.RenounceOwnership(&_PoAValidatorManager.TransactOpts) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.ResendEndValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) +} + +// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. +// +// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.ResendEndValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.ResendRegisterValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) +} + +// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. +// +// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.ResendRegisterValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.TransferOwnership(&_PoAValidatorManager.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.TransferOwnership(&_PoAValidatorManager.TransactOpts, newOwner) +} + +// PoAValidatorManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the PoAValidatorManager contract. +type PoAValidatorManagerInitialValidatorCreatedIterator struct { + Event *PoAValidatorManagerInitialValidatorCreated // 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 interfaces.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 *PoAValidatorManagerInitialValidatorCreatedIterator) 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(PoAValidatorManagerInitialValidatorCreated) + 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(PoAValidatorManagerInitialValidatorCreated) + 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 *PoAValidatorManagerInitialValidatorCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerInitialValidatorCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the PoAValidatorManager contract. +type PoAValidatorManagerInitialValidatorCreated struct { + ValidationID [32]byte + NodeID [32]byte + Weight *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*PoAValidatorManagerInitialValidatorCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerInitialValidatorCreatedIterator{contract: _PoAValidatorManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil +} + +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + 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(PoAValidatorManagerInitialValidatorCreated) + if err := _PoAValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 +} + +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. +// +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*PoAValidatorManagerInitialValidatorCreated, error) { + event := new(PoAValidatorManagerInitialValidatorCreated) + if err := _PoAValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the PoAValidatorManager contract. +type PoAValidatorManagerInitializedIterator struct { + Event *PoAValidatorManagerInitialized // 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 interfaces.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 *PoAValidatorManagerInitializedIterator) 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(PoAValidatorManagerInitialized) + 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(PoAValidatorManagerInitialized) + 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 *PoAValidatorManagerInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerInitialized represents a Initialized event raised by the PoAValidatorManager contract. +type PoAValidatorManagerInitialized 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 (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*PoAValidatorManagerInitializedIterator, error) { + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &PoAValidatorManagerInitializedIterator{contract: _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialized) (event.Subscription, error) { + + logs, sub, err := _PoAValidatorManager.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(PoAValidatorManagerInitialized) + if err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseInitialized(log types.Log) (*PoAValidatorManagerInitialized, error) { + event := new(PoAValidatorManagerInitialized) + if err := _PoAValidatorManager.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the PoAValidatorManager contract. +type PoAValidatorManagerOwnershipTransferredIterator struct { + Event *PoAValidatorManagerOwnershipTransferred // 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 interfaces.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 *PoAValidatorManagerOwnershipTransferredIterator) 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(PoAValidatorManagerOwnershipTransferred) + 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(PoAValidatorManagerOwnershipTransferred) + 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 *PoAValidatorManagerOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerOwnershipTransferred represents a OwnershipTransferred event raised by the PoAValidatorManager contract. +type PoAValidatorManagerOwnershipTransferred 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 (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*PoAValidatorManagerOwnershipTransferredIterator, 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 := _PoAValidatorManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerOwnershipTransferredIterator{contract: _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerOwnershipTransferred, 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 := _PoAValidatorManager.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(PoAValidatorManagerOwnershipTransferred) + if err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseOwnershipTransferred(log types.Log) (*PoAValidatorManagerOwnershipTransferred, error) { + event := new(PoAValidatorManagerOwnershipTransferred) + if err := _PoAValidatorManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodCreatedIterator struct { + Event *PoAValidatorManagerValidationPeriodCreated // 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 interfaces.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 *PoAValidatorManagerValidationPeriodCreatedIterator) 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(PoAValidatorManagerValidationPeriodCreated) + 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(PoAValidatorManagerValidationPeriodCreated) + 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 *PoAValidatorManagerValidationPeriodCreatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerValidationPeriodCreatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodCreated struct { + ValidationID [32]byte + NodeID [32]byte + RegisterValidationMessageID [32]byte + Weight *big.Int + RegistrationExpiry uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*PoAValidatorManagerValidationPeriodCreatedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerValidationPeriodCreatedIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nodeIDRule []interface{} + for _, nodeIDItem := range nodeID { + nodeIDRule = append(nodeIDRule, nodeIDItem) + } + var registerValidationMessageIDRule []interface{} + for _, registerValidationMessageIDItem := range registerValidationMessageID { + registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + 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(PoAValidatorManagerValidationPeriodCreated) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 +} + +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. +// +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*PoAValidatorManagerValidationPeriodCreated, error) { + event := new(PoAValidatorManagerValidationPeriodCreated) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodEndedIterator struct { + Event *PoAValidatorManagerValidationPeriodEnded // 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 interfaces.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 *PoAValidatorManagerValidationPeriodEndedIterator) 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(PoAValidatorManagerValidationPeriodEnded) + 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(PoAValidatorManagerValidationPeriodEnded) + 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 *PoAValidatorManagerValidationPeriodEndedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerValidationPeriodEndedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodEnded struct { + ValidationID [32]byte + Status uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*PoAValidatorManagerValidationPeriodEndedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerValidationPeriodEndedIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var statusRule []interface{} + for _, statusItem := range status { + statusRule = append(statusRule, statusItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) + 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(PoAValidatorManagerValidationPeriodEnded) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 +} + +// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. +// +// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*PoAValidatorManagerValidationPeriodEnded, error) { + event := new(PoAValidatorManagerValidationPeriodEnded) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodRegisteredIterator struct { + Event *PoAValidatorManagerValidationPeriodRegistered // 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 interfaces.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 *PoAValidatorManagerValidationPeriodRegisteredIterator) 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(PoAValidatorManagerValidationPeriodRegistered) + 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(PoAValidatorManagerValidationPeriodRegistered) + 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 *PoAValidatorManagerValidationPeriodRegisteredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerValidationPeriodRegisteredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidationPeriodRegistered struct { + ValidationID [32]byte + Weight *big.Int + Timestamp *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*PoAValidatorManagerValidationPeriodRegisteredIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerValidationPeriodRegisteredIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil +} + +// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) + 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(PoAValidatorManagerValidationPeriodRegistered) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 +} + +// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. +// +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*PoAValidatorManagerValidationPeriodRegistered, error) { + event := new(PoAValidatorManagerValidationPeriodRegistered) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidatorRemovalInitializedIterator struct { + Event *PoAValidatorManagerValidatorRemovalInitialized // 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 interfaces.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 *PoAValidatorManagerValidatorRemovalInitializedIterator) 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(PoAValidatorManagerValidatorRemovalInitialized) + 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(PoAValidatorManagerValidatorRemovalInitialized) + 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 *PoAValidatorManagerValidatorRemovalInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerValidatorRemovalInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidatorRemovalInitialized struct { + ValidationID [32]byte + SetWeightMessageID [32]byte + Weight *big.Int + EndTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*PoAValidatorManagerValidatorRemovalInitializedIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerValidatorRemovalInitializedIterator{contract: _PoAValidatorManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil +} + +// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var setWeightMessageIDRule []interface{} + for _, setWeightMessageIDItem := range setWeightMessageID { + setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) + 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(PoAValidatorManagerValidatorRemovalInitialized) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 +} + +// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. +// +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*PoAValidatorManagerValidatorRemovalInitialized, error) { + event := new(PoAValidatorManagerValidatorRemovalInitialized) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PoAValidatorManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidatorWeightUpdateIterator struct { + Event *PoAValidatorManagerValidatorWeightUpdate // 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 interfaces.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 *PoAValidatorManagerValidatorWeightUpdateIterator) 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(PoAValidatorManagerValidatorWeightUpdate) + 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(PoAValidatorManagerValidatorWeightUpdate) + 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 *PoAValidatorManagerValidatorWeightUpdateIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PoAValidatorManagerValidatorWeightUpdateIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PoAValidatorManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the PoAValidatorManager contract. +type PoAValidatorManagerValidatorWeightUpdate struct { + ValidationID [32]byte + Nonce uint64 + ValidatorWeight uint64 + SetWeightMessageID [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*PoAValidatorManagerValidatorWeightUpdateIterator, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + if err != nil { + return nil, err + } + return &PoAValidatorManagerValidatorWeightUpdateIterator{contract: _PoAValidatorManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil +} + +// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { + + var validationIDRule []interface{} + for _, validationIDItem := range validationID { + validationIDRule = append(validationIDRule, validationIDItem) + } + var nonceRule []interface{} + for _, nonceItem := range nonce { + nonceRule = append(nonceRule, nonceItem) + } + + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) + 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(PoAValidatorManagerValidatorWeightUpdate) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 +} + +// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. +// +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*PoAValidatorManagerValidatorWeightUpdate, error) { + event := new(PoAValidatorManagerValidatorWeightUpdate) + if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/contracts/mocks/ExampleERC20.sol b/contracts/mocks/ExampleERC20.sol index 0e5987584..1c318c486 100644 --- a/contracts/mocks/ExampleERC20.sol +++ b/contracts/mocks/ExampleERC20.sol @@ -13,7 +13,7 @@ import { ERC20Burnable, ERC20 } from "@openzeppelin/contracts@5.0.2/token/ERC20/extensions/ERC20Burnable.sol"; -import {IERC20Mintable} from "../staking/interfaces/IERC20Mintable.sol"; +import {IERC20Mintable} from "../validatorManager/interfaces/IERC20Mintable.sol"; contract ExampleERC20 is ERC20Burnable, IERC20Mintable { string private constant _TOKEN_NAME = "Mock Token"; diff --git a/contracts/staking/ERC20TokenStakingManager.sol b/contracts/validatorManager/ERC20TokenStakingManager.sol similarity index 100% rename from contracts/staking/ERC20TokenStakingManager.sol rename to contracts/validatorManager/ERC20TokenStakingManager.sol diff --git a/contracts/staking/ExampleRewardCalculator.sol b/contracts/validatorManager/ExampleRewardCalculator.sol similarity index 100% rename from contracts/staking/ExampleRewardCalculator.sol rename to contracts/validatorManager/ExampleRewardCalculator.sol diff --git a/contracts/staking/NativeTokenStakingManager.sol b/contracts/validatorManager/NativeTokenStakingManager.sol similarity index 100% rename from contracts/staking/NativeTokenStakingManager.sol rename to contracts/validatorManager/NativeTokenStakingManager.sol diff --git a/contracts/staking/PoAValidatorManager.sol b/contracts/validatorManager/PoAValidatorManager.sol similarity index 100% rename from contracts/staking/PoAValidatorManager.sol rename to contracts/validatorManager/PoAValidatorManager.sol diff --git a/contracts/staking/PoSValidatorManager.sol b/contracts/validatorManager/PoSValidatorManager.sol similarity index 100% rename from contracts/staking/PoSValidatorManager.sol rename to contracts/validatorManager/PoSValidatorManager.sol diff --git a/contracts/staking/README.md b/contracts/validatorManager/README.md similarity index 100% rename from contracts/staking/README.md rename to contracts/validatorManager/README.md diff --git a/contracts/staking/ValidatorManager.sol b/contracts/validatorManager/ValidatorManager.sol similarity index 100% rename from contracts/staking/ValidatorManager.sol rename to contracts/validatorManager/ValidatorManager.sol diff --git a/contracts/staking/ValidatorMessages.sol b/contracts/validatorManager/ValidatorMessages.sol similarity index 100% rename from contracts/staking/ValidatorMessages.sol rename to contracts/validatorManager/ValidatorMessages.sol diff --git a/contracts/staking/interfaces/IERC20Mintable.sol b/contracts/validatorManager/interfaces/IERC20Mintable.sol similarity index 100% rename from contracts/staking/interfaces/IERC20Mintable.sol rename to contracts/validatorManager/interfaces/IERC20Mintable.sol diff --git a/contracts/staking/interfaces/IERC20TokenStakingManager.sol b/contracts/validatorManager/interfaces/IERC20TokenStakingManager.sol similarity index 100% rename from contracts/staking/interfaces/IERC20TokenStakingManager.sol rename to contracts/validatorManager/interfaces/IERC20TokenStakingManager.sol diff --git a/contracts/staking/interfaces/INativeTokenStakingManager.sol b/contracts/validatorManager/interfaces/INativeTokenStakingManager.sol similarity index 100% rename from contracts/staking/interfaces/INativeTokenStakingManager.sol rename to contracts/validatorManager/interfaces/INativeTokenStakingManager.sol diff --git a/contracts/staking/interfaces/IPoAValidatorManager.sol b/contracts/validatorManager/interfaces/IPoAValidatorManager.sol similarity index 100% rename from contracts/staking/interfaces/IPoAValidatorManager.sol rename to contracts/validatorManager/interfaces/IPoAValidatorManager.sol diff --git a/contracts/staking/interfaces/IPoSValidatorManager.sol b/contracts/validatorManager/interfaces/IPoSValidatorManager.sol similarity index 100% rename from contracts/staking/interfaces/IPoSValidatorManager.sol rename to contracts/validatorManager/interfaces/IPoSValidatorManager.sol diff --git a/contracts/staking/interfaces/IRewardCalculator.sol b/contracts/validatorManager/interfaces/IRewardCalculator.sol similarity index 100% rename from contracts/staking/interfaces/IRewardCalculator.sol rename to contracts/validatorManager/interfaces/IRewardCalculator.sol diff --git a/contracts/staking/interfaces/IValidatorManager.sol b/contracts/validatorManager/interfaces/IValidatorManager.sol similarity index 100% rename from contracts/staking/interfaces/IValidatorManager.sol rename to contracts/validatorManager/interfaces/IValidatorManager.sol diff --git a/contracts/staking/tests/ERC20TokenStakingManagerTests.t.sol b/contracts/validatorManager/tests/ERC20TokenStakingManagerTests.t.sol similarity index 100% rename from contracts/staking/tests/ERC20TokenStakingManagerTests.t.sol rename to contracts/validatorManager/tests/ERC20TokenStakingManagerTests.t.sol diff --git a/contracts/staking/tests/ExamplesRewardCalculatorTests.t.sol b/contracts/validatorManager/tests/ExamplesRewardCalculatorTests.t.sol similarity index 100% rename from contracts/staking/tests/ExamplesRewardCalculatorTests.t.sol rename to contracts/validatorManager/tests/ExamplesRewardCalculatorTests.t.sol diff --git a/contracts/staking/tests/NativeTokenStakingManagerTests.t.sol b/contracts/validatorManager/tests/NativeTokenStakingManagerTests.t.sol similarity index 100% rename from contracts/staking/tests/NativeTokenStakingManagerTests.t.sol rename to contracts/validatorManager/tests/NativeTokenStakingManagerTests.t.sol diff --git a/contracts/staking/tests/PoAValidatorManagerTests.t.sol b/contracts/validatorManager/tests/PoAValidatorManagerTests.t.sol similarity index 100% rename from contracts/staking/tests/PoAValidatorManagerTests.t.sol rename to contracts/validatorManager/tests/PoAValidatorManagerTests.t.sol diff --git a/contracts/staking/tests/PoSValidatorManagerTests.t.sol b/contracts/validatorManager/tests/PoSValidatorManagerTests.t.sol similarity index 100% rename from contracts/staking/tests/PoSValidatorManagerTests.t.sol rename to contracts/validatorManager/tests/PoSValidatorManagerTests.t.sol diff --git a/contracts/staking/tests/ValidatorManagerTests.t.sol b/contracts/validatorManager/tests/ValidatorManagerTests.t.sol similarity index 100% rename from contracts/staking/tests/ValidatorManagerTests.t.sol rename to contracts/validatorManager/tests/ValidatorManagerTests.t.sol diff --git a/contracts/staking/tests/ValidatorMessagesTests.t.sol b/contracts/validatorManager/tests/ValidatorMessagesTests.t.sol similarity index 100% rename from contracts/staking/tests/ValidatorMessagesTests.t.sol rename to contracts/validatorManager/tests/ValidatorMessagesTests.t.sol From fcaf32cc13e0ef60b29a263cd0802986975ad1b1 Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Wed, 18 Sep 2024 16:14:34 -0400 Subject: [PATCH 2/6] remove staking abi-bindings --- .../ERC20TokenStakingManager.go | 2606 ---------------- .../ExampleRewardCalculator.go | 327 -- .../NativeTokenStakingManager.go | 2637 ----------------- .../PoAValidatorManager.go | 1947 ------------ 4 files changed, 7517 deletions(-) delete mode 100644 abi-bindings/go/staking/ERC20TokenStakingManager/ERC20TokenStakingManager.go delete mode 100644 abi-bindings/go/staking/ExampleRewardCalculator/ExampleRewardCalculator.go delete mode 100644 abi-bindings/go/staking/NativeTokenStakingManager/NativeTokenStakingManager.go delete mode 100644 abi-bindings/go/staking/PoAValidatorManager/PoAValidatorManager.go diff --git a/abi-bindings/go/staking/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/staking/ERC20TokenStakingManager/ERC20TokenStakingManager.go deleted file mode 100644 index 7c508d3ba..000000000 --- a/abi-bindings/go/staking/ERC20TokenStakingManager/ERC20TokenStakingManager.go +++ /dev/null @@ -1,2606 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package erc20tokenstakingmanager - -import ( - "errors" - "math/big" - "strings" - - "github.com/ava-labs/subnet-evm/accounts/abi" - "github.com/ava-labs/subnet-evm/accounts/abi/bind" - "github.com/ava-labs/subnet-evm/core/types" - "github.com/ava-labs/subnet-evm/interfaces" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = interfaces.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// InitialValidator is an auto generated low-level Go binding around an user-defined struct. -type InitialValidator struct { - NodeID [32]byte - Weight uint64 - BlsPublicKey []byte -} - -// PoSValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. -type PoSValidatorManagerSettings struct { - BaseSettings ValidatorManagerSettings - MinimumStakeAmount *big.Int - MaximumStakeAmount *big.Int - MinimumStakeDuration uint64 - MinimumDelegationFeeBips uint16 - MaximumStakeMultiplier uint8 - RewardCalculator common.Address -} - -// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. -type SubnetConversionData struct { - ConvertSubnetTxID [32]byte - ValidatorManagerBlockchainID [32]byte - ValidatorManagerAddress common.Address - InitialValidators []InitialValidator -} - -// Validator is an auto generated low-level Go binding around an user-defined struct. -type Validator struct { - Status uint8 - NodeID [32]byte - StartingWeight uint64 - MessageNonce uint64 - Weight uint64 - StartedAt uint64 - EndedAt uint64 -} - -// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. -type ValidatorManagerSettings struct { - PChainBlockchainID [32]byte - SubnetID [32]byte - ChurnPeriodSeconds uint64 - MaximumChurnPercentage uint8 -} - -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID [32]byte - RegistrationExpiry uint64 - BlsPublicKey []byte -} - -// ERC20TokenStakingManagerMetaData contains all meta data concerning the ERC20TokenStakingManager contract. -var ERC20TokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeDelegatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndDelegation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structPoSValidatorManagerSettings\",\"components\":[{\"name\":\"baseSettings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"minimumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minimumStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rewardCalculator\",\"type\":\"address\",\"internalType\":\"contractIRewardCalculator\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20Mintable\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeDelegatorRegistration\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"delegationAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"delegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"minStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendUpdateDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"valueToWeight\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"weightToValue\",\"inputs\":[{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"event\",\"name\":\"DelegationEnded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorAdded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"delegatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"delegatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRegistered\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"startTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRemovalInitialized\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressEmptyCode\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615e8b380380615e8b83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615d3e8061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061016d575f3560e01c806366435abf116100d9578063b771b3bc11610093578063c974d1b61161006e578063c974d1b61461037a578063d5f20ff614610382578063df93d8de146103a2578063eb0acb89146103ac575f80fd5b8063b771b3bc1461032e578063ba3a4b9714610354578063bee0a03f14610367575f80fd5b806366435abf146102c757806376f78621146102da5780638280a25a146102ed57806398f3e2b4146102f55780639e1bc4ef14610308578063a3a65e481461031b575f80fd5b806335455ded1161012a57806335455ded14610242578063467ef06f1461025e5780635297fae61461027157806360305d621461028457806361e2f490146102a157806362065856146102b4575f80fd5b80630118acc4146101715780630322ed98146101865780630cdd098514610199578063151d30d1146101ea5780632e2194d814610204578063330a0a3a1461022f575b5f80fd5b61018461017f3660046150a1565b6103bf565b005b6101846101943660046150dc565b610862565b6101d76101a73660046150dc565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b6101f2600a81565b60405160ff90911681526020016101e1565b6102176102123660046150dc565b610a1b565b6040516001600160401b0390911681526020016101e1565b61018461023d366004615107565b610a31565b61024b61271081565b60405161ffff90911681526020016101e1565b61018461026c366004615145565b610b10565b61018461027f36600461515e565b610bb0565b61028c601481565b60405163ffffffff90911681526020016101e1565b6101846102af366004615186565b610d85565b6101d76102c23660046151ea565b6113b9565b6102176102d53660046150dc565b6113d2565b6101846102e83660046150a1565b6113e6565b6101f2603081565b61018461030336600461515e565b6115e0565b6101d7610316366004615203565b611862565b610184610329366004615145565b61188e565b61033c6005600160991b0181565b6040516001600160a01b0390911681526020016101e1565b6101846103623660046150dc565b611a46565b6101846103753660046150dc565b611ccc565b6101f2601481565b6103956103903660046150dc565b611de0565b6040516101e19190615237565b6102176202a30081565b6101d76103ba3660046152fe565b611ea8565b5f8381527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d06602052604080822060018101548251610100810190935281545f80516020615c92833981519152949193919290829060ff16600481111561042757610427615223565b600481111561043857610438615223565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b909104811660c083015260039092015490911660e09091015290505f6104b483611de0565b90506002825160048111156104cb576104cb615223565b1461051d5760405162461bcd60e51b815260206004820152602a60248201525f80516020615cb28339815191526044820152696e6f742061637469766560b01b60648201526084015b60405180910390fd5b60208201516001600160a01b031633146105825760405162461bcd60e51b815260206004820152603360248201525f80516020615cb28339815191526044820152723737ba1037bbb732b210313c9039b2b73232b960691b6064820152608401610514565b6003825280515f90600290600581111561059e5761059e615223565b036105f55786156105b6576105b38487611edd565b90505b5f836060015183608001516105cb9190615377565b90506105d78582612179565b506001600160401b0390811660e0860152421660a085015250610629565b505f83815260098501602052604090205460608201516001600160401b0390811660e085015260c0830151811660a0850152165b8460040160089054906101000a90046001600160a01b03166001600160a01b031663778c06b561065c85606001516113b9565b60a0808601516080880151918801516040516001600160e01b031960e087901b16815260048101949094526001600160401b03918216602485015291811660448401529081166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa1580156106d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fd9190615397565b5f898152600787016020908152604080832093909355600688019052208351815485929190829060ff1916600183600481111561073c5761073c615223565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560408083015160018301556060830151600283018054608086015160a08088015160c08901516001600160401b03908116600160c01b026001600160c01b03928216600160801b02929092166001600160801b03948216600160401b026001600160801b0319909616978216979097179490941792909216949094171790915560e090940151600390930180549390941667ffffffffffffffff199390931692909217909255840151905185918a917f5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c6991610850916001600160401b0391909116815260200190565b60405180910390a35050505050505050565b5f8181525f80516020615d128339815191526020526040808220815160e0810190925280545f80516020615cd283398151915293929190829060ff1660058111156108af576108af615223565b60058111156108c0576108c0615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091508151600581111561092f5761092f615223565b146109945760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b6064820152608401610514565b6005600160991b016001600160a01b031663ee5b48eb6109b98584606001515f6122d0565b6040518263ffffffff1660e01b81526004016109d591906153d0565b6020604051808303815f875af11580156109f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a159190615397565b50505050565b5f610a2b64e8d4a5100083615402565b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610a7a575080546001600160401b03808416911610155b15610a985760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610ac384846124f7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615c928339815191525f80610b2984612511565b91509150610b368261285b565b610b405750505050565b5f8281526005840160205260409020546001600160a01b0316600482516005811115610b6e57610b6e615223565b03610b93575f83815260088501602052604081208054919055610b918282612896565b505b610ba981610ba484604001516113b9565b61290c565b5050505050565b5f80516020615c928339815191525f610bc88461292f565b90505f80610bd98360400151612b09565b50915091505f610be883611de0565b9050816001600160401b031681606001516001600160401b03161015610c205760405162461bcd60e51b815260040161051490615421565b5f8681526006860160205260409020600201546001600160401b03808416600160c01b909204161115610c655760405162461bcd60e51b815260040161051490615463565b60015f87815260068701602052604090205460ff166004811115610c8b57610c8b615223565b14610cf45760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a2064656c65676174696f6e4960448201527211081b9bdd081c195b991a5b99c81859191959606a1b6064820152608401610514565b5f868152600686016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160401b026fffffffffffffffff000000000000000019909316929092179092559251928352841691859189917f245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064910160405180910390a450505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f80516020615cd28339815191529060ff1615610e225760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b6064820152608401610514565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e899190615397565b836020013514610eeb5760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b6064820152608401610514565b30610efc60608501604086016154ac565b6001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b6064820152608401610514565b5f610f7c60608501856154c7565b91505f9050843560208601356014610f9a6060890160408a016154ac565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff1610156112c9575f61101a60608901896154c7565b8363ffffffff168181106110305761103061550c565b90506020028101906110429190615520565b61104b906155d0565b80515f818152600989016020526040902054919250901561107e5760405162461bcd60e51b815260040161051490615667565b84825f0151836020015184604001516040516020016110a094939291906156af565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f916002916110ee91906156fe565b602060405180830381855afa158015611109573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061112c9190615397565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff191660018360058111156111b8576111b8615223565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff19169284169290921790915584015161126b91168661570f565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a3505050806112c290615722565b9050610ffe565b50600584018190555f6112db8661292f565b90505f6112eb8260400151612d44565b9050806002856040516112fe91906156fe565b602060405180830381855afa158015611319573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061133c9190615397565b146113a05760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b6064820152608401610514565b505050600a909201805460ff1916600117905550505050565b5f610a2b6001600160401b03831664e8d4a51000615744565b5f6113dc82611de0565b6080015192915050565b5f80516020615c928339815191525f6113fe85612eb6565b5f86815260058401602052604090205460a082015191925061143191600160b01b9091046001600160401b03169061575b565b6001600160401b03168160c001516001600160401b031610156114b25760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a206d696e696d756d207374616044820152721ad948191d5c985d1a5bdb881b9bdd081b595d606a1b6064820152608401610514565b8315610ba9575f6114c38685611edd565b5f87815260098501602052604090819020805467ffffffffffffffff19166001600160401b038416179055600485015490840151919250600160401b90046001600160a01b03169063778c06b59061151a906113b9565b60a085015160c086015160405160e085901b6001600160e01b031916815260048101939093526001600160401b0391821660248401819052604484015281166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa158015611590573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b49190615397565b5f878152600885016020526040812080549091906115d390849061570f565b9091555050505050505050565b6115e8613131565b5f80516020615c928339815191525f6116008461292f565b90505f806116118360400151612b09565b50915091505f61162083611de0565b5f8781526006870160205260408082208151610100810190925280549394509192909190829060ff16600481111561165a5761165a615223565b600481111561166b5761166b615223565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b03808216606080850191909152600160401b830482166080850152600160801b8304821660a0850152600160c01b909204811660c0840152600390930154831660e0909201919091528401519192508481169116101561170a5760405162461bcd60e51b815260040161051490615421565b826001600160401b03168160e001516001600160401b031611156117405760405162461bcd60e51b815260040161051490615463565b60038151600481111561175557611755615223565b146117a95760405162461bcd60e51b815260206004820152603160248201525f80516020615cb28339815191526044820152701b9bdd081c195b991a5b99c81859191959607a1b6064820152608401610514565b5f8781526006870160209081526040808320805460ff191660041790558382015160078a01909252909120546117df9190612896565b856007015f8881526020019081526020015f205f905561180a8160200151610ba483606001516113b9565b826001600160401b031684887f52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab60405160405180910390a450505050505061185e60015f80516020615cf283398151915255565b5050565b5f61186b613131565b61187683338461317b565b9050610a2b60015f80516020615cf283398151915255565b5f80516020615cd28339815191525f6118a68361292f565b90505f806118b78360400151613535565b91509150806119195760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b6064820152608401610514565b5f828152600785016020526040812080546119339061577b565b9050118015611965575060015f83815260088601602052604090205460ff16600581111561196357611963615223565b145b6119815760405162461bcd60e51b8152600401610514906157b3565b5f828152600785016020526040812061199991614ff1565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0660205260408082208151610100810190925280545f80516020615c9283398151915293929190829060ff166004811115611aa757611aa7615223565b6004811115611ab857611ab8615223565b8152815461010090046001600160a01b03166020820152600180830154604083015260028301546001600160401b038082166060850152600160401b820481166080850152600160801b8204811660a0850152600160c01b909104811660c084015260039093015490921660e09091015290915081516004811115611b3f57611b3f615223565b1480611b5d5750600381516004811115611b5b57611b5b615223565b145b611bb15760405162461bcd60e51b815260206004820152603260248201525f80516020615cb2833981519152604482015271737461747573206e6f742070656e64696e6760701b6064820152608401610514565b5f611bbf8260400151611de0565b905080606001516001600160401b03165f03611c435760405162461bcd60e51b815260206004820152603f60248201527f506f5356616c696461746f724d616e616765723a20636f756c64206e6f74206660448201527f696e642076616c696461746f7220666f722064656c65676174696f6e204944006064820152608401610514565b6005600160991b016001600160a01b031663ee5b48eb611c708460400151846060015185608001516122d0565b6040518263ffffffff1660e01b8152600401611c8c91906153d0565b6020604051808303815f875af1158015611ca8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba99190615397565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f80516020615cd2833981519152929190611d149061577b565b9050118015611d46575060015f83815260088301602052604090205460ff166005811115611d4457611d44615223565b145b611d625760405162461bcd60e51b8152600401610514906157b3565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91611d9b91906004016157fa565b6020604051808303815f875af1158015611db7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ddb9190615397565b505050565b611de8615028565b5f8281525f80516020615d12833981519152602052604090819020815160e0810190925280545f80516020615cd2833981519152929190829060ff166005811115611e3557611e35615223565b6005811115611e4657611e46615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b5f611eb1613131565b611ebd858585856136d6565b9050611ed560015f80516020615cf283398151915255565b949350505050565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015611f28573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f4f919081019061588f565b9150915080611fb25760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642077617260448201526870206d65737361676560b81b6064820152608401610514565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120199190615397565b82511461207d5760405162461bcd60e51b815260206004820152602c60248201527f506f5356616c696461746f724d616e616765723a20696e76616c696420736f7560448201526b1c98d94818da185a5b88125160a21b6064820152608401610514565b60208201516001600160a01b0316156120f35760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b6064820152608401610514565b5f80612102846040015161394b565b9150915081871461216f5760405162461bcd60e51b815260206004820152603160248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964207570746044820152701a5b59481d985b1a59185d1a5bdb881251607a1b6064820152608401610514565b9695505050505050565b5f8281525f80516020615d12833981519152602052604081206002015481905f80516020615cd283398151915290600160801b90046001600160401b03166121c18582613b23565b5f6121cb87613d31565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb61221b8a858b6122d0565b6040518263ffffffff1660e01b815260040161223791906153d0565b6020604051808303815f875af1158015612253573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122779190615397565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b600281101561234957612309816001615961565b612314906008615744565b5081515f9083908390811061232b5761232b61550c565b60200101906001600160f81b03191690815f1a9053506001016122f5565b505f5b60048110156123b457612360816003615961565b61236b906008615744565b600263ffffffff16901c60f81b82826002612386919061570f565b815181106123965761239661550c565b60200101906001600160f81b03191690815f1a90535060010161234c565b505f5b6020811015612416576123cb81601f615961565b6123d6906008615744565b86901c60f81b826123e883600661570f565b815181106123f8576123f861550c565b60200101906001600160f81b03191690815f1a9053506001016123b7565b505f5b60088110156124815761242d816007615961565b612438906008615744565b6001600160401b038616901c60f81b8261245383602661570f565b815181106124635761246361550c565b60200101906001600160f81b03191690815f1a905350600101612419565b505f5b60088110156124ec57612498816007615961565b6124a3906008615744565b6001600160401b038516901c60f81b826124be83602e61570f565b815181106124ce576124ce61550c565b60200101906001600160f81b03191690815f1a905350600101612484565b5090505b9392505050565b6124ff613dc1565b61250882613e0c565b61185e81613e83565b5f61251a615028565b5f80516020615cd28339815191525f6125328561292f565b90505f806125438360400151613535565b9150915080156125a85760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b6064820152608401610514565b5f828152600885016020526040808220815160e081019092528054829060ff1660058111156125d9576125d9615223565b60058111156125ea576125ea615223565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f908251600581111561265b5761265b615223565b1480612679575060018251600581111561267757612677615223565b145b6126d85760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b6064820152608401610514565b6003825160058111156126ed576126ed615223565b036126fa575060046126fe565b5060055b6020808301515f9081526009880190915260408120558181600581111561272757612727615223565b9081600581111561273a5761273a615223565b9052505f84815260088701602052604090208251815484929190829060ff1916600183600581111561276e5761276e615223565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558151600581111561282257612822615223565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b5f9081527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0560205260409020546001600160a01b0316151590565b5f5f80516020615c7283398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b1580156128f1575f80fd5b505af1158015612903573d5f803e3d5ffd5b50505050505050565b5f80516020615c728339815191525461185e906001600160a01b03168383613f24565b60408051606080820183525f8083526020830181905292820152905f80516020615cd28339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156129a4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129cb919081019061588f565b9150915080612a2b5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b6064820152608401610514565b8254825114612a8e5760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b6064820152608401610514565b60208201516001600160a01b031615612b015760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b6064820152608401610514565b509392505050565b5f805f8351603614612b2d5760405162461bcd60e51b815260040161051490615974565b5f805b6002811015612b7c57612b44816001615961565b612b4f906008615744565b61ffff16868281518110612b6557612b6561550c565b016020015160f81c901b9190911790600101612b30565b5061ffff811615612b9f5760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015612bfa57612bb6816003615961565b612bc1906008615744565b63ffffffff1687612bd383600261570f565b81518110612be357612be361550c565b016020015160f81c901b9190911790600101612ba2565b5063ffffffff8116600414612c215760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015612c7657612c3881601f615961565b612c43906008615744565b88612c4f83600661570f565b81518110612c5f57612c5f61550c565b016020015160f81c901b9190911790600101612c24565b505f805b6008811015612cd557612c8e816007615961565b612c99906008615744565b6001600160401b031689612cae83602661570f565b81518110612cbe57612cbe61550c565b016020015160f81c901b9190911790600101612c7a565b505f805b6008811015612d3457612ced816007615961565b612cf8906008615744565b6001600160401b03168a612d0d83602e61570f565b81518110612d1d57612d1d61550c565b016020015160f81c901b9190911790600101612cd9565b5091989097509095509350505050565b5f8151602614612d665760405162461bcd60e51b815260040161051490615974565b5f805b6002811015612db557612d7d816001615961565b612d88906008615744565b61ffff16848281518110612d9e57612d9e61550c565b016020015160f81c901b9190911790600101612d69565b5061ffff811615612dd85760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015612e3357612def816003615961565b612dfa906008615744565b63ffffffff1685612e0c83600261570f565b81518110612e1c57612e1c61550c565b016020015160f81c901b9190911790600101612ddb565b5063ffffffff811615612e585760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015612ead57612e6f81601f615961565b612e7a906008615744565b86612e8683600661570f565b81518110612e9657612e9661550c565b016020015160f81c901b9190911790600101612e5b565b50949350505050565b612ebe615028565b5f8281525f80516020615d128339815191526020526040808220815160e0810190925280545f80516020615cd283398151915293929190829060ff166005811115612f0b57612f0b615223565b6005811115612f1c57612f1c615223565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c09091015290915081516005811115612f8e57612f8e615223565b14612fea5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b6064820152608401610514565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff1916600183600581111561302e5761302e615223565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6130da8582612179565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f80516020615cf283398151915280546001190161316257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f80516020615cf283398151915255565b5f5f80516020615c928339815191528161319761021285613f83565b90505f6131a387611de0565b90506131ae8761285b565b61320b5760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a206e6f74206120506f53207660448201526730b634b230ba37b960c11b6064820152608401610514565b60028151600581111561322057613220615223565b1461327f5760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a2076616c696461746f72206e6044820152686f742061637469766560b81b6064820152608401610514565b5f828260800151613290919061575b565b600485015460408401519192506132b2916001600160401b0390911690615a47565b6001600160401b0316816001600160401b031611156133315760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a206d6178696d756d2076616c6044820152741a59185d1bdc881dd95a59da1d081c995858da1959605a1b6064820152608401610514565b5f8061333d8a84612179565b915091505f8a8360405160200161336b92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815282825280516020909101206101008301909152915080600181526001600160a01b038c1660208083019190915260408083018f90526001600160401b03808b1660608501525f6080850181905260a0850181905290881660c085015260e090930183905284835260068b01909152902081518154829060ff1916600183600481111561340657613406615223565b02179055506020828101518254610100600160a81b0319166101006001600160a01b039283160217835560408085015160018501556060808601516002860180546080808a015160a08b015160c08c01516001600160401b039687166001600160801b031990951694909417600160401b92871692909202919091176001600160801b0316600160801b918616919091026001600160c01b031617600160c01b928516929092029190911790915560e0909701516003909601805467ffffffffffffffff191696821696909617909555815189861681528a861694810194909452938b1690830152918101859052908c16918d9184917fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426910160405180910390a49a9950505050505050505050565b5f8082516027146135585760405162461bcd60e51b815260040161051490615974565b5f805b60028110156135a75761356f816001615961565b61357a906008615744565b61ffff168582815181106135905761359061550c565b016020015160f81c901b919091179060010161355b565b5061ffff8116156135ca5760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015613625576135e1816003615961565b6135ec906008615744565b63ffffffff16866135fe83600261570f565b8151811061360e5761360e61550c565b016020015160f81c901b91909117906001016135cd565b5063ffffffff811660031461364c5760405162461bcd60e51b815260040161051490615a00565b5f805b60208110156136a15761366381601f615961565b61366e906008615744565b8761367a83600661570f565b8151811061368a5761368a61550c565b016020015160f81c901b919091179060010161364f565b505f866026815181106136b6576136b661550c565b016020015191976001600160f81b03199092161515965090945050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d03545f905f80516020615c928339815191529061ffff861610801590613722575061271061ffff861611155b61373e5760405162461bcd60e51b815260040161051490615a72565b60028101546001600160401b0390811690851610156137b75760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d696e60448201526e1039ba30b5b290323ab930ba34b7b760891b6064820152608401610514565b805483101561381a5760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152687420746f6f206c6f7760b81b6064820152608401610514565b80600101548311156138815760405162461bcd60e51b815260206004820152602a60248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152690e840e8dede40d0d2ced60b31b6064820152608401610514565b5f61388b84613f83565b90505f61389782610a1b565b90505f6138a48983613fa6565b905060405180606001604052806138b83390565b6001600160a01b03908116825261ffff808c166020808501919091526001600160401b03808d166040958601525f8781526005909a0182529884902085518154928701519690950151909916600160b01b0267ffffffffffffffff60b01b1995909216600160a01b026001600160b01b031990911693909216929092171791909116179093555090915050949350505050565b5f808251602e1461396e5760405162461bcd60e51b815260040161051490615974565b5f805b60028110156139bd57613985816001615961565b613990906008615744565b61ffff168582815181106139a6576139a661550c565b016020015160f81c901b9190911790600101613971565b5061ffff8116156139e05760405162461bcd60e51b8152600401610514906159bd565b5f805b6004811015613a3b576139f7816003615961565b613a02906008615744565b63ffffffff1686613a1483600261570f565b81518110613a2457613a2461550c565b016020015160f81c901b91909117906001016139e3565b5063ffffffff8116600514613a625760405162461bcd60e51b815260040161051490615a00565b5f805b6020811015613ab757613a7981601f615961565b613a84906008615744565b87613a9083600661570f565b81518110613aa057613aa061550c565b016020015160f81c901b9190911790600101613a65565b505f805b6008811015613b1657613acf816007615961565b613ada906008615744565b6001600160401b031688613aef83602661570f565b81518110613aff57613aff61550c565b016020015160f81c901b9190911790600101613abb565b5090969095509350505050565b5f80516020615cd28339815191525f6001600160401b038084169085161115613b5757613b508385615377565b9050613b64565b613b618484615377565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b0316606082015242911580613bc6575060028401548151613bc2916001600160401b03169061570f565b8210155b15613bec576001600160401b038316606082015281815260408101516020820152613c0b565b8281606001818151613bfe919061575b565b6001600160401b03169052505b6060810151613c1b906064615a47565b602082015160028601546001600160401b039290921691613c469190600160401b900460ff16615744565b1015613caa5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b6064820152608401610514565b856001600160401b031681604001818151613cc5919061570f565b9052506040810180516001600160401b0387169190613ce5908390615961565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f8181525f80516020615d128339815191526020526040812060020180545f80516020615cd283398151915291600160401b9091046001600160401b0316906008613d7b83615abd565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16613e0a57604051631afcd79f60e31b815260040160405180910390fd5b565b613e14613dc1565b613e1d8161450b565b613e25614524565b613e80608082013560a0830135613e4260e0850160c086016151ea565b613e53610100860160e08701615ad8565b61ffff16613e6961012087016101008801615af1565b613e7b610140880161012089016154ac565b614534565b50565b613e8b613dc1565b5f80516020615c728339815191526001600160a01b038216613f045760405162461bcd60e51b815260206004820152602c60248201527f4552433230546f6b656e5374616b696e674d616e616765723a207a65726f207460448201526b6f6b656e206164647265737360a01b6064820152608401610514565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b03838116602483015260448201839052611ddb91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614778565b5f610a2b825f80516020615c72833981519152546001600160a01b0316906147d9565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff166140315760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b6064820152608401610514565b5f80516020615cd28339815191524261405060408601602087016151ea565b6001600160401b0316116140c25760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b6064820152608401610514565b6140d260408501602086016151ea565b6001600160401b03166140e86202a3004261570f565b1161415b5760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e206675747572650000000000000000006064820152608401610514565b83356141b35760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b6064820152608401610514565b83355f908152600982016020526040902054156141e25760405162461bcd60e51b815260040161051490615667565b60306141f16040860186615b11565b9050146142565760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b6064820152608401610514565b614260835f613b23565b5f806142fa6040518060a0016040528085600101548152602001885f01358152602001876001600160401b031681526020018860200160208101906142a591906151ea565b6001600160401b031681526020016142c060408a018a615b11565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505091525061493b565b5f828152600786016020526040902091935091506143188282615b97565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb906143459085906004016153d0565b6020604051808303815f875af1158015614361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143859190615397565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff191660018360058111156143fd576143fd615223565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b916144dd918e01908e016151ea565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b614513613dc1565b61451b614cea565b613e8081614cf2565b61452c613dc1565b613e0a614e94565b61453c613dc1565b5f80516020615c92833981519152836145a85760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a207a65726f2064656c65676160448201526774696f6e2066656560c01b6064820152608401610514565b6127108411156145ca5760405162461bcd60e51b815260040161051490615a72565b858711156146325760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642073746160448201526e6b6520616d6f756e742072616e676560881b6064820152608401610514565b5f8360ff161161469f5760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a207a65726f206d6178696d75604482015271369039ba30b5b29036bab63a34b83634b2b960711b6064820152608401610514565b600a60ff841611156147115760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d617860448201527434b6bab69039ba30b5b29036bab63a34b83634b2b960591b6064820152608401610514565b95865560018601949094556002850180546001600160401b0390941667ffffffffffffffff19909416939093179092556003840155600490920180546001600160a01b03909216600160401b026001600160e01b031990921660ff90931692909217179055565b5f61478c6001600160a01b03841683614e9c565b905080515f141580156147b05750808060200190518101906147ae9190615c56565b155b15611ddb57604051635274afe760e01b81526001600160a01b0384166004820152602401610514565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038516906370a0823190602401602060405180830381865afa15801561481f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148439190615397565b905061485a6001600160a01b038516333086614ea9565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa15801561489e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148c29190615397565b90508181116149285760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610514565b6149328282615961565b95945050505050565b5f60608260800151516030146149a55760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b6064820152608401610514565b60408051608680825260c082019092525f916020820181803683370190505090505f5b6002811015614a1c576149dc816001615961565b6149e7906008615744565b5081515f908390839081106149fe576149fe61550c565b60200101906001600160f81b03191690815f1a9053506001016149c8565b505f5b6004811015614a8457614a33816003615961565b614a3e906008615744565b600160ff919091161c60f81b82614a5683600261570f565b81518110614a6657614a6661550c565b60200101906001600160f81b03191690815f1a905350600101614a1f565b505f5b6020811015614ae15784518160208110614aa357614aa361550c565b1a60f81b82614ab383600661570f565b81518110614ac357614ac361550c565b60200101906001600160f81b03191690815f1a905350600101614a87565b505f5b6020811015614b415784602001518160208110614b0357614b0361550c565b1a60f81b82614b1383602661570f565b81518110614b2357614b2361550c565b60200101906001600160f81b03191690815f1a905350600101614ae4565b505f5b6008811015614bb557614b58816007615961565b614b63906008615744565b60ff1685604001516001600160401b0316901c60f81b82826046614b87919061570f565b81518110614b9757614b9761550c565b60200101906001600160f81b03191690815f1a905350600101614b44565b505f5b6030811015614c205784608001518181518110614bd757614bd761550c565b01602001516001600160f81b03191682614bf283604e61570f565b81518110614c0257614c0261550c565b60200101906001600160f81b03191690815f1a905350600101614bb8565b505f5b6008811015614c9257614c37816007615961565b614c42906008615744565b60608601516001600160401b0390811691161c60f81b82614c6483607e61570f565b81518110614c7457614c7461550c565b60200101906001600160f81b03191690815f1a905350600101614c23565b50600281604051614ca391906156fe565b602060405180830381855afa158015614cbe573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190614ce19190615397565b94909350915050565b613e0a613dc1565b614cfa613dc1565b80355f80516020615cd283398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014614d466080840160608501615af1565b60ff161115614db35760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b6064820152608401610514565b5f614dc46080840160608501615af1565b60ff1611614e2c5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b6064820152608401610514565b614e3c6080830160608401615af1565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055614e6d60608301604084016151ea565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b613168613dc1565b60606124f083835f614ee2565b6040516001600160a01b038481166024830152838116604483015260648201839052610a159186918216906323b872dd90608401613f51565b606081471015614f075760405163cd78605960e01b8152306004820152602401610514565b5f80856001600160a01b03168486604051614f2291906156fe565b5f6040518083038185875af1925050503d805f8114614f5c576040519150601f19603f3d011682016040523d82523d5f602084013e614f61565b606091505b509150915061216f868383606082614f8157614f7c82614fc8565b6124f0565b8151158015614f9857506001600160a01b0384163b155b15614fc157604051639996b31560e01b81526001600160a01b0385166004820152602401610514565b50806124f0565b805115614fd85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614ffd9061577b565b5f825580601f1061500c575050565b601f0160209004905f5260205f2090810190613e809190615064565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115615078575f8155600101615065565b5090565b8015158114613e80575f80fd5b803563ffffffff8116811461509c575f80fd5b919050565b5f805f606084860312156150b3575f80fd5b8335925060208401356150c58161507c565b91506150d360408501615089565b90509250925092565b5f602082840312156150ec575f80fd5b5035919050565b6001600160a01b0381168114613e80575f80fd5b5f8082840361016081121561511a575f80fd5b61014080821215615129575f80fd5b849350830135905061513a816150f3565b809150509250929050565b5f60208284031215615155575f80fd5b6124f082615089565b5f806040838503121561516f575f80fd5b61517883615089565b946020939093013593505050565b5f8060408385031215615197575f80fd5b82356001600160401b038111156151ac575f80fd5b8301608081860312156151bd575f80fd5b91506151cb60208401615089565b90509250929050565b80356001600160401b038116811461509c575f80fd5b5f602082840312156151fa575f80fd5b6124f0826151d4565b5f8060408385031215615214575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b815160e08201906006811061525a57634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b036040840151166040830152606083015161529560608401826001600160401b03169052565b5060808301516152b060808401826001600160401b03169052565b5060a08301516152cb60a08401826001600160401b03169052565b5060c08301516152e660c08401826001600160401b03169052565b5092915050565b803561ffff8116811461509c575f80fd5b5f805f8060808587031215615311575f80fd5b84356001600160401b03811115615326575f80fd5b850160608188031215615337575f80fd5b9350615345602086016152ed565b9250615353604086016151d4565b9396929550929360600135925050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038281168282160390808211156152e6576152e6615363565b5f602082840312156153a7575f80fd5b5051919050565b5f5b838110156153c85781810151838201526020016153b0565b50505f910152565b602081525f82518060208401526153ee8160408501602087016153ae565b601f01601f19169190910160400192915050565b5f8261541c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526022908201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206e6f6e604082015261636560f01b606082015260800190565b60208082526029908201527f506f5356616c696461746f724d616e616765723a206e6f6e636520646f6573206040820152680dcdee840dac2e8c6d60bb1b606082015260800190565b5f602082840312156154bc575f80fd5b81356124f0816150f3565b5f808335601e198436030181126154dc575f80fd5b8301803591506001600160401b038211156154f5575f80fd5b6020019150600581901b36038213156122c9575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615534575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156155745761557461553e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156155a2576155a261553e565b604052919050565b5f6001600160401b038211156155c2576155c261553e565b50601f01601f191660200190565b5f606082360312156155e0575f80fd5b6155e8615552565b8235815260206155f98185016151d4565b8183015260408401356001600160401b03811115615615575f80fd5b840136601f820112615625575f80fd5b8035615638615633826155aa565b61557a565b818152368483850101111561564b575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f85516156c0818460208a016153ae565b80830190508581526001600160401b0360c01b8560c01b16602082015283516156f08160288401602088016153ae565b016028019695505050505050565b5f82516155348184602087016153ae565b80820180821115610a2b57610a2b615363565b5f63ffffffff80831681810361573a5761573a615363565b6001019392505050565b8082028115828204841417610a2b57610a2b615363565b6001600160401b038181168382160190808211156152e6576152e6615363565b600181811c9082168061578f57607f821691505b6020821081036157ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f845461580c8161577b565b806020870152604060018084165f811461582d576001811461584957615876565b60ff19851660408a0152604084151560051b8a01019550615876565b895f5260205f205f5b8581101561586d5781548b8201860152908301908801615852565b8a016040019650505b509398975050505050505050565b805161509c8161507c565b5f80604083850312156158a0575f80fd5b82516001600160401b03808211156158b6575f80fd5b90840190606082870312156158c9575f80fd5b6158d1615552565b825181526020808401516158e4816150f3565b828201526040840151838111156158f9575f80fd5b80850194505087601f85011261590d575f80fd5b8351925061591d615633846155aa565b8381528882858701011115615930575f80fd5b61593f848383018488016153ae565b80604084015250819550615954818801615884565b9450505050509250929050565b81810381811115610a2b57610a2b615363565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b6001600160401b03818116838216028082169190828114615a6a57615a6a615363565b505092915050565b6020808252602b908201527f506f5356616c696461746f724d616e616765723a20696e76616c69642064656c60408201526a65676174696f6e2066656560a81b606082015260800190565b5f6001600160401b0380831681810361573a5761573a615363565b5f60208284031215615ae8575f80fd5b6124f0826152ed565b5f60208284031215615b01575f80fd5b813560ff811681146124f0575f80fd5b5f808335601e19843603018112615b26575f80fd5b8301803591506001600160401b03821115615b3f575f80fd5b6020019150368190038213156122c9575f80fd5b601f821115611ddb57805f5260205f20601f840160051c81016020851015615b785750805b601f840160051c820191505b81811015610ba9575f8155600101615b84565b81516001600160401b03811115615bb057615bb061553e565b615bc481615bbe845461577b565b84615b53565b602080601f831160018114615bf7575f8415615be05750858301515b5f19600386901b1c1916600185901b178555615c4e565b5f85815260208120601f198616915b82811015615c2557888601518255948401946001909101908401615c06565b5085821015615c4257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215615c66575f80fd5b81516124f08161507c56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab004317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d00506f5356616c696461746f724d616e616765723a2064656c65676174696f6e20e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", -} - -// ERC20TokenStakingManagerABI is the input ABI used to generate the binding from. -// Deprecated: Use ERC20TokenStakingManagerMetaData.ABI instead. -var ERC20TokenStakingManagerABI = ERC20TokenStakingManagerMetaData.ABI - -// ERC20TokenStakingManagerBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use ERC20TokenStakingManagerMetaData.Bin instead. -var ERC20TokenStakingManagerBin = ERC20TokenStakingManagerMetaData.Bin - -// DeployERC20TokenStakingManager deploys a new Ethereum contract, binding an instance of ERC20TokenStakingManager to it. -func DeployERC20TokenStakingManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *ERC20TokenStakingManager, error) { - parsed, err := ERC20TokenStakingManagerMetaData.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(ERC20TokenStakingManagerBin), backend, init) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &ERC20TokenStakingManager{ERC20TokenStakingManagerCaller: ERC20TokenStakingManagerCaller{contract: contract}, ERC20TokenStakingManagerTransactor: ERC20TokenStakingManagerTransactor{contract: contract}, ERC20TokenStakingManagerFilterer: ERC20TokenStakingManagerFilterer{contract: contract}}, nil -} - -// ERC20TokenStakingManager is an auto generated Go binding around an Ethereum contract. -type ERC20TokenStakingManager struct { - ERC20TokenStakingManagerCaller // Read-only binding to the contract - ERC20TokenStakingManagerTransactor // Write-only binding to the contract - ERC20TokenStakingManagerFilterer // Log filterer for contract events -} - -// ERC20TokenStakingManagerCaller is an auto generated read-only Go binding around an Ethereum contract. -type ERC20TokenStakingManagerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC20TokenStakingManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ERC20TokenStakingManagerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC20TokenStakingManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ERC20TokenStakingManagerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC20TokenStakingManagerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ERC20TokenStakingManagerSession struct { - Contract *ERC20TokenStakingManager // 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 -} - -// ERC20TokenStakingManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ERC20TokenStakingManagerCallerSession struct { - Contract *ERC20TokenStakingManagerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ERC20TokenStakingManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ERC20TokenStakingManagerTransactorSession struct { - Contract *ERC20TokenStakingManagerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ERC20TokenStakingManagerRaw is an auto generated low-level Go binding around an Ethereum contract. -type ERC20TokenStakingManagerRaw struct { - Contract *ERC20TokenStakingManager // Generic contract binding to access the raw methods on -} - -// ERC20TokenStakingManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ERC20TokenStakingManagerCallerRaw struct { - Contract *ERC20TokenStakingManagerCaller // Generic read-only contract binding to access the raw methods on -} - -// ERC20TokenStakingManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ERC20TokenStakingManagerTransactorRaw struct { - Contract *ERC20TokenStakingManagerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewERC20TokenStakingManager creates a new instance of ERC20TokenStakingManager, bound to a specific deployed contract. -func NewERC20TokenStakingManager(address common.Address, backend bind.ContractBackend) (*ERC20TokenStakingManager, error) { - contract, err := bindERC20TokenStakingManager(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManager{ERC20TokenStakingManagerCaller: ERC20TokenStakingManagerCaller{contract: contract}, ERC20TokenStakingManagerTransactor: ERC20TokenStakingManagerTransactor{contract: contract}, ERC20TokenStakingManagerFilterer: ERC20TokenStakingManagerFilterer{contract: contract}}, nil -} - -// NewERC20TokenStakingManagerCaller creates a new read-only instance of ERC20TokenStakingManager, bound to a specific deployed contract. -func NewERC20TokenStakingManagerCaller(address common.Address, caller bind.ContractCaller) (*ERC20TokenStakingManagerCaller, error) { - contract, err := bindERC20TokenStakingManager(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerCaller{contract: contract}, nil -} - -// NewERC20TokenStakingManagerTransactor creates a new write-only instance of ERC20TokenStakingManager, bound to a specific deployed contract. -func NewERC20TokenStakingManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20TokenStakingManagerTransactor, error) { - contract, err := bindERC20TokenStakingManager(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerTransactor{contract: contract}, nil -} - -// NewERC20TokenStakingManagerFilterer creates a new log filterer instance of ERC20TokenStakingManager, bound to a specific deployed contract. -func NewERC20TokenStakingManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20TokenStakingManagerFilterer, error) { - contract, err := bindERC20TokenStakingManager(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerFilterer{contract: contract}, nil -} - -// bindERC20TokenStakingManager binds a generic wrapper to an already deployed contract. -func bindERC20TokenStakingManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := ERC20TokenStakingManagerMetaData.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerCaller.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ERC20TokenStakingManagerTransactor.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.contract.Transact(opts, method, params...) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "ADDRESS_LENGTH") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ADDRESSLENGTH() (uint32, error) { - return _ERC20TokenStakingManager.Contract.ADDRESSLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ADDRESSLENGTH() (uint32, error) { - return _ERC20TokenStakingManager.Contract.ADDRESSLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _ERC20TokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _ERC20TokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMDELEGATIONFEEBIPS(opts *bind.CallOpts) (uint16, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_DELEGATION_FEE_BIPS") - - if err != nil { - return *new(uint16), err - } - - out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) - - return out0, err - -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) MAXIMUMSTAKEMULTIPLIERLIMIT(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "MAXIMUM_STAKE_MULTIPLIER_LIMIT") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_ERC20TokenStakingManager.CallOpts) -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { - return _ERC20TokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_ERC20TokenStakingManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "WARP_MESSENGER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) WARPMESSENGER() (common.Address, error) { - return _ERC20TokenStakingManager.Contract.WARPMESSENGER(&_ERC20TokenStakingManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) WARPMESSENGER() (common.Address, error) { - return _ERC20TokenStakingManager.Contract.WARPMESSENGER(&_ERC20TokenStakingManager.CallOpts) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "activeValidators", nodeID) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _ERC20TokenStakingManager.Contract.ActiveValidators(&_ERC20TokenStakingManager.CallOpts, nodeID) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _ERC20TokenStakingManager.Contract.ActiveValidators(&_ERC20TokenStakingManager.CallOpts, nodeID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "getValidator", validationID) - - if err != nil { - return *new(Validator), err - } - - out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) - - return out0, err - -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _ERC20TokenStakingManager.Contract.GetValidator(&_ERC20TokenStakingManager.CallOpts, validationID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _ERC20TokenStakingManager.Contract.GetValidator(&_ERC20TokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) ValueToWeight(opts *bind.CallOpts, value *big.Int) (uint64, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "valueToWeight", value) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ValueToWeight(value *big.Int) (uint64, error) { - return _ERC20TokenStakingManager.Contract.ValueToWeight(&_ERC20TokenStakingManager.CallOpts, value) -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) ValueToWeight(value *big.Int) (uint64, error) { - return _ERC20TokenStakingManager.Contract.ValueToWeight(&_ERC20TokenStakingManager.CallOpts, value) -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) WeightToValue(opts *bind.CallOpts, weight uint64) (*big.Int, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "weightToValue", weight) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) WeightToValue(weight uint64) (*big.Int, error) { - return _ERC20TokenStakingManager.Contract.WeightToValue(&_ERC20TokenStakingManager.CallOpts, weight) -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) WeightToValue(weight uint64) (*big.Int, error) { - return _ERC20TokenStakingManager.Contract.WeightToValue(&_ERC20TokenStakingManager.CallOpts, weight) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteDelegatorRegistration(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "completeDelegatorRegistration", messageIndex, delegationID) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "completeEndDelegation", messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "completeEndValidation", messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndValidation(&_ERC20TokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndValidation(&_ERC20TokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, messageIndex) -} - -// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) Initialize(opts *bind.TransactOpts, settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initialize", settings, token) -} - -// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) Initialize(settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.Initialize(&_ERC20TokenStakingManager.TransactOpts, settings, token) -} - -// Initialize is a paid mutator transaction binding the contract method 0x330a0a3a. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings, address token) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Initialize(settings PoSValidatorManagerSettings, token common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.Initialize(&_ERC20TokenStakingManager.TransactOpts, settings, token) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeDelegatorRegistration", validationID, delegationAmount) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndDelegation", delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xeb0acb89. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration, stakeAmount) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, subnetConversionData, messageIndex) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendEndValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendEndValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendRegisterValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendRegisterValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendUpdateDelegation(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "resendUpdateDelegation", delegationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) -} - -// ERC20TokenStakingManagerDelegationEndedIterator is returned from FilterDelegationEnded and is used to iterate over the raw logs and unpacked data for DelegationEnded events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegationEndedIterator struct { - Event *ERC20TokenStakingManagerDelegationEnded // 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 interfaces.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 *ERC20TokenStakingManagerDelegationEndedIterator) 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(ERC20TokenStakingManagerDelegationEnded) - 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(ERC20TokenStakingManagerDelegationEnded) - 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 *ERC20TokenStakingManagerDelegationEndedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerDelegationEndedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegationEnded struct { - DelegationID [32]byte - ValidationID [32]byte - Nonce uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerDelegationEndedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerDelegationEndedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil -} - -// WatchDelegationEnded is a free log subscription operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) - 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(ERC20TokenStakingManagerDelegationEnded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegationEnded", 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 -} - -// ParseDelegationEnded is a log parse operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*ERC20TokenStakingManagerDelegationEnded, error) { - event := new(ERC20TokenStakingManagerDelegationEnded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerDelegatorAddedIterator is returned from FilterDelegatorAdded and is used to iterate over the raw logs and unpacked data for DelegatorAdded events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorAddedIterator struct { - Event *ERC20TokenStakingManagerDelegatorAdded // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorAddedIterator) 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(ERC20TokenStakingManagerDelegatorAdded) - 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(ERC20TokenStakingManagerDelegatorAdded) - 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 *ERC20TokenStakingManagerDelegatorAddedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerDelegatorAdded represents a DelegatorAdded event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorAdded struct { - DelegationID [32]byte - ValidationID [32]byte - DelegatorAddress common.Address - Nonce uint64 - ValidatorWeight uint64 - DelegatorWeight uint64 - SetWeightMessageID [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorAdded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*ERC20TokenStakingManagerDelegatorAddedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerDelegatorAddedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil -} - -// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorAdded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorAdded, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) - 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(ERC20TokenStakingManagerDelegatorAdded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", 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 -} - -// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorAdded(log types.Log) (*ERC20TokenStakingManagerDelegatorAdded, error) { - event := new(ERC20TokenStakingManagerDelegatorAdded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerDelegatorRegisteredIterator is returned from FilterDelegatorRegistered and is used to iterate over the raw logs and unpacked data for DelegatorRegistered events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorRegisteredIterator struct { - Event *ERC20TokenStakingManagerDelegatorRegistered // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorRegisteredIterator) 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(ERC20TokenStakingManagerDelegatorRegistered) - 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(ERC20TokenStakingManagerDelegatorRegistered) - 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 *ERC20TokenStakingManagerDelegatorRegisteredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerDelegatorRegistered represents a DelegatorRegistered event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorRegistered struct { - DelegationID [32]byte - ValidationID [32]byte - Nonce uint64 - StartTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerDelegatorRegisteredIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerDelegatorRegisteredIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil -} - -// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) - 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(ERC20TokenStakingManagerDelegatorRegistered) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", 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 -} - -// ParseDelegatorRegistered is a log parse operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*ERC20TokenStakingManagerDelegatorRegistered, error) { - event := new(ERC20TokenStakingManagerDelegatorRegistered) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerDelegatorRemovalInitializedIterator is returned from FilterDelegatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for DelegatorRemovalInitialized events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorRemovalInitializedIterator struct { - Event *ERC20TokenStakingManagerDelegatorRemovalInitialized // 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 interfaces.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 *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) - 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) - 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 *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerDelegatorRemovalInitialized represents a DelegatorRemovalInitialized event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegatorRemovalInitialized struct { - DelegationID [32]byte - ValidationID [32]byte - EndTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerDelegatorRemovalInitializedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerDelegatorRemovalInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil -} - -// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) - 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(ERC20TokenStakingManagerDelegatorRemovalInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", 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 -} - -// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerDelegatorRemovalInitialized, error) { - event := new(ERC20TokenStakingManagerDelegatorRemovalInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerInitialValidatorCreatedIterator struct { - Event *ERC20TokenStakingManagerInitialValidatorCreated // 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 interfaces.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 *ERC20TokenStakingManagerInitialValidatorCreatedIterator) 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(ERC20TokenStakingManagerInitialValidatorCreated) - 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(ERC20TokenStakingManagerInitialValidatorCreated) - 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 *ERC20TokenStakingManagerInitialValidatorCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerInitialValidatorCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerInitialValidatorCreated struct { - ValidationID [32]byte - NodeID [32]byte - Weight *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*ERC20TokenStakingManagerInitialValidatorCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerInitialValidatorCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil -} - -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - 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(ERC20TokenStakingManagerInitialValidatorCreated) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 -} - -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*ERC20TokenStakingManagerInitialValidatorCreated, error) { - event := new(ERC20TokenStakingManagerInitialValidatorCreated) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerInitializedIterator struct { - Event *ERC20TokenStakingManagerInitialized // 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 interfaces.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 *ERC20TokenStakingManagerInitializedIterator) 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(ERC20TokenStakingManagerInitialized) - 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(ERC20TokenStakingManagerInitialized) - 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 *ERC20TokenStakingManagerInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerInitialized represents a Initialized event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerInitialized 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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC20TokenStakingManagerInitializedIterator, error) { - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerInitializedIterator{contract: _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialized) (event.Subscription, error) { - - logs, sub, err := _ERC20TokenStakingManager.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(ERC20TokenStakingManagerInitialized) - if err := _ERC20TokenStakingManager.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 (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitialized(log types.Log) (*ERC20TokenStakingManagerInitialized, error) { - event := new(ERC20TokenStakingManagerInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodCreatedIterator struct { - Event *ERC20TokenStakingManagerValidationPeriodCreated // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodCreatedIterator) 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(ERC20TokenStakingManagerValidationPeriodCreated) - 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(ERC20TokenStakingManagerValidationPeriodCreated) - 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 *ERC20TokenStakingManagerValidationPeriodCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerValidationPeriodCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodCreated struct { - ValidationID [32]byte - NodeID [32]byte - RegisterValidationMessageID [32]byte - Weight *big.Int - RegistrationExpiry uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerValidationPeriodCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - 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(ERC20TokenStakingManagerValidationPeriodCreated) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 -} - -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*ERC20TokenStakingManagerValidationPeriodCreated, error) { - event := new(ERC20TokenStakingManagerValidationPeriodCreated) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodEndedIterator struct { - Event *ERC20TokenStakingManagerValidationPeriodEnded // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodEndedIterator) 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(ERC20TokenStakingManagerValidationPeriodEnded) - 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(ERC20TokenStakingManagerValidationPeriodEnded) - 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 *ERC20TokenStakingManagerValidationPeriodEndedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerValidationPeriodEndedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodEnded struct { - ValidationID [32]byte - Status uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*ERC20TokenStakingManagerValidationPeriodEndedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerValidationPeriodEndedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - 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(ERC20TokenStakingManagerValidationPeriodEnded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 -} - -// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*ERC20TokenStakingManagerValidationPeriodEnded, error) { - event := new(ERC20TokenStakingManagerValidationPeriodEnded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodRegisteredIterator struct { - Event *ERC20TokenStakingManagerValidationPeriodRegistered // 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 interfaces.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 *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) 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(ERC20TokenStakingManagerValidationPeriodRegistered) - 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(ERC20TokenStakingManagerValidationPeriodRegistered) - 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 *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerValidationPeriodRegisteredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidationPeriodRegistered struct { - ValidationID [32]byte - Weight *big.Int - Timestamp *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodRegisteredIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerValidationPeriodRegisteredIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) - 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(ERC20TokenStakingManagerValidationPeriodRegistered) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 -} - -// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*ERC20TokenStakingManagerValidationPeriodRegistered, error) { - event := new(ERC20TokenStakingManagerValidationPeriodRegistered) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidatorRemovalInitializedIterator struct { - Event *ERC20TokenStakingManagerValidatorRemovalInitialized // 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 interfaces.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 *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) 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(ERC20TokenStakingManagerValidatorRemovalInitialized) - 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(ERC20TokenStakingManagerValidatorRemovalInitialized) - 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 *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerValidatorRemovalInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidatorRemovalInitialized struct { - ValidationID [32]byte - SetWeightMessageID [32]byte - Weight *big.Int - EndTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*ERC20TokenStakingManagerValidatorRemovalInitializedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerValidatorRemovalInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil -} - -// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - 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(ERC20TokenStakingManagerValidatorRemovalInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 -} - -// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerValidatorRemovalInitialized, error) { - event := new(ERC20TokenStakingManagerValidatorRemovalInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC20TokenStakingManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidatorWeightUpdateIterator struct { - Event *ERC20TokenStakingManagerValidatorWeightUpdate // 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 interfaces.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 *ERC20TokenStakingManagerValidatorWeightUpdateIterator) 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(ERC20TokenStakingManagerValidatorWeightUpdate) - 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(ERC20TokenStakingManagerValidatorWeightUpdate) - 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 *ERC20TokenStakingManagerValidatorWeightUpdateIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC20TokenStakingManagerValidatorWeightUpdateIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC20TokenStakingManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerValidatorWeightUpdate struct { - ValidationID [32]byte - Nonce uint64 - ValidatorWeight uint64 - SetWeightMessageID [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerValidatorWeightUpdateIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &ERC20TokenStakingManagerValidatorWeightUpdateIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil -} - -// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - 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(ERC20TokenStakingManagerValidatorWeightUpdate) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 -} - -// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*ERC20TokenStakingManagerValidatorWeightUpdate, error) { - event := new(ERC20TokenStakingManagerValidatorWeightUpdate) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/abi-bindings/go/staking/ExampleRewardCalculator/ExampleRewardCalculator.go b/abi-bindings/go/staking/ExampleRewardCalculator/ExampleRewardCalculator.go deleted file mode 100644 index d343cda87..000000000 --- a/abi-bindings/go/staking/ExampleRewardCalculator/ExampleRewardCalculator.go +++ /dev/null @@ -1,327 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package examplerewardcalculator - -import ( - "errors" - "math/big" - "strings" - - "github.com/ava-labs/subnet-evm/accounts/abi" - "github.com/ava-labs/subnet-evm/accounts/abi/bind" - "github.com/ava-labs/subnet-evm/core/types" - "github.com/ava-labs/subnet-evm/interfaces" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = interfaces.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// ExampleRewardCalculatorMetaData contains all meta data concerning the ExampleRewardCalculator contract. -var ExampleRewardCalculatorMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"rewardBasisPoints_\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"SECONDS_IN_YEAR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"UPTIME_REWARDS_THRESHOLD_PERCENTAGE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"calculateReward\",\"inputs\":[{\"name\":\"stakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"validatorStartTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakingStartTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"stakingEndTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"uptimeSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rewardBasisPoints\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"}]", - Bin: "0x60a0604052348015600e575f80fd5b50604051610357380380610357833981016040819052602b91603b565b6001600160401b03166080526066565b5f60208284031215604a575f80fd5b81516001600160401b0381168114605f575f80fd5b9392505050565b6080516102d36100845f395f8181609e015261013a01526102d35ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80635dcc93911461004e578063778c06b51461006c578063afba878a1461007f578063bb65b24214610099575b5f80fd5b6100596301e1338081565b6040519081526020015b60405180910390f35b61005961007a3660046101b6565b6100d9565b610087605081565b60405160ff9091168152602001610063565b6100c07f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff9091168152602001610063565b5f60506100e68887610236565b6100f0919061025e565b67ffffffffffffffff1661010585606461025e565b67ffffffffffffffff16101561011c57505f61018f565b6127106301e1338061012e8888610236565b67ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff168b61016e919061028a565b610178919061028a565b61018291906102a7565b61018c91906102a7565b90505b979650505050505050565b803567ffffffffffffffff811681146101b1575f80fd5b919050565b5f805f805f805f60e0888a0312156101cc575f80fd5b873596506101dc6020890161019a565b95506101ea6040890161019a565b94506101f86060890161019a565b93506102066080890161019a565b925060a0880135915060c0880135905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b67ffffffffffffffff82811682821603908082111561025757610257610222565b5092915050565b67ffffffffffffffff81811683821602808216919082811461028257610282610222565b505092915050565b80820281158282048414176102a1576102a1610222565b92915050565b5f826102c157634e487b7160e01b5f52601260045260245ffd5b50049056fea164736f6c6343000819000a", -} - -// ExampleRewardCalculatorABI is the input ABI used to generate the binding from. -// Deprecated: Use ExampleRewardCalculatorMetaData.ABI instead. -var ExampleRewardCalculatorABI = ExampleRewardCalculatorMetaData.ABI - -// ExampleRewardCalculatorBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use ExampleRewardCalculatorMetaData.Bin instead. -var ExampleRewardCalculatorBin = ExampleRewardCalculatorMetaData.Bin - -// DeployExampleRewardCalculator deploys a new Ethereum contract, binding an instance of ExampleRewardCalculator to it. -func DeployExampleRewardCalculator(auth *bind.TransactOpts, backend bind.ContractBackend, rewardBasisPoints_ uint64) (common.Address, *types.Transaction, *ExampleRewardCalculator, error) { - parsed, err := ExampleRewardCalculatorMetaData.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(ExampleRewardCalculatorBin), backend, rewardBasisPoints_) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &ExampleRewardCalculator{ExampleRewardCalculatorCaller: ExampleRewardCalculatorCaller{contract: contract}, ExampleRewardCalculatorTransactor: ExampleRewardCalculatorTransactor{contract: contract}, ExampleRewardCalculatorFilterer: ExampleRewardCalculatorFilterer{contract: contract}}, nil -} - -// ExampleRewardCalculator is an auto generated Go binding around an Ethereum contract. -type ExampleRewardCalculator struct { - ExampleRewardCalculatorCaller // Read-only binding to the contract - ExampleRewardCalculatorTransactor // Write-only binding to the contract - ExampleRewardCalculatorFilterer // Log filterer for contract events -} - -// ExampleRewardCalculatorCaller is an auto generated read-only Go binding around an Ethereum contract. -type ExampleRewardCalculatorCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ExampleRewardCalculatorTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ExampleRewardCalculatorTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ExampleRewardCalculatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ExampleRewardCalculatorFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ExampleRewardCalculatorSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ExampleRewardCalculatorSession struct { - Contract *ExampleRewardCalculator // 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 -} - -// ExampleRewardCalculatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ExampleRewardCalculatorCallerSession struct { - Contract *ExampleRewardCalculatorCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ExampleRewardCalculatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ExampleRewardCalculatorTransactorSession struct { - Contract *ExampleRewardCalculatorTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ExampleRewardCalculatorRaw is an auto generated low-level Go binding around an Ethereum contract. -type ExampleRewardCalculatorRaw struct { - Contract *ExampleRewardCalculator // Generic contract binding to access the raw methods on -} - -// ExampleRewardCalculatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ExampleRewardCalculatorCallerRaw struct { - Contract *ExampleRewardCalculatorCaller // Generic read-only contract binding to access the raw methods on -} - -// ExampleRewardCalculatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ExampleRewardCalculatorTransactorRaw struct { - Contract *ExampleRewardCalculatorTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewExampleRewardCalculator creates a new instance of ExampleRewardCalculator, bound to a specific deployed contract. -func NewExampleRewardCalculator(address common.Address, backend bind.ContractBackend) (*ExampleRewardCalculator, error) { - contract, err := bindExampleRewardCalculator(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ExampleRewardCalculator{ExampleRewardCalculatorCaller: ExampleRewardCalculatorCaller{contract: contract}, ExampleRewardCalculatorTransactor: ExampleRewardCalculatorTransactor{contract: contract}, ExampleRewardCalculatorFilterer: ExampleRewardCalculatorFilterer{contract: contract}}, nil -} - -// NewExampleRewardCalculatorCaller creates a new read-only instance of ExampleRewardCalculator, bound to a specific deployed contract. -func NewExampleRewardCalculatorCaller(address common.Address, caller bind.ContractCaller) (*ExampleRewardCalculatorCaller, error) { - contract, err := bindExampleRewardCalculator(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ExampleRewardCalculatorCaller{contract: contract}, nil -} - -// NewExampleRewardCalculatorTransactor creates a new write-only instance of ExampleRewardCalculator, bound to a specific deployed contract. -func NewExampleRewardCalculatorTransactor(address common.Address, transactor bind.ContractTransactor) (*ExampleRewardCalculatorTransactor, error) { - contract, err := bindExampleRewardCalculator(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ExampleRewardCalculatorTransactor{contract: contract}, nil -} - -// NewExampleRewardCalculatorFilterer creates a new log filterer instance of ExampleRewardCalculator, bound to a specific deployed contract. -func NewExampleRewardCalculatorFilterer(address common.Address, filterer bind.ContractFilterer) (*ExampleRewardCalculatorFilterer, error) { - contract, err := bindExampleRewardCalculator(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ExampleRewardCalculatorFilterer{contract: contract}, nil -} - -// bindExampleRewardCalculator binds a generic wrapper to an already deployed contract. -func bindExampleRewardCalculator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := ExampleRewardCalculatorMetaData.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 (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorCaller.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 (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ExampleRewardCalculator *ExampleRewardCalculatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ExampleRewardCalculator.Contract.ExampleRewardCalculatorTransactor.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 (_ExampleRewardCalculator *ExampleRewardCalculatorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ExampleRewardCalculator.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 (_ExampleRewardCalculator *ExampleRewardCalculatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ExampleRewardCalculator.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ExampleRewardCalculator *ExampleRewardCalculatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ExampleRewardCalculator.Contract.contract.Transact(opts, method, params...) -} - -// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. -// -// Solidity: function SECONDS_IN_YEAR() view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) SECONDSINYEAR(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _ExampleRewardCalculator.contract.Call(opts, &out, "SECONDS_IN_YEAR") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. -// -// Solidity: function SECONDS_IN_YEAR() view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) SECONDSINYEAR() (*big.Int, error) { - return _ExampleRewardCalculator.Contract.SECONDSINYEAR(&_ExampleRewardCalculator.CallOpts) -} - -// SECONDSINYEAR is a free data retrieval call binding the contract method 0x5dcc9391. -// -// Solidity: function SECONDS_IN_YEAR() view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) SECONDSINYEAR() (*big.Int, error) { - return _ExampleRewardCalculator.Contract.SECONDSINYEAR(&_ExampleRewardCalculator.CallOpts) -} - -// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. -// -// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) UPTIMEREWARDSTHRESHOLDPERCENTAGE(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _ExampleRewardCalculator.contract.Call(opts, &out, "UPTIME_REWARDS_THRESHOLD_PERCENTAGE") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. -// -// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) -func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) UPTIMEREWARDSTHRESHOLDPERCENTAGE() (uint8, error) { - return _ExampleRewardCalculator.Contract.UPTIMEREWARDSTHRESHOLDPERCENTAGE(&_ExampleRewardCalculator.CallOpts) -} - -// UPTIMEREWARDSTHRESHOLDPERCENTAGE is a free data retrieval call binding the contract method 0xafba878a. -// -// Solidity: function UPTIME_REWARDS_THRESHOLD_PERCENTAGE() view returns(uint8) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) UPTIMEREWARDSTHRESHOLDPERCENTAGE() (uint8, error) { - return _ExampleRewardCalculator.Contract.UPTIMEREWARDSTHRESHOLDPERCENTAGE(&_ExampleRewardCalculator.CallOpts) -} - -// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. -// -// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) CalculateReward(opts *bind.CallOpts, stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { - var out []interface{} - err := _ExampleRewardCalculator.contract.Call(opts, &out, "calculateReward", stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. -// -// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) CalculateReward(stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { - return _ExampleRewardCalculator.Contract.CalculateReward(&_ExampleRewardCalculator.CallOpts, stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) -} - -// CalculateReward is a free data retrieval call binding the contract method 0x778c06b5. -// -// Solidity: function calculateReward(uint256 stakeAmount, uint64 validatorStartTime, uint64 stakingStartTime, uint64 stakingEndTime, uint64 uptimeSeconds, uint256 , uint256 ) view returns(uint256) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) CalculateReward(stakeAmount *big.Int, validatorStartTime uint64, stakingStartTime uint64, stakingEndTime uint64, uptimeSeconds uint64, arg5 *big.Int, arg6 *big.Int) (*big.Int, error) { - return _ExampleRewardCalculator.Contract.CalculateReward(&_ExampleRewardCalculator.CallOpts, stakeAmount, validatorStartTime, stakingStartTime, stakingEndTime, uptimeSeconds, arg5, arg6) -} - -// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. -// -// Solidity: function rewardBasisPoints() view returns(uint64) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCaller) RewardBasisPoints(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ExampleRewardCalculator.contract.Call(opts, &out, "rewardBasisPoints") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. -// -// Solidity: function rewardBasisPoints() view returns(uint64) -func (_ExampleRewardCalculator *ExampleRewardCalculatorSession) RewardBasisPoints() (uint64, error) { - return _ExampleRewardCalculator.Contract.RewardBasisPoints(&_ExampleRewardCalculator.CallOpts) -} - -// RewardBasisPoints is a free data retrieval call binding the contract method 0xbb65b242. -// -// Solidity: function rewardBasisPoints() view returns(uint64) -func (_ExampleRewardCalculator *ExampleRewardCalculatorCallerSession) RewardBasisPoints() (uint64, error) { - return _ExampleRewardCalculator.Contract.RewardBasisPoints(&_ExampleRewardCalculator.CallOpts) -} diff --git a/abi-bindings/go/staking/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/staking/NativeTokenStakingManager/NativeTokenStakingManager.go deleted file mode 100644 index 9cf250ac3..000000000 --- a/abi-bindings/go/staking/NativeTokenStakingManager/NativeTokenStakingManager.go +++ /dev/null @@ -1,2637 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package nativetokenstakingmanager - -import ( - "errors" - "math/big" - "strings" - - "github.com/ava-labs/subnet-evm/accounts/abi" - "github.com/ava-labs/subnet-evm/accounts/abi/bind" - "github.com/ava-labs/subnet-evm/core/types" - "github.com/ava-labs/subnet-evm/interfaces" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = interfaces.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// InitialValidator is an auto generated low-level Go binding around an user-defined struct. -type InitialValidator struct { - NodeID [32]byte - Weight uint64 - BlsPublicKey []byte -} - -// PoSValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. -type PoSValidatorManagerSettings struct { - BaseSettings ValidatorManagerSettings - MinimumStakeAmount *big.Int - MaximumStakeAmount *big.Int - MinimumStakeDuration uint64 - MinimumDelegationFeeBips uint16 - MaximumStakeMultiplier uint8 - RewardCalculator common.Address -} - -// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. -type SubnetConversionData struct { - ConvertSubnetTxID [32]byte - ValidatorManagerBlockchainID [32]byte - ValidatorManagerAddress common.Address - InitialValidators []InitialValidator -} - -// Validator is an auto generated low-level Go binding around an user-defined struct. -type Validator struct { - Status uint8 - NodeID [32]byte - StartingWeight uint64 - MessageNonce uint64 - Weight uint64 - StartedAt uint64 - EndedAt uint64 -} - -// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. -type ValidatorManagerSettings struct { - PChainBlockchainID [32]byte - SubnetID [32]byte - ChurnPeriodSeconds uint64 - MaximumChurnPercentage uint8 -} - -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID [32]byte - RegistrationExpiry uint64 - BlsPublicKey []byte -} - -// NativeTokenStakingManagerMetaData contains all meta data concerning the NativeTokenStakingManager contract. -var NativeTokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"NATIVE_MINTER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractINativeMinter\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeDelegatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndDelegation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structPoSValidatorManagerSettings\",\"components\":[{\"name\":\"baseSettings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"minimumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maximumStakeAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"minimumStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rewardCalculator\",\"type\":\"address\",\"internalType\":\"contractIRewardCalculator\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeDelegatorRegistration\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"initializeEndDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"includeUptimeProof\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"delegationFeeBips\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"minStakeDuration\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendUpdateDelegation\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"valueToWeight\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"weightToValue\",\"inputs\":[{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"event\",\"name\":\"DelegationEnded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorAdded\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"delegatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"delegatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRegistered\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"startTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DelegatorRemovalInitialized\",\"inputs\":[{\"name\":\"delegationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AddressInsufficientBalance\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615b3d380380615b3d83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6159f08061014d5f395ff3fe60806040526004361061017b575f3560e01c806362065856116100cd578063b771b3bc11610087578063c599e24f11610062578063c599e24f14610492578063c974d1b6146104a5578063d5f20ff6146104b9578063df93d8de146104e5575f80fd5b8063b771b3bc1461043a578063ba3a4b9714610454578063bee0a03f14610473575f80fd5b8063620658561461038b57806366435abf146103aa57806376f78621146103c95780638280a25a146103e857806398f3e2b4146103fc578063a3a65e481461041b575f80fd5b8063329c3e1211610138578063467ef06f11610113578063467ef06f146103055780635297fae61461032457806360305d621461034357806361e2f4901461036c575f80fd5b8063329c3e121461029857806335455ded146102ca57806340034a93146102f2575f80fd5b80630118acc41461017f5780630322ed98146101a05780630cdd0985146101bf578063151d30d11461021c5780631f7a9d8f146102425780632e2194d814610261575b5f80fd5b34801561018a575f80fd5b5061019e610199366004614df0565b6104fb565b005b3480156101ab575f80fd5b5061019e6101ba366004614e2b565b61099e565b3480156101ca575f80fd5b506102096101d9366004614e2b565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b348015610227575f80fd5b50610230600a81565b60405160ff9091168152602001610213565b34801561024d575f80fd5b5061019e61025c366004614e42565b610b57565b34801561026c575f80fd5b5061028061027b366004614e2b565b610c34565b6040516001600160401b039091168152602001610213565b3480156102a3575f80fd5b506102b26001600160991b0181565b6040516001600160a01b039091168152602001610213565b3480156102d5575f80fd5b506102df61271081565b60405161ffff9091168152602001610213565b610209610300366004614e80565b610c4a565b348015610310575f80fd5b5061019e61031f366004614ed4565b610c7e565b34801561032f575f80fd5b5061019e61033e366004614eed565b610d1e565b34801561034e575f80fd5b50610357601481565b60405163ffffffff9091168152602001610213565b348015610377575f80fd5b5061019e610386366004614f15565b610ef3565b348015610396575f80fd5b506102096103a5366004614f63565b611527565b3480156103b5575f80fd5b506102806103c4366004614e2b565b611540565b3480156103d4575f80fd5b5061019e6103e3366004614df0565b611554565b3480156103f3575f80fd5b50610230603081565b348015610407575f80fd5b5061019e610416366004614eed565b61174e565b348015610426575f80fd5b5061019e610435366004614ed4565b6119d0565b348015610445575f80fd5b506102b26005600160991b0181565b34801561045f575f80fd5b5061019e61046e366004614e2b565b611b88565b34801561047e575f80fd5b5061019e61048d366004614e2b565b611e0e565b6102096104a0366004614e2b565b611f22565b3480156104b0575f80fd5b50610230601481565b3480156104c4575f80fd5b506104d86104d3366004614e2b565b611f53565b6040516102139190614f90565b3480156104f0575f80fd5b506102806202a30081565b5f8381527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d06602052604080822060018101548251610100810190935281545f80516020615944833981519152949193919290829060ff16600481111561056357610563614f7c565b600481111561057457610574614f7c565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b909104811660c083015260039092015490911660e09091015290505f6105f083611f53565b905060028251600481111561060757610607614f7c565b146106595760405162461bcd60e51b815260206004820152602a60248201525f805160206159648339815191526044820152696e6f742061637469766560b01b60648201526084015b60405180910390fd5b60208201516001600160a01b031633146106be5760405162461bcd60e51b815260206004820152603360248201525f805160206159648339815191526044820152723737ba1037bbb732b210313c9039b2b73232b960691b6064820152608401610650565b6003825280515f9060029060058111156106da576106da614f7c565b036107315786156106f2576106ef848761201b565b90505b5f83606001518360800151610707919061505a565b905061071385826122b7565b506001600160401b0390811660e0860152421660a085015250610765565b505f83815260098501602052604090205460608201516001600160401b0390811660e085015260c0830151811660a0850152165b8460040160089054906101000a90046001600160a01b03166001600160a01b031663778c06b56107988560600151611527565b60a0808601516080880151918801516040516001600160e01b031960e087901b16815260048101949094526001600160401b03918216602485015291811660448401529081166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa158015610815573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610839919061507a565b5f898152600787016020908152604080832093909355600688019052208351815485929190829060ff1916600183600481111561087857610878614f7c565b0217905550602082015181546001600160a01b0390911661010002610100600160a81b031990911617815560408083015160018301556060830151600283018054608086015160a08088015160c08901516001600160401b03908116600160c01b026001600160c01b03928216600160801b02929092166001600160801b03948216600160401b026001600160801b0319909616978216979097179490941792909216949094171790915560e090940151600390930180549390941667ffffffffffffffff199390931692909217909255840151905185918a917f5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c699161098c916001600160401b0391909116815260200190565b60405180910390a35050505050505050565b5f8181525f805160206159c48339815191526020526040808220815160e0810190925280545f8051602061598483398151915293929190829060ff1660058111156109eb576109eb614f7c565b60058111156109fc576109fc614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c09091015290915081516005811115610a6b57610a6b614f7c565b14610ad05760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b6064820152608401610650565b6005600160991b016001600160a01b031663ee5b48eb610af58584606001515f61240e565b6040518263ffffffff1660e01b8152600401610b1191906150b3565b6020604051808303815f875af1158015610b2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b51919061507a565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610ba0575080546001600160401b03808416911610155b15610bbe5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610be883612633565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f610c4464e8d4a51000836150e5565b92915050565b5f610c53612647565b610c5f8484843461267e565b9050610c7760015f805160206159a483398151915255565b9392505050565b5f805160206159448339815191525f80610c97846128fb565b91509150610ca482612c45565b610cae5750505050565b5f8281526005840160205260409020546001600160a01b0316600482516005811115610cdc57610cdc614f7c565b03610d01575f83815260088501602052604081208054919055610cff8282612c80565b505b610d1781610d128460400151611527565b612ce6565b5050505050565b5f805160206159448339815191525f610d3684612cf9565b90505f80610d478360400151612ed3565b50915091505f610d5683611f53565b9050816001600160401b031681606001516001600160401b03161015610d8e5760405162461bcd60e51b815260040161065090615104565b5f8681526006860160205260409020600201546001600160401b03808416600160c01b909204161115610dd35760405162461bcd60e51b815260040161065090615146565b60015f87815260068701602052604090205460ff166004811115610df957610df9614f7c565b14610e625760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a2064656c65676174696f6e4960448201527211081b9bdd081c195b991a5b99c81859191959606a1b6064820152608401610650565b5f868152600686016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160401b026fffffffffffffffff000000000000000019909316929092179092559251928352841691859189917f245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064910160405180910390a450505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f805160206159848339815191529060ff1615610f905760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b6064820152608401610650565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff7919061507a565b8360200135146110595760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b6064820152608401610650565b3061106a60608501604086016151a3565b6001600160a01b0316146110dc5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b6064820152608401610650565b5f6110ea60608501856151be565b91505f90508435602086013560146111086060890160408a016151a3565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff161015611437575f61118860608901896151be565b8363ffffffff1681811061119e5761119e615203565b90506020028101906111b09190615217565b6111b9906152c7565b80515f81815260098901602052604090205491925090156111ec5760405162461bcd60e51b81526004016106509061535e565b84825f01518360200151846040015160405160200161120e94939291906153a6565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f9160029161125c91906153f5565b602060405180830381855afa158015611277573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061129a919061507a565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff1916600183600581111561132657611326614f7c565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff1916928416929092179091558401516113d9911686615406565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a35050508061143090615419565b905061116c565b50600584018190555f61144986612cf9565b90505f611459826040015161310e565b90508060028560405161146c91906153f5565b602060405180830381855afa158015611487573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906114aa919061507a565b1461150e5760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b6064820152608401610650565b505050600a909201805460ff1916600117905550505050565b5f610c446001600160401b03831664e8d4a5100061543b565b5f61154a82611f53565b6080015192915050565b5f805160206159448339815191525f61156c85613277565b5f86815260058401602052604090205460a082015191925061159f91600160b01b9091046001600160401b031690615452565b6001600160401b03168160c001516001600160401b031610156116205760405162461bcd60e51b815260206004820152603360248201527f506f5356616c696461746f724d616e616765723a206d696e696d756d207374616044820152721ad948191d5c985d1a5bdb881b9bdd081b595d606a1b6064820152608401610650565b8315610d17575f611631868561201b565b5f87815260098501602052604090819020805467ffffffffffffffff19166001600160401b038416179055600485015490840151919250600160401b90046001600160a01b03169063778c06b59061168890611527565b60a085015160c086015160405160e085901b6001600160e01b031916815260048101939093526001600160401b0391821660248401819052604484015281166064830152841660848201525f60a4820181905260c482015260e401602060405180830381865afa1580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611722919061507a565b5f87815260088501602052604081208054909190611741908490615406565b9091555050505050505050565b611756612647565b5f805160206159448339815191525f61176e84612cf9565b90505f8061177f8360400151612ed3565b50915091505f61178e83611f53565b5f8781526006870160205260408082208151610100810190925280549394509192909190829060ff1660048111156117c8576117c8614f7c565b60048111156117d9576117d9614f7c565b8152815461010090046001600160a01b031660208201526001820154604082015260028201546001600160401b03808216606080850191909152600160401b830482166080850152600160801b8304821660a0850152600160c01b909204811660c0840152600390930154831660e090920191909152840151919250848116911610156118785760405162461bcd60e51b815260040161065090615104565b826001600160401b03168160e001516001600160401b031611156118ae5760405162461bcd60e51b815260040161065090615146565b6003815160048111156118c3576118c3614f7c565b146119175760405162461bcd60e51b815260206004820152603160248201525f805160206159648339815191526044820152701b9bdd081c195b991a5b99c81859191959607a1b6064820152608401610650565b5f8781526006870160209081526040808320805460ff191660041790558382015160078a019092529091205461194d9190612c80565b856007015f8881526020019081526020015f205f90556119788160200151610d128360600151611527565b826001600160401b031684887f52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab60405160405180910390a45050505050506119cc60015f805160206159a483398151915255565b5050565b5f805160206159848339815191525f6119e883612cf9565b90505f806119f983604001516134f2565b9150915080611a5b5760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b6064820152608401610650565b5f82815260078501602052604081208054611a7590615472565b9050118015611aa7575060015f83815260088601602052604090205460ff166005811115611aa557611aa5614f7c565b145b611ac35760405162461bcd60e51b8152600401610650906154a4565b5f8281526007850160205260408120611adb91614d45565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0660205260408082208151610100810190925280545f8051602061594483398151915293929190829060ff166004811115611be957611be9614f7c565b6004811115611bfa57611bfa614f7c565b8152815461010090046001600160a01b03166020820152600180830154604083015260028301546001600160401b038082166060850152600160401b820481166080850152600160801b8204811660a0850152600160c01b909104811660c084015260039093015490921660e09091015290915081516004811115611c8157611c81614f7c565b1480611c9f5750600381516004811115611c9d57611c9d614f7c565b145b611cf35760405162461bcd60e51b815260206004820152603260248201525f80516020615964833981519152604482015271737461747573206e6f742070656e64696e6760701b6064820152608401610650565b5f611d018260400151611f53565b905080606001516001600160401b03165f03611d855760405162461bcd60e51b815260206004820152603f60248201527f506f5356616c696461746f724d616e616765723a20636f756c64206e6f74206660448201527f696e642076616c696461746f7220666f722064656c65676174696f6e204944006064820152608401610650565b6005600160991b016001600160a01b031663ee5b48eb611db284604001518460600151856080015161240e565b6040518263ffffffff1660e01b8152600401611dce91906150b3565b6020604051808303815f875af1158015611dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d17919061507a565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f80516020615984833981519152929190611e5690615472565b9050118015611e88575060015f83815260088301602052604090205460ff166005811115611e8657611e86614f7c565b145b611ea45760405162461bcd60e51b8152600401610650906154a4565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91611edd91906004016154eb565b6020604051808303815f875af1158015611ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1d919061507a565b505050565b5f611f2b612647565b611f36823334613693565b9050611f4e60015f805160206159a483398151915255565b919050565b611f5b614d7c565b5f8281525f805160206159c4833981519152602052604090819020815160e0810190925280545f80516020615984833981519152929190829060ff166005811115611fa857611fa8614f7c565b6005811115611fb957611fb9614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612066573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261208d9190810190615580565b91509150806120f05760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642077617260448201526870206d65737361676560b81b6064820152608401610650565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612157919061507a565b8251146121bb5760405162461bcd60e51b815260206004820152602c60248201527f506f5356616c696461746f724d616e616765723a20696e76616c696420736f7560448201526b1c98d94818da185a5b88125160a21b6064820152608401610650565b60208201516001600160a01b0316156122315760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206f726960448201527167696e2073656e646572206164647265737360701b6064820152608401610650565b5f806122408460400151613a4a565b915091508187146122ad5760405162461bcd60e51b815260206004820152603160248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964207570746044820152701a5b59481d985b1a59185d1a5bdb881251607a1b6064820152608401610650565b9695505050505050565b5f8281525f805160206159c4833981519152602052604081206002015481905f8051602061598483398151915290600160801b90046001600160401b03166122ff8582613c22565b5f61230987613e30565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb6123598a858b61240e565b6040518263ffffffff1660e01b815260040161237591906150b3565b6020604051808303815f875af1158015612391573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b5919061507a565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b600281101561248757612447816001615652565b61245290600861543b565b5081515f9083908390811061246957612469615203565b60200101906001600160f81b03191690815f1a905350600101612433565b505f5b60048110156124f25761249e816003615652565b6124a990600861543b565b600263ffffffff16901c60f81b828260026124c49190615406565b815181106124d4576124d4615203565b60200101906001600160f81b03191690815f1a90535060010161248a565b505f5b60208110156125545761250981601f615652565b61251490600861543b565b86901c60f81b82612526836006615406565b8151811061253657612536615203565b60200101906001600160f81b03191690815f1a9053506001016124f5565b505f5b60088110156125bf5761256b816007615652565b61257690600861543b565b6001600160401b038616901c60f81b82612591836026615406565b815181106125a1576125a1615203565b60200101906001600160f81b03191690815f1a905350600101612557565b505f5b600881101561262a576125d6816007615652565b6125e190600861543b565b6001600160401b038516901c60f81b826125fc83602e615406565b8151811061260c5761260c615203565b60200101906001600160f81b03191690815f1a9053506001016125c2565b50949350505050565b61263b613ec0565b61264481613f0b565b50565b5f805160206159a483398151915280546001190161267857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d03545f905f805160206159448339815191529061ffff8616108015906126ca575061271061ffff861611155b6126e65760405162461bcd60e51b815260040161065090615665565b60028101546001600160401b03908116908516101561275f5760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d696e60448201526e1039ba30b5b290323ab930ba34b7b760891b6064820152608401610650565b80548310156127c25760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152687420746f6f206c6f7760b81b6064820152608401610650565b80600101548311156128295760405162461bcd60e51b815260206004820152602a60248201527f506f5356616c696461746f724d616e616765723a207374616b6520616d6f756e6044820152690e840e8dede40d0d2ced60b31b6064820152608401610650565b825f61283482610c34565b90505f6128418983613f7f565b905060405180606001604052806128553390565b6001600160a01b03908116825261ffff808c166020808501919091526001600160401b03808d166040958601525f8781526005909a0182529884902085518154928701519690950151909916600160b01b0267ffffffffffffffff60b01b1995909216600160a01b026001600160b01b031990911693909216929092171791909116179093555090915050949350505050565b60015f805160206159a483398151915255565b5f612904614d7c565b5f805160206159848339815191525f61291c85612cf9565b90505f8061292d83604001516134f2565b9150915080156129925760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b6064820152608401610650565b5f828152600885016020526040808220815160e081019092528054829060ff1660058111156129c3576129c3614f7c565b60058111156129d4576129d4614f7c565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f9082516005811115612a4557612a45614f7c565b1480612a635750600182516005811115612a6157612a61614f7c565b145b612ac25760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b6064820152608401610650565b600382516005811115612ad757612ad7614f7c565b03612ae457506004612ae8565b5060055b6020808301515f90815260098801909152604081205581816005811115612b1157612b11614f7c565b90816005811115612b2457612b24614f7c565b9052505f84815260088701602052604090208251815484929190829060ff19166001836005811115612b5857612b58614f7c565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905581516005811115612c0c57612c0c614f7c565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b5f9081527f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0560205260409020546001600160a01b0316151590565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015612ccc575f80fd5b505af1158015612cde573d5f803e3d5ffd5b505050505050565b6119cc6001600160a01b038316826144e4565b60408051606080820183525f8083526020830181905292820152905f805160206159848339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa158015612d6e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d959190810190615580565b9150915080612df55760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b6064820152608401610650565b8254825114612e585760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b6064820152608401610650565b60208201516001600160a01b031615612ecb5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b6064820152608401610650565b509392505050565b5f805f8351603614612ef75760405162461bcd60e51b8152600401610650906156b0565b5f805b6002811015612f4657612f0e816001615652565b612f1990600861543b565b61ffff16868281518110612f2f57612f2f615203565b016020015160f81c901b9190911790600101612efa565b5061ffff811615612f695760405162461bcd60e51b8152600401610650906156f9565b5f805b6004811015612fc457612f80816003615652565b612f8b90600861543b565b63ffffffff1687612f9d836002615406565b81518110612fad57612fad615203565b016020015160f81c901b9190911790600101612f6c565b5063ffffffff8116600414612feb5760405162461bcd60e51b81526004016106509061573c565b5f805b60208110156130405761300281601f615652565b61300d90600861543b565b88613019836006615406565b8151811061302957613029615203565b016020015160f81c901b9190911790600101612fee565b505f805b600881101561309f57613058816007615652565b61306390600861543b565b6001600160401b031689613078836026615406565b8151811061308857613088615203565b016020015160f81c901b9190911790600101613044565b505f805b60088110156130fe576130b7816007615652565b6130c290600861543b565b6001600160401b03168a6130d783602e615406565b815181106130e7576130e7615203565b016020015160f81c901b91909117906001016130a3565b5091989097509095509350505050565b5f81516026146131305760405162461bcd60e51b8152600401610650906156b0565b5f805b600281101561317f57613147816001615652565b61315290600861543b565b61ffff1684828151811061316857613168615203565b016020015160f81c901b9190911790600101613133565b5061ffff8116156131a25760405162461bcd60e51b8152600401610650906156f9565b5f805b60048110156131fd576131b9816003615652565b6131c490600861543b565b63ffffffff16856131d6836002615406565b815181106131e6576131e6615203565b016020015160f81c901b91909117906001016131a5565b5063ffffffff8116156132225760405162461bcd60e51b81526004016106509061573c565b5f805b602081101561262a5761323981601f615652565b61324490600861543b565b86613250836006615406565b8151811061326057613260615203565b016020015160f81c901b9190911790600101613225565b61327f614d7c565b5f8281525f805160206159c48339815191526020526040808220815160e0810190925280545f8051602061598483398151915293929190829060ff1660058111156132cc576132cc614f7c565b60058111156132dd576132dd614f7c565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c0909101529091508151600581111561334f5761334f614f7c565b146133ab5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b6064820152608401610650565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff191660018360058111156133ef576133ef614f7c565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61349b85826122b7565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f8082516027146135155760405162461bcd60e51b8152600401610650906156b0565b5f805b60028110156135645761352c816001615652565b61353790600861543b565b61ffff1685828151811061354d5761354d615203565b016020015160f81c901b9190911790600101613518565b5061ffff8116156135875760405162461bcd60e51b8152600401610650906156f9565b5f805b60048110156135e25761359e816003615652565b6135a990600861543b565b63ffffffff16866135bb836002615406565b815181106135cb576135cb615203565b016020015160f81c901b919091179060010161358a565b5063ffffffff81166003146136095760405162461bcd60e51b81526004016106509061573c565b5f805b602081101561365e5761362081601f615652565b61362b90600861543b565b87613637836006615406565b8151811061364757613647615203565b016020015160f81c901b919091179060010161360c565b505f8660268151811061367357613673615203565b016020015191976001600160f81b03199092161515965090945050505050565b5f5f80516020615944833981519152816136ac84610c34565b90505f6136b887611f53565b90506136c387612c45565b6137205760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a206e6f74206120506f53207660448201526730b634b230ba37b960c11b6064820152608401610650565b60028151600581111561373557613735614f7c565b146137945760405162461bcd60e51b815260206004820152602960248201527f506f5356616c696461746f724d616e616765723a2076616c696461746f72206e6044820152686f742061637469766560b81b6064820152608401610650565b5f8282608001516137a59190615452565b600485015460408401519192506137c7916001600160401b0390911690615783565b6001600160401b0316816001600160401b031611156138465760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a206d6178696d756d2076616c6044820152741a59185d1bdc881dd95a59da1d081c995858da1959605a1b6064820152608401610650565b5f806138528a846122b7565b915091505f8a8360405160200161388092919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815282825280516020909101206101008301909152915080600181526001600160a01b038c1660208083019190915260408083018f90526001600160401b03808b1660608501525f6080850181905260a0850181905290881660c085015260e090930183905284835260068b01909152902081518154829060ff1916600183600481111561391b5761391b614f7c565b02179055506020828101518254610100600160a81b0319166101006001600160a01b039283160217835560408085015160018501556060808601516002860180546080808a015160a08b015160c08c01516001600160401b039687166001600160801b031990951694909417600160401b92871692909202919091176001600160801b0316600160801b918616919091026001600160c01b031617600160c01b928516929092029190911790915560e0909701516003909601805467ffffffffffffffff191696821696909617909555815189861681528a861694810194909452938b1690830152918101859052908c16918d9184917fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426910160405180910390a49a9950505050505050505050565b5f808251602e14613a6d5760405162461bcd60e51b8152600401610650906156b0565b5f805b6002811015613abc57613a84816001615652565b613a8f90600861543b565b61ffff16858281518110613aa557613aa5615203565b016020015160f81c901b9190911790600101613a70565b5061ffff811615613adf5760405162461bcd60e51b8152600401610650906156f9565b5f805b6004811015613b3a57613af6816003615652565b613b0190600861543b565b63ffffffff1686613b13836002615406565b81518110613b2357613b23615203565b016020015160f81c901b9190911790600101613ae2565b5063ffffffff8116600514613b615760405162461bcd60e51b81526004016106509061573c565b5f805b6020811015613bb657613b7881601f615652565b613b8390600861543b565b87613b8f836006615406565b81518110613b9f57613b9f615203565b016020015160f81c901b9190911790600101613b64565b505f805b6008811015613c1557613bce816007615652565b613bd990600861543b565b6001600160401b031688613bee836026615406565b81518110613bfe57613bfe615203565b016020015160f81c901b9190911790600101613bba565b5090969095509350505050565b5f805160206159848339815191525f6001600160401b038084169085161115613c5657613c4f838561505a565b9050613c63565b613c60848461505a565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b0316606082015242911580613cc5575060028401548151613cc1916001600160401b031690615406565b8210155b15613ceb576001600160401b038316606082015281815260408101516020820152613d0a565b8281606001818151613cfd9190615452565b6001600160401b03169052505b6060810151613d1a906064615783565b602082015160028601546001600160401b039290921691613d459190600160401b900460ff1661543b565b1015613da95760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b6064820152608401610650565b856001600160401b031681604001818151613dc49190615406565b9052506040810180516001600160401b0387169190613de4908390615652565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f8181525f805160206159c48339815191526020526040812060020180545f8051602061598483398151915291600160401b9091046001600160401b0316906008613e7a836157ae565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16613f0957604051631afcd79f60e31b815260040160405180910390fd5b565b613f13613ec0565b613f1c81614577565b613f24614590565b612644608082013560a0830135613f4160e0850160c08601614f63565b613f52610100860160e087016157c9565b61ffff16613f68610120870161010088016157e2565b613f7a610140880161012089016151a3565b6145a0565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff1661400a5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b6064820152608401610650565b5f80516020615984833981519152426140296040860160208701614f63565b6001600160401b03161161409b5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b6064820152608401610650565b6140ab6040850160208601614f63565b6001600160401b03166140c16202a30042615406565b116141345760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e206675747572650000000000000000006064820152608401610650565b833561418c5760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b6064820152608401610650565b83355f908152600982016020526040902054156141bb5760405162461bcd60e51b81526004016106509061535e565b60306141ca6040860186615802565b90501461422f5760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b6064820152608401610650565b614239835f613c22565b5f806142d36040518060a0016040528085600101548152602001885f01358152602001876001600160401b0316815260200188602001602081019061427e9190614f63565b6001600160401b0316815260200161429960408a018a615802565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509152506147e4565b5f828152600786016020526040902091935091506142f18282615888565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb9061431e9085906004016150b3565b6020604051808303815f875af115801561433a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061435e919061507a565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff191660018360058111156143d6576143d6614f7c565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b916144b6918e01908e01614f63565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b804710156145075760405163cd78605960e01b8152306004820152602401610650565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114614550576040519150601f19603f3d011682016040523d82523d5f602084013e614555565b606091505b5050905080611f1d57604051630a12f52160e11b815260040160405180910390fd5b61457f613ec0565b614587614b93565b61264481614b9b565b614598613ec0565b613f09614d3d565b6145a8613ec0565b5f80516020615944833981519152836146145760405162461bcd60e51b815260206004820152602860248201527f506f5356616c696461746f724d616e616765723a207a65726f2064656c65676160448201526774696f6e2066656560c01b6064820152608401610650565b6127108411156146365760405162461bcd60e51b815260040161065090615665565b8587111561469e5760405162461bcd60e51b815260206004820152602f60248201527f506f5356616c696461746f724d616e616765723a20696e76616c69642073746160448201526e6b6520616d6f756e742072616e676560881b6064820152608401610650565b5f8360ff161161470b5760405162461bcd60e51b815260206004820152603260248201527f506f5356616c696461746f724d616e616765723a207a65726f206d6178696d75604482015271369039ba30b5b29036bab63a34b83634b2b960711b6064820152608401610650565b600a60ff8416111561477d5760405162461bcd60e51b815260206004820152603560248201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206d617860448201527434b6bab69039ba30b5b29036bab63a34b83634b2b960591b6064820152608401610650565b95865560018601949094556002850180546001600160401b0390941667ffffffffffffffff19909416939093179092556003840155600490920180546001600160a01b03909216600160401b026001600160e01b031990921660ff90931692909217179055565b5f606082608001515160301461484e5760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b6064820152608401610650565b60408051608680825260c082019092525f916020820181803683370190505090505f5b60028110156148c557614885816001615652565b61489090600861543b565b5081515f908390839081106148a7576148a7615203565b60200101906001600160f81b03191690815f1a905350600101614871565b505f5b600481101561492d576148dc816003615652565b6148e790600861543b565b600160ff919091161c60f81b826148ff836002615406565b8151811061490f5761490f615203565b60200101906001600160f81b03191690815f1a9053506001016148c8565b505f5b602081101561498a578451816020811061494c5761494c615203565b1a60f81b8261495c836006615406565b8151811061496c5761496c615203565b60200101906001600160f81b03191690815f1a905350600101614930565b505f5b60208110156149ea57846020015181602081106149ac576149ac615203565b1a60f81b826149bc836026615406565b815181106149cc576149cc615203565b60200101906001600160f81b03191690815f1a90535060010161498d565b505f5b6008811015614a5e57614a01816007615652565b614a0c90600861543b565b60ff1685604001516001600160401b0316901c60f81b82826046614a309190615406565b81518110614a4057614a40615203565b60200101906001600160f81b03191690815f1a9053506001016149ed565b505f5b6030811015614ac95784608001518181518110614a8057614a80615203565b01602001516001600160f81b03191682614a9b83604e615406565b81518110614aab57614aab615203565b60200101906001600160f81b03191690815f1a905350600101614a61565b505f5b6008811015614b3b57614ae0816007615652565b614aeb90600861543b565b60608601516001600160401b0390811691161c60f81b82614b0d83607e615406565b81518110614b1d57614b1d615203565b60200101906001600160f81b03191690815f1a905350600101614acc565b50600281604051614b4c91906153f5565b602060405180830381855afa158015614b67573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190614b8a919061507a565b94909350915050565b613f09613ec0565b614ba3613ec0565b80355f8051602061598483398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014614bef60808401606085016157e2565b60ff161115614c5c5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b6064820152608401610650565b5f614c6d60808401606085016157e2565b60ff1611614cd55760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b6064820152608401610650565b614ce560808301606084016157e2565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055614d166060830160408401614f63565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b6128e8613ec0565b508054614d5190615472565b5f825580601f10614d60575050565b601f0160209004905f5260205f20908101906126449190614db8565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115614dcc575f8155600101614db9565b5090565b8015158114612644575f80fd5b803563ffffffff81168114611f4e575f80fd5b5f805f60608486031215614e02575f80fd5b833592506020840135614e1481614dd0565b9150614e2260408501614ddd565b90509250925092565b5f60208284031215614e3b575f80fd5b5035919050565b5f6101408284031215614e53575f80fd5b50919050565b803561ffff81168114611f4e575f80fd5b80356001600160401b0381168114611f4e575f80fd5b5f805f60608486031215614e92575f80fd5b83356001600160401b03811115614ea7575f80fd5b840160608187031215614eb8575f80fd5b9250614ec660208501614e59565b9150614e2260408501614e6a565b5f60208284031215614ee4575f80fd5b610c7782614ddd565b5f8060408385031215614efe575f80fd5b614f0783614ddd565b946020939093013593505050565b5f8060408385031215614f26575f80fd5b82356001600160401b03811115614f3b575f80fd5b830160808186031215614f4c575f80fd5b9150614f5a60208401614ddd565b90509250929050565b5f60208284031215614f73575f80fd5b610c7782614e6a565b634e487b7160e01b5f52602160045260245ffd5b815160e082019060068110614fb357634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b0360408401511660408301526060830151614fee60608401826001600160401b03169052565b50608083015161500960808401826001600160401b03169052565b5060a083015161502460a08401826001600160401b03169052565b5060c083015161503f60c08401826001600160401b03169052565b5092915050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0382811682821603908082111561503f5761503f615046565b5f6020828403121561508a575f80fd5b5051919050565b5f5b838110156150ab578181015183820152602001615093565b50505f910152565b602081525f82518060208401526150d1816040850160208701615091565b601f01601f19169190910160400192915050565b5f826150ff57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526022908201527f506f5356616c696461746f724d616e616765723a20696e76616c6964206e6f6e604082015261636560f01b606082015260800190565b60208082526029908201527f506f5356616c696461746f724d616e616765723a206e6f6e636520646f6573206040820152680dcdee840dac2e8c6d60bb1b606082015260800190565b6001600160a01b0381168114612644575f80fd5b5f602082840312156151b3575f80fd5b8135610c778161518f565b5f808335601e198436030181126151d3575f80fd5b8301803591506001600160401b038211156151ec575f80fd5b6020019150600581901b3603821315612407575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261522b575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561526b5761526b615235565b60405290565b604051601f8201601f191681016001600160401b038111828210171561529957615299615235565b604052919050565b5f6001600160401b038211156152b9576152b9615235565b50601f01601f191660200190565b5f606082360312156152d7575f80fd5b6152df615249565b8235815260206152f0818501614e6a565b8183015260408401356001600160401b0381111561530c575f80fd5b840136601f82011261531c575f80fd5b803561532f61532a826152a1565b615271565b8181523684838501011115615342575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f85516153b7818460208a01615091565b80830190508581526001600160401b0360c01b8560c01b16602082015283516153e7816028840160208801615091565b016028019695505050505050565b5f825161522b818460208701615091565b80820180821115610c4457610c44615046565b5f63ffffffff80831681810361543157615431615046565b6001019392505050565b8082028115828204841417610c4457610c44615046565b6001600160401b0381811683821601908082111561503f5761503f615046565b600181811c9082168061548657607f821691505b602082108103614e5357634e487b7160e01b5f52602260045260245ffd5b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f84546154fd81615472565b806020870152604060018084165f811461551e576001811461553a57615567565b60ff19851660408a0152604084151560051b8a01019550615567565b895f5260205f205f5b8581101561555e5781548b8201860152908301908801615543565b8a016040019650505b509398975050505050505050565b8051611f4e81614dd0565b5f8060408385031215615591575f80fd5b82516001600160401b03808211156155a7575f80fd5b90840190606082870312156155ba575f80fd5b6155c2615249565b825181526020808401516155d58161518f565b828201526040840151838111156155ea575f80fd5b80850194505087601f8501126155fe575f80fd5b8351925061560e61532a846152a1565b8381528882858701011115615621575f80fd5b61563084838301848801615091565b80604084015250819550615645818801615575565b9450505050509250929050565b81810381811115610c4457610c44615046565b6020808252602b908201527f506f5356616c696461746f724d616e616765723a20696e76616c69642064656c60408201526a65676174696f6e2066656560a81b606082015260800190565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b6001600160401b038181168382160280821691908281146157a6576157a6615046565b505092915050565b5f6001600160401b0380831681810361543157615431615046565b5f602082840312156157d9575f80fd5b610c7782614e59565b5f602082840312156157f2575f80fd5b813560ff81168114610c77575f80fd5b5f808335601e19843603018112615817575f80fd5b8301803591506001600160401b03821115615830575f80fd5b602001915036819003821315612407575f80fd5b601f821115611f1d57805f5260205f20601f840160051c810160208510156158695750805b601f840160051c820191505b81811015610d17575f8155600101615875565b81516001600160401b038111156158a1576158a1615235565b6158b5816158af8454615472565b84615844565b602080601f8311600181146158e8575f84156158d15750858301515b5f19600386901b1c1916600185901b178555612cde565b5f85815260208120601f198616915b82811015615916578886015182559484019460019091019084016158f7565b508582101561593357878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d00506f5356616c696461746f724d616e616765723a2064656c65676174696f6e20e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", -} - -// NativeTokenStakingManagerABI is the input ABI used to generate the binding from. -// Deprecated: Use NativeTokenStakingManagerMetaData.ABI instead. -var NativeTokenStakingManagerABI = NativeTokenStakingManagerMetaData.ABI - -// NativeTokenStakingManagerBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use NativeTokenStakingManagerMetaData.Bin instead. -var NativeTokenStakingManagerBin = NativeTokenStakingManagerMetaData.Bin - -// DeployNativeTokenStakingManager deploys a new Ethereum contract, binding an instance of NativeTokenStakingManager to it. -func DeployNativeTokenStakingManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *NativeTokenStakingManager, error) { - parsed, err := NativeTokenStakingManagerMetaData.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(NativeTokenStakingManagerBin), backend, init) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &NativeTokenStakingManager{NativeTokenStakingManagerCaller: NativeTokenStakingManagerCaller{contract: contract}, NativeTokenStakingManagerTransactor: NativeTokenStakingManagerTransactor{contract: contract}, NativeTokenStakingManagerFilterer: NativeTokenStakingManagerFilterer{contract: contract}}, nil -} - -// NativeTokenStakingManager is an auto generated Go binding around an Ethereum contract. -type NativeTokenStakingManager struct { - NativeTokenStakingManagerCaller // Read-only binding to the contract - NativeTokenStakingManagerTransactor // Write-only binding to the contract - NativeTokenStakingManagerFilterer // Log filterer for contract events -} - -// NativeTokenStakingManagerCaller is an auto generated read-only Go binding around an Ethereum contract. -type NativeTokenStakingManagerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// NativeTokenStakingManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type NativeTokenStakingManagerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// NativeTokenStakingManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type NativeTokenStakingManagerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// NativeTokenStakingManagerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type NativeTokenStakingManagerSession struct { - Contract *NativeTokenStakingManager // 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 -} - -// NativeTokenStakingManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type NativeTokenStakingManagerCallerSession struct { - Contract *NativeTokenStakingManagerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// NativeTokenStakingManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type NativeTokenStakingManagerTransactorSession struct { - Contract *NativeTokenStakingManagerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// NativeTokenStakingManagerRaw is an auto generated low-level Go binding around an Ethereum contract. -type NativeTokenStakingManagerRaw struct { - Contract *NativeTokenStakingManager // Generic contract binding to access the raw methods on -} - -// NativeTokenStakingManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type NativeTokenStakingManagerCallerRaw struct { - Contract *NativeTokenStakingManagerCaller // Generic read-only contract binding to access the raw methods on -} - -// NativeTokenStakingManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type NativeTokenStakingManagerTransactorRaw struct { - Contract *NativeTokenStakingManagerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewNativeTokenStakingManager creates a new instance of NativeTokenStakingManager, bound to a specific deployed contract. -func NewNativeTokenStakingManager(address common.Address, backend bind.ContractBackend) (*NativeTokenStakingManager, error) { - contract, err := bindNativeTokenStakingManager(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &NativeTokenStakingManager{NativeTokenStakingManagerCaller: NativeTokenStakingManagerCaller{contract: contract}, NativeTokenStakingManagerTransactor: NativeTokenStakingManagerTransactor{contract: contract}, NativeTokenStakingManagerFilterer: NativeTokenStakingManagerFilterer{contract: contract}}, nil -} - -// NewNativeTokenStakingManagerCaller creates a new read-only instance of NativeTokenStakingManager, bound to a specific deployed contract. -func NewNativeTokenStakingManagerCaller(address common.Address, caller bind.ContractCaller) (*NativeTokenStakingManagerCaller, error) { - contract, err := bindNativeTokenStakingManager(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerCaller{contract: contract}, nil -} - -// NewNativeTokenStakingManagerTransactor creates a new write-only instance of NativeTokenStakingManager, bound to a specific deployed contract. -func NewNativeTokenStakingManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*NativeTokenStakingManagerTransactor, error) { - contract, err := bindNativeTokenStakingManager(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerTransactor{contract: contract}, nil -} - -// NewNativeTokenStakingManagerFilterer creates a new log filterer instance of NativeTokenStakingManager, bound to a specific deployed contract. -func NewNativeTokenStakingManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*NativeTokenStakingManagerFilterer, error) { - contract, err := bindNativeTokenStakingManager(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerFilterer{contract: contract}, nil -} - -// bindNativeTokenStakingManager binds a generic wrapper to an already deployed contract. -func bindNativeTokenStakingManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := NativeTokenStakingManagerMetaData.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 (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerCaller.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 (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_NativeTokenStakingManager *NativeTokenStakingManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.NativeTokenStakingManagerTransactor.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 (_NativeTokenStakingManager *NativeTokenStakingManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.contract.Transact(opts, method, params...) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "ADDRESS_LENGTH") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ADDRESSLENGTH() (uint32, error) { - return _NativeTokenStakingManager.Contract.ADDRESSLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ADDRESSLENGTH() (uint32, error) { - return _NativeTokenStakingManager.Contract.ADDRESSLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _NativeTokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _NativeTokenStakingManager.Contract.BLSPUBLICKEYLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMDELEGATIONFEEBIPS(opts *bind.CallOpts) (uint16, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_DELEGATION_FEE_BIPS") - - if err != nil { - return *new(uint16), err - } - - out0 := *abi.ConvertType(out[0], new(uint16)).(*uint16) - - return out0, err - -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMDELEGATIONFEEBIPS is a free data retrieval call binding the contract method 0x35455ded. -// -// Solidity: function MAXIMUM_DELEGATION_FEE_BIPS() view returns(uint16) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMDELEGATIONFEEBIPS() (uint16, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMDELEGATIONFEEBIPS(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) MAXIMUMSTAKEMULTIPLIERLIMIT(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "MAXIMUM_STAKE_MULTIPLIER_LIMIT") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_NativeTokenStakingManager.CallOpts) -} - -// MAXIMUMSTAKEMULTIPLIERLIMIT is a free data retrieval call binding the contract method 0x151d30d1. -// -// Solidity: function MAXIMUM_STAKE_MULTIPLIER_LIMIT() view returns(uint8) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) MAXIMUMSTAKEMULTIPLIERLIMIT() (uint8, error) { - return _NativeTokenStakingManager.Contract.MAXIMUMSTAKEMULTIPLIERLIMIT(&_NativeTokenStakingManager.CallOpts) -} - -// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. -// -// Solidity: function NATIVE_MINTER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) NATIVEMINTER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "NATIVE_MINTER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. -// -// Solidity: function NATIVE_MINTER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) NATIVEMINTER() (common.Address, error) { - return _NativeTokenStakingManager.Contract.NATIVEMINTER(&_NativeTokenStakingManager.CallOpts) -} - -// NATIVEMINTER is a free data retrieval call binding the contract method 0x329c3e12. -// -// Solidity: function NATIVE_MINTER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) NATIVEMINTER() (common.Address, error) { - return _NativeTokenStakingManager.Contract.NATIVEMINTER(&_NativeTokenStakingManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "WARP_MESSENGER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) WARPMESSENGER() (common.Address, error) { - return _NativeTokenStakingManager.Contract.WARPMESSENGER(&_NativeTokenStakingManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) WARPMESSENGER() (common.Address, error) { - return _NativeTokenStakingManager.Contract.WARPMESSENGER(&_NativeTokenStakingManager.CallOpts) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "activeValidators", nodeID) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _NativeTokenStakingManager.Contract.ActiveValidators(&_NativeTokenStakingManager.CallOpts, nodeID) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _NativeTokenStakingManager.Contract.ActiveValidators(&_NativeTokenStakingManager.CallOpts, nodeID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "getValidator", validationID) - - if err != nil { - return *new(Validator), err - } - - out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) - - return out0, err - -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _NativeTokenStakingManager.Contract.GetValidator(&_NativeTokenStakingManager.CallOpts, validationID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _NativeTokenStakingManager.Contract.GetValidator(&_NativeTokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) ValueToWeight(opts *bind.CallOpts, value *big.Int) (uint64, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "valueToWeight", value) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ValueToWeight(value *big.Int) (uint64, error) { - return _NativeTokenStakingManager.Contract.ValueToWeight(&_NativeTokenStakingManager.CallOpts, value) -} - -// ValueToWeight is a free data retrieval call binding the contract method 0x2e2194d8. -// -// Solidity: function valueToWeight(uint256 value) pure returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) ValueToWeight(value *big.Int) (uint64, error) { - return _NativeTokenStakingManager.Contract.ValueToWeight(&_NativeTokenStakingManager.CallOpts, value) -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) WeightToValue(opts *bind.CallOpts, weight uint64) (*big.Int, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "weightToValue", weight) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) WeightToValue(weight uint64) (*big.Int, error) { - return _NativeTokenStakingManager.Contract.WeightToValue(&_NativeTokenStakingManager.CallOpts, weight) -} - -// WeightToValue is a free data retrieval call binding the contract method 0x62065856. -// -// Solidity: function weightToValue(uint64 weight) pure returns(uint256) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) WeightToValue(weight uint64) (*big.Int, error) { - return _NativeTokenStakingManager.Contract.WeightToValue(&_NativeTokenStakingManager.CallOpts, weight) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteDelegatorRegistration(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "completeDelegatorRegistration", messageIndex, delegationID) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteDelegatorRegistration is a paid mutator transaction binding the contract method 0x5297fae6. -// -// Solidity: function completeDelegatorRegistration(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteDelegatorRegistration(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "completeEndDelegation", messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x98f3e2b4. -// -// Solidity: function completeEndDelegation(uint32 messageIndex, bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteEndDelegation(messageIndex uint32, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, messageIndex, delegationID) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "completeEndValidation", messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndValidation(&_NativeTokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndValidation(&_NativeTokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, messageIndex) -} - -// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) Initialize(opts *bind.TransactOpts, settings PoSValidatorManagerSettings) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initialize", settings) -} - -// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) Initialize(settings PoSValidatorManagerSettings) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.Initialize(&_NativeTokenStakingManager.TransactOpts, settings) -} - -// Initialize is a paid mutator transaction binding the contract method 0x1f7a9d8f. -// -// Solidity: function initialize(((bytes32,bytes32,uint64,uint8),uint256,uint256,uint64,uint16,uint8,address) settings) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Initialize(settings PoSValidatorManagerSettings) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.Initialize(&_NativeTokenStakingManager.TransactOpts, settings) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeDelegatorRegistration", validationID) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. -// -// Solidity: function initializeDelegatorRegistration(bytes32 validationID) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndDelegation", delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. -// -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x76f78621. -// -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, delegationFeeBips, minStakeDuration) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x40034a93. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, registrationInput, delegationFeeBips, minStakeDuration) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, subnetConversionData, messageIndex) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendEndValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendEndValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendRegisterValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendRegisterValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendUpdateDelegation(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "resendUpdateDelegation", delegationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) -} - -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. -// -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) -} - -// NativeTokenStakingManagerDelegationEndedIterator is returned from FilterDelegationEnded and is used to iterate over the raw logs and unpacked data for DelegationEnded events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegationEndedIterator struct { - Event *NativeTokenStakingManagerDelegationEnded // 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 interfaces.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 *NativeTokenStakingManagerDelegationEndedIterator) 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(NativeTokenStakingManagerDelegationEnded) - 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(NativeTokenStakingManagerDelegationEnded) - 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 *NativeTokenStakingManagerDelegationEndedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerDelegationEndedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegationEnded struct { - DelegationID [32]byte - ValidationID [32]byte - Nonce uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerDelegationEndedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerDelegationEndedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil -} - -// WatchDelegationEnded is a free log subscription operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, nonceRule) - 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(NativeTokenStakingManagerDelegationEnded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegationEnded", 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 -} - -// ParseDelegationEnded is a log parse operation binding the contract event 0x52e9b1eaef84d46cda83ccb9d427267bc4d04f756b4a32c8302722b79e5c65ab. -// -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*NativeTokenStakingManagerDelegationEnded, error) { - event := new(NativeTokenStakingManagerDelegationEnded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerDelegatorAddedIterator is returned from FilterDelegatorAdded and is used to iterate over the raw logs and unpacked data for DelegatorAdded events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorAddedIterator struct { - Event *NativeTokenStakingManagerDelegatorAdded // 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 interfaces.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 *NativeTokenStakingManagerDelegatorAddedIterator) 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(NativeTokenStakingManagerDelegatorAdded) - 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(NativeTokenStakingManagerDelegatorAdded) - 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 *NativeTokenStakingManagerDelegatorAddedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerDelegatorAddedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerDelegatorAdded represents a DelegatorAdded event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorAdded struct { - DelegationID [32]byte - ValidationID [32]byte - DelegatorAddress common.Address - Nonce uint64 - ValidatorWeight uint64 - DelegatorWeight uint64 - SetWeightMessageID [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorAdded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*NativeTokenStakingManagerDelegatorAddedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerDelegatorAddedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil -} - -// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorAdded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorAdded, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) - 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(NativeTokenStakingManagerDelegatorAdded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", 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 -} - -// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. -// -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorAdded(log types.Log) (*NativeTokenStakingManagerDelegatorAdded, error) { - event := new(NativeTokenStakingManagerDelegatorAdded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerDelegatorRegisteredIterator is returned from FilterDelegatorRegistered and is used to iterate over the raw logs and unpacked data for DelegatorRegistered events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorRegisteredIterator struct { - Event *NativeTokenStakingManagerDelegatorRegistered // 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 interfaces.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 *NativeTokenStakingManagerDelegatorRegisteredIterator) 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(NativeTokenStakingManagerDelegatorRegistered) - 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(NativeTokenStakingManagerDelegatorRegistered) - 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 *NativeTokenStakingManagerDelegatorRegisteredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerDelegatorRegistered represents a DelegatorRegistered event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorRegistered struct { - DelegationID [32]byte - ValidationID [32]byte - Nonce uint64 - StartTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerDelegatorRegisteredIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerDelegatorRegisteredIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil -} - -// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, nonceRule) - 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(NativeTokenStakingManagerDelegatorRegistered) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", 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 -} - -// ParseDelegatorRegistered is a log parse operation binding the contract event 0x245fc69b36e168426e0306fc8d8300661b9af297c7958820dbf804f9f63e7064. -// -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint64 indexed nonce, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*NativeTokenStakingManagerDelegatorRegistered, error) { - event := new(NativeTokenStakingManagerDelegatorRegistered) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerDelegatorRemovalInitializedIterator is returned from FilterDelegatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for DelegatorRemovalInitialized events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorRemovalInitializedIterator struct { - Event *NativeTokenStakingManagerDelegatorRemovalInitialized // 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 interfaces.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 *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) 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(NativeTokenStakingManagerDelegatorRemovalInitialized) - 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(NativeTokenStakingManagerDelegatorRemovalInitialized) - 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 *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerDelegatorRemovalInitialized represents a DelegatorRemovalInitialized event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegatorRemovalInitialized struct { - DelegationID [32]byte - ValidationID [32]byte - EndTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerDelegatorRemovalInitializedIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerDelegatorRemovalInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil -} - -// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) - 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(NativeTokenStakingManagerDelegatorRemovalInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", 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 -} - -// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x5cd7ff518ea5cf079cc34b155d074410ae8c095910ebea921240641508658c69. -// -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerDelegatorRemovalInitialized, error) { - event := new(NativeTokenStakingManagerDelegatorRemovalInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerInitialValidatorCreatedIterator struct { - Event *NativeTokenStakingManagerInitialValidatorCreated // 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 interfaces.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 *NativeTokenStakingManagerInitialValidatorCreatedIterator) 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(NativeTokenStakingManagerInitialValidatorCreated) - 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(NativeTokenStakingManagerInitialValidatorCreated) - 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 *NativeTokenStakingManagerInitialValidatorCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerInitialValidatorCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerInitialValidatorCreated struct { - ValidationID [32]byte - NodeID [32]byte - Weight *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*NativeTokenStakingManagerInitialValidatorCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerInitialValidatorCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil -} - -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - 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(NativeTokenStakingManagerInitialValidatorCreated) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 -} - -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*NativeTokenStakingManagerInitialValidatorCreated, error) { - event := new(NativeTokenStakingManagerInitialValidatorCreated) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerInitializedIterator struct { - Event *NativeTokenStakingManagerInitialized // 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 interfaces.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 *NativeTokenStakingManagerInitializedIterator) 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(NativeTokenStakingManagerInitialized) - 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(NativeTokenStakingManagerInitialized) - 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 *NativeTokenStakingManagerInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerInitialized represents a Initialized event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerInitialized 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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*NativeTokenStakingManagerInitializedIterator, error) { - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerInitializedIterator{contract: _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialized) (event.Subscription, error) { - - logs, sub, err := _NativeTokenStakingManager.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(NativeTokenStakingManagerInitialized) - if err := _NativeTokenStakingManager.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 (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitialized(log types.Log) (*NativeTokenStakingManagerInitialized, error) { - event := new(NativeTokenStakingManagerInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodCreatedIterator struct { - Event *NativeTokenStakingManagerValidationPeriodCreated // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodCreatedIterator) 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(NativeTokenStakingManagerValidationPeriodCreated) - 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(NativeTokenStakingManagerValidationPeriodCreated) - 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 *NativeTokenStakingManagerValidationPeriodCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerValidationPeriodCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodCreated struct { - ValidationID [32]byte - NodeID [32]byte - RegisterValidationMessageID [32]byte - Weight *big.Int - RegistrationExpiry uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*NativeTokenStakingManagerValidationPeriodCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerValidationPeriodCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - 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(NativeTokenStakingManagerValidationPeriodCreated) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 -} - -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*NativeTokenStakingManagerValidationPeriodCreated, error) { - event := new(NativeTokenStakingManagerValidationPeriodCreated) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodEndedIterator struct { - Event *NativeTokenStakingManagerValidationPeriodEnded // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodEndedIterator) 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(NativeTokenStakingManagerValidationPeriodEnded) - 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(NativeTokenStakingManagerValidationPeriodEnded) - 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 *NativeTokenStakingManagerValidationPeriodEndedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerValidationPeriodEndedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodEnded struct { - ValidationID [32]byte - Status uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*NativeTokenStakingManagerValidationPeriodEndedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerValidationPeriodEndedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - 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(NativeTokenStakingManagerValidationPeriodEnded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 -} - -// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*NativeTokenStakingManagerValidationPeriodEnded, error) { - event := new(NativeTokenStakingManagerValidationPeriodEnded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodRegisteredIterator struct { - Event *NativeTokenStakingManagerValidationPeriodRegistered // 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 interfaces.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 *NativeTokenStakingManagerValidationPeriodRegisteredIterator) 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(NativeTokenStakingManagerValidationPeriodRegistered) - 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(NativeTokenStakingManagerValidationPeriodRegistered) - 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 *NativeTokenStakingManagerValidationPeriodRegisteredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerValidationPeriodRegisteredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidationPeriodRegistered struct { - ValidationID [32]byte - Weight *big.Int - Timestamp *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerValidationPeriodRegisteredIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerValidationPeriodRegisteredIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) - 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(NativeTokenStakingManagerValidationPeriodRegistered) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 -} - -// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*NativeTokenStakingManagerValidationPeriodRegistered, error) { - event := new(NativeTokenStakingManagerValidationPeriodRegistered) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidatorRemovalInitializedIterator struct { - Event *NativeTokenStakingManagerValidatorRemovalInitialized // 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 interfaces.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 *NativeTokenStakingManagerValidatorRemovalInitializedIterator) 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(NativeTokenStakingManagerValidatorRemovalInitialized) - 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(NativeTokenStakingManagerValidatorRemovalInitialized) - 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 *NativeTokenStakingManagerValidatorRemovalInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerValidatorRemovalInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidatorRemovalInitialized struct { - ValidationID [32]byte - SetWeightMessageID [32]byte - Weight *big.Int - EndTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*NativeTokenStakingManagerValidatorRemovalInitializedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerValidatorRemovalInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil -} - -// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - 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(NativeTokenStakingManagerValidatorRemovalInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 -} - -// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerValidatorRemovalInitialized, error) { - event := new(NativeTokenStakingManagerValidatorRemovalInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// NativeTokenStakingManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidatorWeightUpdateIterator struct { - Event *NativeTokenStakingManagerValidatorWeightUpdate // 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 interfaces.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 *NativeTokenStakingManagerValidatorWeightUpdateIterator) 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(NativeTokenStakingManagerValidatorWeightUpdate) - 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(NativeTokenStakingManagerValidatorWeightUpdate) - 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 *NativeTokenStakingManagerValidatorWeightUpdateIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *NativeTokenStakingManagerValidatorWeightUpdateIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// NativeTokenStakingManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerValidatorWeightUpdate struct { - ValidationID [32]byte - Nonce uint64 - ValidatorWeight uint64 - SetWeightMessageID [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerValidatorWeightUpdateIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &NativeTokenStakingManagerValidatorWeightUpdateIterator{contract: _NativeTokenStakingManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil -} - -// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - 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(NativeTokenStakingManagerValidatorWeightUpdate) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 -} - -// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*NativeTokenStakingManagerValidatorWeightUpdate, error) { - event := new(NativeTokenStakingManagerValidatorWeightUpdate) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/abi-bindings/go/staking/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/staking/PoAValidatorManager/PoAValidatorManager.go deleted file mode 100644 index 2dbe9c8fa..000000000 --- a/abi-bindings/go/staking/PoAValidatorManager/PoAValidatorManager.go +++ /dev/null @@ -1,1947 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package poavalidatormanager - -import ( - "errors" - "math/big" - "strings" - - "github.com/ava-labs/subnet-evm/accounts/abi" - "github.com/ava-labs/subnet-evm/accounts/abi/bind" - "github.com/ava-labs/subnet-evm/core/types" - "github.com/ava-labs/subnet-evm/interfaces" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = interfaces.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// InitialValidator is an auto generated low-level Go binding around an user-defined struct. -type InitialValidator struct { - NodeID [32]byte - Weight uint64 - BlsPublicKey []byte -} - -// SubnetConversionData is an auto generated low-level Go binding around an user-defined struct. -type SubnetConversionData struct { - ConvertSubnetTxID [32]byte - ValidatorManagerBlockchainID [32]byte - ValidatorManagerAddress common.Address - InitialValidators []InitialValidator -} - -// Validator is an auto generated low-level Go binding around an user-defined struct. -type Validator struct { - Status uint8 - NodeID [32]byte - StartingWeight uint64 - MessageNonce uint64 - Weight uint64 - StartedAt uint64 - EndedAt uint64 -} - -// ValidatorManagerSettings is an auto generated low-level Go binding around an user-defined struct. -type ValidatorManagerSettings struct { - PChainBlockchainID [32]byte - SubnetID [32]byte - ChurnPeriodSeconds uint64 - MaximumChurnPercentage uint8 -} - -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID [32]byte - RegistrationExpiry uint64 - BlsPublicKey []byte -} - -// PoAValidatorManagerMetaData contains all meta data concerning the PoAValidatorManager contract. -var PoAValidatorManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"init\",\"type\":\"uint8\",\"internalType\":\"enumICMInitializable\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ADDRESS_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WARP_MESSENGER\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIWarpMessenger\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"activeValidators\",\"inputs\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"completeEndValidation\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"completeValidatorRegistration\",\"inputs\":[{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getValidator\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structValidator\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumValidatorStatus\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"startingWeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageNonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"startedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endedAt\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getWeight\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structValidatorManagerSettings\",\"components\":[{\"name\":\"pChainBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"subnetID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeEndValidation\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorRegistration\",\"inputs\":[{\"name\":\"registrationInput\",\"type\":\"tuple\",\"internalType\":\"structValidatorRegistrationInput\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeValidatorSet\",\"inputs\":[{\"name\":\"subnetConversionData\",\"type\":\"tuple\",\"internalType\":\"structSubnetConversionData\",\"components\":[{\"name\":\"convertSubnetTxID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorManagerAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"initialValidators\",\"type\":\"tuple[]\",\"internalType\":\"structInitialValidator[]\",\"components\":[{\"name\":\"nodeID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blsPublicKey\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]},{\"name\":\"messageIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendEndValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resendRegisterValidatorMessage\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"InitialValidatorCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"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\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodCreated\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nodeID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"registrationExpiry\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodEnded\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumValidatorStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidationPeriodRegistered\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"timestamp\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorRemovalInitialized\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"weight\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"endTime\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorWeightUpdate\",\"inputs\":[{\"name\":\"validationID\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"validatorWeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"setWeightMessageID\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"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: "0x608060405234801561000f575f80fd5b5060405161396538038061396583398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6138188061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061011c575f3560e01c80638994ab49116100a9578063bee0a03f1161006e578063bee0a03f146102b4578063c974d1b6146102c7578063d5f20ff6146102cf578063df93d8de146102ef578063f2fde38b146102f9575f80fd5b80638994ab49146102295780638da5cb5b1461023c57806397fb70d414610280578063a3a65e4814610293578063b771b3bc146102a6575f80fd5b806360305d62116100ef57806360305d62146101ac57806361e2f490146101c957806366435abf146101dc578063715018a6146102075780638280a25a1461020f575f80fd5b80630322ed98146101205780630cdd098514610135578063467ef06f14610186578063580a400614610199575b5f80fd5b61013361012e366004612daa565b61030c565b005b610173610143366004612daa565b5f9081527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb09602052604090205490565b6040519081526020015b60405180910390f35b610133610194366004612dd9565b6104ca565b6101336101a7366004612e1c565b6104d8565b6101b4601481565b60405163ffffffff909116815260200161017d565b6101336101d7366004612e52565b6105e6565b6101ef6101ea366004612daa565b610c1a565b6040516001600160401b03909116815260200161017d565b610133610c2e565b610217603081565b60405160ff909116815260200161017d565b610173610237366004612eb2565b610c41565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017d565b61013361028e366004612daa565b610c5d565b6101336102a1366004612dd9565b610c72565b6102686005600160991b0181565b6101336102c2366004612daa565b610e2a565b610217601481565b6102e26102dd366004612daa565b610f39565b60405161017d9190612f0b565b6101ef6202a30081565b610133610307366004612fc1565b611001565b5f8181525f805160206137ec8339815191526020526040808220815160e0810190925280545f805160206137cc83398151915293929190829060ff16600581111561035957610359612ef7565b600581111561036a5761036a612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c090910152909150815160058111156103d9576103d9612ef7565b146104435760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2056616c696461746f72206e6f742060448201526e1c195b991a5b99c81c995b5bdd985b608a1b60648201526084015b60405180910390fd5b6005600160991b016001600160a01b031663ee5b48eb6104688584606001515f61103e565b6040518263ffffffff1660e01b81526004016104849190613005565b6020604051808303815f875af11580156104a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c49190613037565b50505050565b6104d381611263565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f8115801561051c5750825b90505f826001600160401b031660011480156105375750303b155b905081158015610545575080155b156105635760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561058d57845460ff60401b1916600160401b1785555b61059787876115ad565b83156105dd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f805160206137cc8339815191529060ff16156106835760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20616c726561647920696e697469616044820152721b1a5e9959081d985b1a59185d1bdc881cd95d606a1b606482015260840161043a565b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea9190613037565b83602001351461074c5760405162461bcd60e51b815260206004820152602760248201527f56616c696461746f724d616e616765723a20696e76616c696420626c6f636b636044820152661a185a5b88125160ca1b606482015260840161043a565b3061075d6060850160408601612fc1565b6001600160a01b0316146107cf5760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015272746f72206d616e61676572206164647265737360681b606482015260840161043a565b5f6107dd606085018561304e565b91505f90508435602086013560146107fb6060890160408a01612fc1565b60408051602081019590955284019290925260e090811b6001600160e01b03199081166060808601919091529290921b6bffffffffffffffffffffffff1916606484015284901b166078820152607c0160405160208183030381529060405290505f805b838163ffffffff161015610b2a575f61087b606089018961304e565b8363ffffffff1681811061089157610891613093565b90506020028101906108a391906130a7565b6108ac90613157565b80515f81815260098901602052604090205491925090156108df5760405162461bcd60e51b815260040161043a906131ee565b84825f0151836020015184604001516040516020016109019493929190613236565b60408051808303601f190181528282528b35602084015260e086901b6001600160e01b031916838301528151602481850301815260449093019182905296505f9160029161094f9190613285565b602060405180830381855afa15801561096a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061098d9190613037565b5f83815260098a0160209081526040808320849055805160e0810182526002815287518184015287830180516001600160401b039081168385015260608301869052905181166080830152421660a082015260c0810184905284845260088d01909252909120815181549394509192909190829060ff19166001836005811115610a1957610a19612ef7565b0217905550602082810151600183015560408301516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909301516003909201805467ffffffffffffffff191692841692909217909155840151610acc9116866132aa565b83516020808601516040516001600160401b039091168152929750909183917fb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014910160405180910390a350505080610b23906132bd565b905061085f565b50600584018190555f610b3c866115c7565b90505f610b4c82604001516117a1565b905080600285604051610b5f9190613285565b602060405180830381855afa158015610b7a573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610b9d9190613037565b14610c015760405162461bcd60e51b815260206004820152602e60248201527f56616c696461746f724d616e616765723a20696e76616c6964207375626e657460448201526d0818dbdb9d995c9cda5bdb88125160921b606482015260840161043a565b505050600a909201805460ff1916600117905550505050565b5f610c2482610f39565b6080015192915050565b610c3661190a565b610c3f5f611965565b565b5f610c4a61190a565b610c5483836119d5565b90505b92915050565b610c6561190a565b610c6e81611f3a565b5050565b5f805160206137cc8339815191525f610c8a836115c7565b90505f80610c9b83604001516121b5565b9150915080610cfd5760405162461bcd60e51b815260206004820152602860248201527f56616c696461746f724d616e616765723a20526567697374726174696f6e206e6044820152671bdd081d985b1a5960c21b606482015260840161043a565b5f82815260078501602052604081208054610d17906132df565b9050118015610d49575060015f83815260088601602052604090205460ff166005811115610d4757610d47612ef7565b145b610d655760405162461bcd60e51b815260040161043a90613311565b5f8281526007850160205260408120610d7d91612d1f565b5f8281526008850160208181526040808420805460ff191660029081178255810180546001600160401b0342818116600160c01b026001600160c01b03909316929092178355600190930154875260098b0185528387208990559588905293835292548151600160801b90910490931683529082019290925283917ff8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568910160405180910390a25050505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb076020526040812080545f805160206137cc833981519152929190610e72906132df565b9050118015610ea4575060015f83815260088301602052604090205460ff166005811115610ea257610ea2612ef7565b145b610ec05760405162461bcd60e51b815260040161043a90613311565b5f82815260078201602052604090819020905163ee5b48eb60e01b81526005600160991b019163ee5b48eb91610ef99190600401613358565b6020604051808303815f875af1158015610f15573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d39190613037565b610f41612d56565b5f8281525f805160206137ec833981519152602052604090819020815160e0810190925280545f805160206137cc833981519152929190829060ff166005811115610f8e57610f8e612ef7565b6005811115610f9f57610f9f612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a083015260039092015490911660c0909101529392505050565b61100961190a565b6001600160a01b03811661103257604051631e4fbdf760e01b81525f600482015260240161043a565b61103b81611965565b50565b60408051603680825260608281019093525f91906020820181803683370190505090505f5b60028110156110b7576110778160016133e2565b6110829060086133f5565b5081515f9083908390811061109957611099613093565b60200101906001600160f81b03191690815f1a905350600101611063565b505f5b6004811015611122576110ce8160036133e2565b6110d99060086133f5565b600263ffffffff16901c60f81b828260026110f491906132aa565b8151811061110457611104613093565b60200101906001600160f81b03191690815f1a9053506001016110ba565b505f5b60208110156111845761113981601f6133e2565b6111449060086133f5565b86901c60f81b826111568360066132aa565b8151811061116657611166613093565b60200101906001600160f81b03191690815f1a905350600101611125565b505f5b60088110156111ef5761119b8160076133e2565b6111a69060086133f5565b6001600160401b038616901c60f81b826111c18360266132aa565b815181106111d1576111d1613093565b60200101906001600160f81b03191690815f1a905350600101611187565b505f5b600881101561125a576112068160076133e2565b6112119060086133f5565b6001600160401b038516901c60f81b8261122c83602e6132aa565b8151811061123c5761123c613093565b60200101906001600160f81b03191690815f1a9053506001016111f2565b50949350505050565b5f61126c612d56565b5f805160206137cc8339815191525f611284856115c7565b90505f8061129583604001516121b5565b9150915080156112fa5760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20736044820152691d1a5b1b081d985b1a5960b21b606482015260840161043a565b5f828152600885016020526040808220815160e081019092528054829060ff16600581111561132b5761132b612ef7565b600581111561133c5761133c612ef7565b81526001820154602082015260028201546001600160401b038082166040840152600160401b820481166060840152600160801b820481166080840152600160c01b909104811660a08301526003928301541660c0909101529091505f90825160058111156113ad576113ad612ef7565b14806113cb57506001825160058111156113c9576113c9612ef7565b145b61142a5760405162461bcd60e51b815260206004820152602a60248201527f56616c696461746f724d616e616765723a20696e76616c69642076616c696461604482015269746f722073746174757360b01b606482015260840161043a565b60038251600581111561143f5761143f612ef7565b0361144c57506004611450565b5060055b6020808301515f9081526009880190915260408120558181600581111561147957611479612ef7565b9081600581111561148c5761148c612ef7565b9052505f84815260088701602052604090208251815484929190829060ff191660018360058111156114c0576114c0612ef7565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558151600581111561157457611574612ef7565b60405185907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a350919791965090945050505050565b6115b5612356565b6115be8261239f565b610c6e816123b8565b60408051606080820183525f8083526020830181905292820152905f805160206137cc8339815191526040516306f8253560e41b815263ffffffff851660048201529091505f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561163c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611663919081019061341b565b91509150806116c35760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a20696e76616c69642077617270206d60448201526565737361676560d01b606482015260840161043a565b82548251146117265760405162461bcd60e51b815260206004820152602960248201527f56616c696461746f724d616e616765723a20696e76616c696420736f757263656044820152680818da185a5b88125160ba1b606482015260840161043a565b60208201516001600160a01b0316156117995760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a20696e76616c6964206f726967696e60448201526e2073656e646572206164647265737360881b606482015260840161043a565b509392505050565b5f81516026146117c35760405162461bcd60e51b815260040161043a906134ed565b5f805b6002811015611812576117da8160016133e2565b6117e59060086133f5565b61ffff168482815181106117fb576117fb613093565b016020015160f81c901b91909117906001016117c6565b5061ffff8116156118355760405162461bcd60e51b815260040161043a90613536565b5f805b60048110156118905761184c8160036133e2565b6118579060086133f5565b63ffffffff16856118698360026132aa565b8151811061187957611879613093565b016020015160f81c901b9190911790600101611838565b5063ffffffff8116156118b55760405162461bcd60e51b815260040161043a90613579565b5f805b602081101561125a576118cc81601f6133e2565b6118d79060086133f5565b866118e38360066132aa565b815181106118f3576118f3613093565b016020015160f81c901b91909117906001016118b8565b3361193c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610c3f5760405163118cdaa760e01b815233600482015260240161043a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0a545f9060ff16611a605760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a2076616c696461746f72207365742060448201526e1b9bdd081a5b9a5d1a585b1a5e9959608a1b606482015260840161043a565b5f805160206137cc83398151915242611a7f60408601602087016135c0565b6001600160401b031611611af15760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e20656044820152727870697279206e6f7420696e2066757475726560681b606482015260840161043a565b611b0160408501602086016135c0565b6001600160401b0316611b176202a300426132aa565b11611b8a5760405162461bcd60e51b815260206004820152603760248201527f56616c696461746f724d616e616765723a20726567697374726174696f6e206560448201527f787069727920746f6f2066617220696e20667574757265000000000000000000606482015260840161043a565b8335611be25760405162461bcd60e51b815260206004820152602160248201527f56616c696461746f724d616e616765723a20696e76616c6964206e6f646520496044820152601160fa1b606482015260840161043a565b83355f90815260098201602052604090205415611c115760405162461bcd60e51b815260040161043a906131ee565b6030611c2060408601866135d9565b905014611c855760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a20696e76616c696420626c7350756260448201526c0d8d2c696caf240d8cadccee8d609b1b606482015260840161043a565b611c8f835f6123c9565b5f80611d296040518060a0016040528085600101548152602001885f01358152602001876001600160401b03168152602001886020016020810190611cd491906135c0565b6001600160401b03168152602001611cef60408a018a6135d9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509152506125d7565b5f82815260078601602052604090209193509150611d478282613666565b5060405163ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611d74908590600401613005565b6020604051808303815f875af1158015611d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db49190613037565b6040805160e08101909152909150806001815288356020808301919091526001600160401b03891660408084018290525f60608501819052608085019290925260a0840182905260c0909301819052868152600888019091522081518154829060ff19166001836005811115611e2c57611e2c612ef7565b021790555060208281015160018301556040808401516002840180546060870151608088015160a08901516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909401516003909301805467ffffffffffffffff19169390941692909217909255829189359186917f79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e918b91611f0c918e01908e016135c0565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b611f42612d56565b5f8281525f805160206137ec8339815191526020526040808220815160e0810190925280545f805160206137cc83398151915293929190829060ff166005811115611f8f57611f8f612ef7565b6005811115611fa057611fa0612ef7565b8152600182015460208201526002808301546001600160401b038082166040850152600160401b820481166060850152600160801b820481166080850152600160c01b909104811660a084015260039093015490921660c0909101529091508151600581111561201257612012612ef7565b1461206e5760405162461bcd60e51b815260206004820152602660248201527f56616c696461746f724d616e616765723a2076616c696461746f72206e6f742060448201526561637469766560d01b606482015260840161043a565b60038152426001600160401b031660c08201525f84815260088301602052604090208151815483929190829060ff191660018360058111156120b2576120b2612ef7565b02179055506020820151600182015560408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61215e8582612986565b6080840151604080516001600160401b03909216825242602083015291935083925087917f13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67910160405180910390a3509392505050565b5f8082516027146121d85760405162461bcd60e51b815260040161043a906134ed565b5f805b6002811015612227576121ef8160016133e2565b6121fa9060086133f5565b61ffff1685828151811061221057612210613093565b016020015160f81c901b91909117906001016121db565b5061ffff81161561224a5760405162461bcd60e51b815260040161043a90613536565b5f805b60048110156122a5576122618160036133e2565b61226c9060086133f5565b63ffffffff168661227e8360026132aa565b8151811061228e5761228e613093565b016020015160f81c901b919091179060010161224d565b5063ffffffff81166003146122cc5760405162461bcd60e51b815260040161043a90613579565b5f805b6020811015612321576122e381601f6133e2565b6122ee9060086133f5565b876122fa8360066132aa565b8151811061230a5761230a613093565b016020015160f81c901b91909117906001016122cf565b505f8660268151811061233657612336613093565b016020015191976001600160f81b03199092161515965090945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610c3f57604051631afcd79f60e31b815260040160405180910390fd5b6123a7612356565b6123af612add565b61103b81612ae5565b6123c0612356565b61103b81612c87565b5f805160206137cc8339815191525f6001600160401b0380841690851611156123fd576123f68385613725565b905061240a565b6124078484613725565b90505b6040805160808101825260038401548082526004850154602083015260058501549282019290925260068401546001600160401b031660608201524291158061246c575060028401548151612468916001600160401b0316906132aa565b8210155b15612492576001600160401b0383166060820152818152604081015160208201526124b1565b82816060018181516124a49190613745565b6001600160401b03169052505b60608101516124c1906064613765565b602082015160028601546001600160401b0392909216916124ec9190600160401b900460ff166133f5565b10156125505760405162461bcd60e51b815260206004820152602d60248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e2060448201526c1c985d1948195e18d959591959609a1b606482015260840161043a565b856001600160401b03168160400181815161256b91906132aa565b9052506040810180516001600160401b038716919061258b9083906133e2565b905250805160038501556020810151600485015560408101516005850155606001516006909301805467ffffffffffffffff19166001600160401b039094169390931790925550505050565b5f60608260800151516030146126415760405162461bcd60e51b815260206004820152602960248201527f5374616b696e674d657373616765733a20696e76616c6964207369676e6174756044820152680e4ca40d8cadccee8d60bb1b606482015260840161043a565b60408051608680825260c082019092525f916020820181803683370190505090505f5b60028110156126b8576126788160016133e2565b6126839060086133f5565b5081515f9083908390811061269a5761269a613093565b60200101906001600160f81b03191690815f1a905350600101612664565b505f5b6004811015612720576126cf8160036133e2565b6126da9060086133f5565b600160ff919091161c60f81b826126f28360026132aa565b8151811061270257612702613093565b60200101906001600160f81b03191690815f1a9053506001016126bb565b505f5b602081101561277d578451816020811061273f5761273f613093565b1a60f81b8261274f8360066132aa565b8151811061275f5761275f613093565b60200101906001600160f81b03191690815f1a905350600101612723565b505f5b60208110156127dd578460200151816020811061279f5761279f613093565b1a60f81b826127af8360266132aa565b815181106127bf576127bf613093565b60200101906001600160f81b03191690815f1a905350600101612780565b505f5b6008811015612851576127f48160076133e2565b6127ff9060086133f5565b60ff1685604001516001600160401b0316901c60f81b8282604661282391906132aa565b8151811061283357612833613093565b60200101906001600160f81b03191690815f1a9053506001016127e0565b505f5b60308110156128bc578460800151818151811061287357612873613093565b01602001516001600160f81b0319168261288e83604e6132aa565b8151811061289e5761289e613093565b60200101906001600160f81b03191690815f1a905350600101612854565b505f5b600881101561292e576128d38160076133e2565b6128de9060086133f5565b60608601516001600160401b0390811691161c60f81b8261290083607e6132aa565b8151811061291057612910613093565b60200101906001600160f81b03191690815f1a9053506001016128bf565b5060028160405161293f9190613285565b602060405180830381855afa15801561295a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061297d9190613037565b94909350915050565b5f8281525f805160206137ec833981519152602052604081206002015481905f805160206137cc83398151915290600160801b90046001600160401b03166129ce85826123c9565b5f6129d887612c8f565b5f8881526008850160205260408120600201805467ffffffffffffffff60801b1916600160801b6001600160401b038b16021790559091506005600160991b0163ee5b48eb612a288a858b61103e565b6040518263ffffffff1660e01b8152600401612a449190613005565b6020604051808303815f875af1158015612a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a849190613037565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b610c3f612356565b612aed612356565b80355f805160206137cc83398151915290815560208201357fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01556014612b396080840160608501613790565b60ff161115612ba65760405162461bcd60e51b815260206004820152603360248201527f56616c696461746f724d616e616765723a206d6178696d756d20636875726e206044820152720e0cae4c6cadce8c2ceca40e8dede40d0d2ced606b1b606482015260840161043a565b5f612bb76080840160608501613790565b60ff1611612c1f5760405162461bcd60e51b815260206004820152602f60248201527f56616c696461746f724d616e616765723a207a65726f206d6178696d756d206360448201526e6875726e2070657263656e7461676560881b606482015260840161043a565b612c2f6080830160608401613790565b60028201805460ff92909216600160401b0260ff60401b19909216919091179055612c6060608301604084016135c0565b600291909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b611009612356565b5f8181525f805160206137ec8339815191526020526040812060020180545f805160206137cc83398151915291600160401b9091046001600160401b0316906008612cd9836137b0565b82546101009290920a6001600160401b038181021990931691831602179091555f94855260089290920160205250604090922060020154600160401b9004909116919050565b508054612d2b906132df565b5f825580601f10612d3a575050565b601f0160209004905f5260205f209081019061103b9190612d92565b6040805160e08101909152805f81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5b80821115612da6575f8155600101612d93565b5090565b5f60208284031215612dba575f80fd5b5035919050565b803563ffffffff81168114612dd4575f80fd5b919050565b5f60208284031215612de9575f80fd5b610c5482612dc1565b5f60808284031215612e02575f80fd5b50919050565b6001600160a01b038116811461103b575f80fd5b5f8060a08385031215612e2d575f80fd5b612e378484612df2565b91506080830135612e4781612e08565b809150509250929050565b5f8060408385031215612e63575f80fd5b82356001600160401b03811115612e78575f80fd5b612e8485828601612df2565b925050612e9360208401612dc1565b90509250929050565b80356001600160401b0381168114612dd4575f80fd5b5f8060408385031215612ec3575f80fd5b82356001600160401b03811115612ed8575f80fd5b830160608186031215612ee9575f80fd5b9150612e9360208401612e9c565b634e487b7160e01b5f52602160045260245ffd5b815160e082019060068110612f2e57634e487b7160e01b5f52602160045260245ffd5b80835250602083015160208301526001600160401b0360408401511660408301526060830151612f6960608401826001600160401b03169052565b506080830151612f8460808401826001600160401b03169052565b5060a0830151612f9f60a08401826001600160401b03169052565b5060c0830151612fba60c08401826001600160401b03169052565b5092915050565b5f60208284031215612fd1575f80fd5b8135612fdc81612e08565b9392505050565b5f5b83811015612ffd578181015183820152602001612fe5565b50505f910152565b602081525f8251806020840152613023816040850160208701612fe3565b601f01601f19169190910160400192915050565b5f60208284031215613047575f80fd5b5051919050565b5f808335601e19843603018112613063575f80fd5b8301803591506001600160401b0382111561307c575f80fd5b6020019150600581901b3603821315612ad6575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126130bb575f80fd5b9190910192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156130fb576130fb6130c5565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613129576131296130c5565b604052919050565b5f6001600160401b03821115613149576131496130c5565b50601f01601f191660200190565b5f60608236031215613167575f80fd5b61316f6130d9565b823581526020613180818501612e9c565b8183015260408401356001600160401b0381111561319c575f80fd5b840136601f8201126131ac575f80fd5b80356131bf6131ba82613131565b613101565b81815236848385010111156131d2575f80fd5b81848401858301375f9181019093015250604082015292915050565b60208082526028908201527f56616c696461746f724d616e616765723a206e6f646520494420616c72656164604082015267792061637469766560c01b606082015260800190565b5f8551613247818460208a01612fe3565b80830190508581526001600160401b0360c01b8560c01b1660208201528351613277816028840160208801612fe3565b016028019695505050505050565b5f82516130bb818460208701612fe3565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c5757610c57613296565b5f63ffffffff8083168181036132d5576132d5613296565b6001019392505050565b600181811c908216806132f357607f821691505b602082108103612e0257634e487b7160e01b5f52602260045260245ffd5b60208082526027908201527f56616c696461746f724d616e616765723a20696e76616c69642076616c6964616040820152661d1a5bdb88125160ca1b606082015260800190565b5f60208083525f845461336a816132df565b806020870152604060018084165f811461338b57600181146133a7576133d4565b60ff19851660408a0152604084151560051b8a010195506133d4565b895f5260205f205f5b858110156133cb5781548b82018601529083019088016133b0565b8a016040019650505b509398975050505050505050565b81810381811115610c5757610c57613296565b8082028115828204841417610c5757610c57613296565b80518015158114612dd4575f80fd5b5f806040838503121561342c575f80fd5b82516001600160401b0380821115613442575f80fd5b9084019060608287031215613455575f80fd5b61345d6130d9565b8251815260208084015161347081612e08565b82820152604084015183811115613485575f80fd5b80850194505087601f850112613499575f80fd5b835192506134a96131ba84613131565b83815288828587010111156134bc575f80fd5b6134cb84838301848801612fe3565b806040840152508195506134e081880161340c565b9450505050509250929050565b60208082526029908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152680ceca40d8cadccee8d60bb1b606082015260800190565b60208082526023908201527f56616c696461746f724d657373616765733a20696e76616c696420636f64656360408201526208125160ea1b606082015260800190565b60208082526027908201527f56616c696461746f724d657373616765733a20696e76616c6964206d657373616040820152666765207479706560c81b606082015260800190565b5f602082840312156135d0575f80fd5b610c5482612e9c565b5f808335601e198436030181126135ee575f80fd5b8301803591506001600160401b03821115613607575f80fd5b602001915036819003821315612ad6575f80fd5b601f8211156104d357805f5260205f20601f840160051c810160208510156136405750805b601f840160051c820191505b8181101561365f575f815560010161364c565b5050505050565b81516001600160401b0381111561367f5761367f6130c5565b6136938161368d84546132df565b8461361b565b602080601f8311600181146136c6575f84156136af5750858301515b5f19600386901b1c1916600185901b17855561371d565b5f85815260208120601f198616915b828110156136f4578886015182559484019460019091019084016136d5565b508582101561371157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6001600160401b03828116828216039080821115612fba57612fba613296565b6001600160401b03818116838216019080821115612fba57612fba613296565b6001600160401b0381811683821602808216919082811461378857613788613296565b505092915050565b5f602082840312156137a0575f80fd5b813560ff81168114612fdc575f80fd5b5f6001600160401b038083168181036132d5576132d561329656fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb08a164736f6c6343000819000a", -} - -// PoAValidatorManagerABI is the input ABI used to generate the binding from. -// Deprecated: Use PoAValidatorManagerMetaData.ABI instead. -var PoAValidatorManagerABI = PoAValidatorManagerMetaData.ABI - -// PoAValidatorManagerBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use PoAValidatorManagerMetaData.Bin instead. -var PoAValidatorManagerBin = PoAValidatorManagerMetaData.Bin - -// DeployPoAValidatorManager deploys a new Ethereum contract, binding an instance of PoAValidatorManager to it. -func DeployPoAValidatorManager(auth *bind.TransactOpts, backend bind.ContractBackend, init uint8) (common.Address, *types.Transaction, *PoAValidatorManager, error) { - parsed, err := PoAValidatorManagerMetaData.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(PoAValidatorManagerBin), backend, init) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &PoAValidatorManager{PoAValidatorManagerCaller: PoAValidatorManagerCaller{contract: contract}, PoAValidatorManagerTransactor: PoAValidatorManagerTransactor{contract: contract}, PoAValidatorManagerFilterer: PoAValidatorManagerFilterer{contract: contract}}, nil -} - -// PoAValidatorManager is an auto generated Go binding around an Ethereum contract. -type PoAValidatorManager struct { - PoAValidatorManagerCaller // Read-only binding to the contract - PoAValidatorManagerTransactor // Write-only binding to the contract - PoAValidatorManagerFilterer // Log filterer for contract events -} - -// PoAValidatorManagerCaller is an auto generated read-only Go binding around an Ethereum contract. -type PoAValidatorManagerCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PoAValidatorManagerTransactor is an auto generated write-only Go binding around an Ethereum contract. -type PoAValidatorManagerTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PoAValidatorManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type PoAValidatorManagerFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// PoAValidatorManagerSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type PoAValidatorManagerSession struct { - Contract *PoAValidatorManager // 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 -} - -// PoAValidatorManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type PoAValidatorManagerCallerSession struct { - Contract *PoAValidatorManagerCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// PoAValidatorManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type PoAValidatorManagerTransactorSession struct { - Contract *PoAValidatorManagerTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// PoAValidatorManagerRaw is an auto generated low-level Go binding around an Ethereum contract. -type PoAValidatorManagerRaw struct { - Contract *PoAValidatorManager // Generic contract binding to access the raw methods on -} - -// PoAValidatorManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type PoAValidatorManagerCallerRaw struct { - Contract *PoAValidatorManagerCaller // Generic read-only contract binding to access the raw methods on -} - -// PoAValidatorManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type PoAValidatorManagerTransactorRaw struct { - Contract *PoAValidatorManagerTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewPoAValidatorManager creates a new instance of PoAValidatorManager, bound to a specific deployed contract. -func NewPoAValidatorManager(address common.Address, backend bind.ContractBackend) (*PoAValidatorManager, error) { - contract, err := bindPoAValidatorManager(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &PoAValidatorManager{PoAValidatorManagerCaller: PoAValidatorManagerCaller{contract: contract}, PoAValidatorManagerTransactor: PoAValidatorManagerTransactor{contract: contract}, PoAValidatorManagerFilterer: PoAValidatorManagerFilterer{contract: contract}}, nil -} - -// NewPoAValidatorManagerCaller creates a new read-only instance of PoAValidatorManager, bound to a specific deployed contract. -func NewPoAValidatorManagerCaller(address common.Address, caller bind.ContractCaller) (*PoAValidatorManagerCaller, error) { - contract, err := bindPoAValidatorManager(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &PoAValidatorManagerCaller{contract: contract}, nil -} - -// NewPoAValidatorManagerTransactor creates a new write-only instance of PoAValidatorManager, bound to a specific deployed contract. -func NewPoAValidatorManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*PoAValidatorManagerTransactor, error) { - contract, err := bindPoAValidatorManager(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &PoAValidatorManagerTransactor{contract: contract}, nil -} - -// NewPoAValidatorManagerFilterer creates a new log filterer instance of PoAValidatorManager, bound to a specific deployed contract. -func NewPoAValidatorManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*PoAValidatorManagerFilterer, error) { - contract, err := bindPoAValidatorManager(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &PoAValidatorManagerFilterer{contract: contract}, nil -} - -// bindPoAValidatorManager binds a generic wrapper to an already deployed contract. -func bindPoAValidatorManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := PoAValidatorManagerMetaData.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 (_PoAValidatorManager *PoAValidatorManagerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _PoAValidatorManager.Contract.PoAValidatorManagerCaller.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 (_PoAValidatorManager *PoAValidatorManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.PoAValidatorManagerTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_PoAValidatorManager *PoAValidatorManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.PoAValidatorManagerTransactor.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 (_PoAValidatorManager *PoAValidatorManagerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_PoAValidatorManager *PoAValidatorManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.contract.Transact(opts, method, params...) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_PoAValidatorManager *PoAValidatorManagerCaller) ADDRESSLENGTH(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "ADDRESS_LENGTH") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_PoAValidatorManager *PoAValidatorManagerSession) ADDRESSLENGTH() (uint32, error) { - return _PoAValidatorManager.Contract.ADDRESSLENGTH(&_PoAValidatorManager.CallOpts) -} - -// ADDRESSLENGTH is a free data retrieval call binding the contract method 0x60305d62. -// -// Solidity: function ADDRESS_LENGTH() view returns(uint32) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) ADDRESSLENGTH() (uint32, error) { - return _PoAValidatorManager.Contract.ADDRESSLENGTH(&_PoAValidatorManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerCaller) BLSPUBLICKEYLENGTH(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "BLS_PUBLIC_KEY_LENGTH") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _PoAValidatorManager.Contract.BLSPUBLICKEYLENGTH(&_PoAValidatorManager.CallOpts) -} - -// BLSPUBLICKEYLENGTH is a free data retrieval call binding the contract method 0x8280a25a. -// -// Solidity: function BLS_PUBLIC_KEY_LENGTH() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) BLSPUBLICKEYLENGTH() (uint8, error) { - return _PoAValidatorManager.Contract.BLSPUBLICKEYLENGTH(&_PoAValidatorManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerCaller) MAXIMUMCHURNPERCENTAGELIMIT(opts *bind.CallOpts) (uint8, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "MAXIMUM_CHURN_PERCENTAGE_LIMIT") - - if err != nil { - return *new(uint8), err - } - - out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) - - return out0, err - -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _PoAValidatorManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_PoAValidatorManager.CallOpts) -} - -// MAXIMUMCHURNPERCENTAGELIMIT is a free data retrieval call binding the contract method 0xc974d1b6. -// -// Solidity: function MAXIMUM_CHURN_PERCENTAGE_LIMIT() view returns(uint8) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) MAXIMUMCHURNPERCENTAGELIMIT() (uint8, error) { - return _PoAValidatorManager.Contract.MAXIMUMCHURNPERCENTAGELIMIT(&_PoAValidatorManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCaller) MAXIMUMREGISTRATIONEXPIRYLENGTH(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "MAXIMUM_REGISTRATION_EXPIRY_LENGTH") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _PoAValidatorManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_PoAValidatorManager.CallOpts) -} - -// MAXIMUMREGISTRATIONEXPIRYLENGTH is a free data retrieval call binding the contract method 0xdf93d8de. -// -// Solidity: function MAXIMUM_REGISTRATION_EXPIRY_LENGTH() view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) MAXIMUMREGISTRATIONEXPIRYLENGTH() (uint64, error) { - return _PoAValidatorManager.Contract.MAXIMUMREGISTRATIONEXPIRYLENGTH(&_PoAValidatorManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_PoAValidatorManager *PoAValidatorManagerCaller) WARPMESSENGER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "WARP_MESSENGER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_PoAValidatorManager *PoAValidatorManagerSession) WARPMESSENGER() (common.Address, error) { - return _PoAValidatorManager.Contract.WARPMESSENGER(&_PoAValidatorManager.CallOpts) -} - -// WARPMESSENGER is a free data retrieval call binding the contract method 0xb771b3bc. -// -// Solidity: function WARP_MESSENGER() view returns(address) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) WARPMESSENGER() (common.Address, error) { - return _PoAValidatorManager.Contract.WARPMESSENGER(&_PoAValidatorManager.CallOpts) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_PoAValidatorManager *PoAValidatorManagerCaller) ActiveValidators(opts *bind.CallOpts, nodeID [32]byte) ([32]byte, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "activeValidators", nodeID) - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_PoAValidatorManager *PoAValidatorManagerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _PoAValidatorManager.Contract.ActiveValidators(&_PoAValidatorManager.CallOpts, nodeID) -} - -// ActiveValidators is a free data retrieval call binding the contract method 0x0cdd0985. -// -// Solidity: function activeValidators(bytes32 nodeID) view returns(bytes32) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) ActiveValidators(nodeID [32]byte) ([32]byte, error) { - return _PoAValidatorManager.Contract.ActiveValidators(&_PoAValidatorManager.CallOpts, nodeID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_PoAValidatorManager *PoAValidatorManagerCaller) GetValidator(opts *bind.CallOpts, validationID [32]byte) (Validator, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "getValidator", validationID) - - if err != nil { - return *new(Validator), err - } - - out0 := *abi.ConvertType(out[0], new(Validator)).(*Validator) - - return out0, err - -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_PoAValidatorManager *PoAValidatorManagerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _PoAValidatorManager.Contract.GetValidator(&_PoAValidatorManager.CallOpts, validationID) -} - -// GetValidator is a free data retrieval call binding the contract method 0xd5f20ff6. -// -// Solidity: function getValidator(bytes32 validationID) view returns((uint8,bytes32,uint64,uint64,uint64,uint64,uint64)) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetValidator(validationID [32]byte) (Validator, error) { - return _PoAValidatorManager.Contract.GetValidator(&_PoAValidatorManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_PoAValidatorManager *PoAValidatorManagerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerSession) Owner() (common.Address, error) { - return _PoAValidatorManager.Contract.Owner(&_PoAValidatorManager.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) Owner() (common.Address, error) { - return _PoAValidatorManager.Contract.Owner(&_PoAValidatorManager.CallOpts) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) CompleteEndValidation(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "completeEndValidation", messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.CompleteEndValidation(&_PoAValidatorManager.TransactOpts, messageIndex) -} - -// CompleteEndValidation is a paid mutator transaction binding the contract method 0x467ef06f. -// -// Solidity: function completeEndValidation(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) CompleteEndValidation(messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.CompleteEndValidation(&_PoAValidatorManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) CompleteValidatorRegistration(opts *bind.TransactOpts, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "completeValidatorRegistration", messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.CompleteValidatorRegistration(&_PoAValidatorManager.TransactOpts, messageIndex) -} - -// CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. -// -// Solidity: function completeValidatorRegistration(uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) CompleteValidatorRegistration(messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.CompleteValidatorRegistration(&_PoAValidatorManager.TransactOpts, messageIndex) -} - -// Initialize is a paid mutator transaction binding the contract method 0x580a4006. -// -// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) Initialize(opts *bind.TransactOpts, settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "initialize", settings, initialOwner) -} - -// Initialize is a paid mutator transaction binding the contract method 0x580a4006. -// -// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) Initialize(settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.Initialize(&_PoAValidatorManager.TransactOpts, settings, initialOwner) -} - -// Initialize is a paid mutator transaction binding the contract method 0x580a4006. -// -// Solidity: function initialize((bytes32,bytes32,uint64,uint8) settings, address initialOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) Initialize(settings ValidatorManagerSettings, initialOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.Initialize(&_PoAValidatorManager.TransactOpts, settings, initialOwner) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. -// -// Solidity: function initializeEndValidation(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "initializeEndValidation", validationID) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. -// -// Solidity: function initializeEndValidation(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) -} - -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. -// -// Solidity: function initializeEndValidation(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) -func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorRegistration(opts *bind.TransactOpts, registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorRegistration", registrationInput, weight) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) -func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorRegistration(&_PoAValidatorManager.TransactOpts, registrationInput, weight) -} - -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x8994ab49. -// -// Solidity: function initializeValidatorRegistration((bytes32,uint64,bytes) registrationInput, uint64 weight) returns(bytes32 validationID) -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorRegistration(registrationInput ValidatorRegistrationInput, weight uint64) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorRegistration(&_PoAValidatorManager.TransactOpts, registrationInput, weight) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorSet", subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, subnetConversionData, messageIndex) -} - -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x61e2f490. -// -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes32,uint64,bytes)[]) subnetConversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorSet(subnetConversionData SubnetConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, subnetConversionData, messageIndex) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) RenounceOwnership() (*types.Transaction, error) { - return _PoAValidatorManager.Contract.RenounceOwnership(&_PoAValidatorManager.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _PoAValidatorManager.Contract.RenounceOwnership(&_PoAValidatorManager.TransactOpts) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) ResendEndValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "resendEndValidatorMessage", validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.ResendEndValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) -} - -// ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. -// -// Solidity: function resendEndValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) ResendEndValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.ResendEndValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) ResendRegisterValidatorMessage(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "resendRegisterValidatorMessage", validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.ResendRegisterValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) -} - -// ResendRegisterValidatorMessage is a paid mutator transaction binding the contract method 0xbee0a03f. -// -// Solidity: function resendRegisterValidatorMessage(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) ResendRegisterValidatorMessage(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.ResendRegisterValidatorMessage(&_PoAValidatorManager.TransactOpts, validationID) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.TransferOwnership(&_PoAValidatorManager.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.TransferOwnership(&_PoAValidatorManager.TransactOpts, newOwner) -} - -// PoAValidatorManagerInitialValidatorCreatedIterator is returned from FilterInitialValidatorCreated and is used to iterate over the raw logs and unpacked data for InitialValidatorCreated events raised by the PoAValidatorManager contract. -type PoAValidatorManagerInitialValidatorCreatedIterator struct { - Event *PoAValidatorManagerInitialValidatorCreated // 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 interfaces.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 *PoAValidatorManagerInitialValidatorCreatedIterator) 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(PoAValidatorManagerInitialValidatorCreated) - 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(PoAValidatorManagerInitialValidatorCreated) - 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 *PoAValidatorManagerInitialValidatorCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerInitialValidatorCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the PoAValidatorManager contract. -type PoAValidatorManagerInitialValidatorCreated struct { - ValidationID [32]byte - NodeID [32]byte - Weight *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte) (*PoAValidatorManagerInitialValidatorCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerInitialValidatorCreatedIterator{contract: _PoAValidatorManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil -} - -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) - 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(PoAValidatorManagerInitialValidatorCreated) - if err := _PoAValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", 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 -} - -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xb815f891730222788b3f8d66249b3a287ce680c3df13866fd9a4f37743ae1014. -// -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes32 indexed nodeID, uint256 weight) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*PoAValidatorManagerInitialValidatorCreated, error) { - event := new(PoAValidatorManagerInitialValidatorCreated) - if err := _PoAValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the PoAValidatorManager contract. -type PoAValidatorManagerInitializedIterator struct { - Event *PoAValidatorManagerInitialized // 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 interfaces.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 *PoAValidatorManagerInitializedIterator) 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(PoAValidatorManagerInitialized) - 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(PoAValidatorManagerInitialized) - 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 *PoAValidatorManagerInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerInitialized represents a Initialized event raised by the PoAValidatorManager contract. -type PoAValidatorManagerInitialized 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 (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*PoAValidatorManagerInitializedIterator, error) { - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &PoAValidatorManagerInitializedIterator{contract: _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialized) (event.Subscription, error) { - - logs, sub, err := _PoAValidatorManager.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(PoAValidatorManagerInitialized) - if err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseInitialized(log types.Log) (*PoAValidatorManagerInitialized, error) { - event := new(PoAValidatorManagerInitialized) - if err := _PoAValidatorManager.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the PoAValidatorManager contract. -type PoAValidatorManagerOwnershipTransferredIterator struct { - Event *PoAValidatorManagerOwnershipTransferred // 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 interfaces.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 *PoAValidatorManagerOwnershipTransferredIterator) 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(PoAValidatorManagerOwnershipTransferred) - 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(PoAValidatorManagerOwnershipTransferred) - 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 *PoAValidatorManagerOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerOwnershipTransferred represents a OwnershipTransferred event raised by the PoAValidatorManager contract. -type PoAValidatorManagerOwnershipTransferred 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 (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*PoAValidatorManagerOwnershipTransferredIterator, 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 := _PoAValidatorManager.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerOwnershipTransferredIterator{contract: _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerOwnershipTransferred, 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 := _PoAValidatorManager.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(PoAValidatorManagerOwnershipTransferred) - if err := _PoAValidatorManager.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 (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseOwnershipTransferred(log types.Log) (*PoAValidatorManagerOwnershipTransferred, error) { - event := new(PoAValidatorManagerOwnershipTransferred) - if err := _PoAValidatorManager.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerValidationPeriodCreatedIterator is returned from FilterValidationPeriodCreated and is used to iterate over the raw logs and unpacked data for ValidationPeriodCreated events raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodCreatedIterator struct { - Event *PoAValidatorManagerValidationPeriodCreated // 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 interfaces.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 *PoAValidatorManagerValidationPeriodCreatedIterator) 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(PoAValidatorManagerValidationPeriodCreated) - 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(PoAValidatorManagerValidationPeriodCreated) - 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 *PoAValidatorManagerValidationPeriodCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerValidationPeriodCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodCreated struct { - ValidationID [32]byte - NodeID [32]byte - RegisterValidationMessageID [32]byte - Weight *big.Int - RegistrationExpiry uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (*PoAValidatorManagerValidationPeriodCreatedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerValidationPeriodCreatedIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - var registerValidationMessageIDRule []interface{} - for _, registerValidationMessageIDItem := range registerValidationMessageID { - registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) - 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(PoAValidatorManagerValidationPeriodCreated) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", 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 -} - -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0x79b81620b81daf2c08cd5bb3dbb79e75d2d7a87f52171fde5aadc8c47823026e. -// -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed nodeID, bytes32 indexed registerValidationMessageID, uint256 weight, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*PoAValidatorManagerValidationPeriodCreated, error) { - event := new(PoAValidatorManagerValidationPeriodCreated) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerValidationPeriodEndedIterator is returned from FilterValidationPeriodEnded and is used to iterate over the raw logs and unpacked data for ValidationPeriodEnded events raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodEndedIterator struct { - Event *PoAValidatorManagerValidationPeriodEnded // 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 interfaces.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 *PoAValidatorManagerValidationPeriodEndedIterator) 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(PoAValidatorManagerValidationPeriodEnded) - 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(PoAValidatorManagerValidationPeriodEnded) - 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 *PoAValidatorManagerValidationPeriodEndedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerValidationPeriodEndedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerValidationPeriodEnded represents a ValidationPeriodEnded event raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodEnded struct { - ValidationID [32]byte - Status uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodEnded is a free log retrieval operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodEnded(opts *bind.FilterOpts, validationID [][32]byte, status []uint8) (*PoAValidatorManagerValidationPeriodEndedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerValidationPeriodEndedIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodEnded", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodEnded is a free log subscription operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodEnded(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodEnded, validationID [][32]byte, status []uint8) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var statusRule []interface{} - for _, statusItem := range status { - statusRule = append(statusRule, statusItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodEnded", validationIDRule, statusRule) - 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(PoAValidatorManagerValidationPeriodEnded) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodEnded", 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 -} - -// ParseValidationPeriodEnded is a log parse operation binding the contract event 0x1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16. -// -// Solidity: event ValidationPeriodEnded(bytes32 indexed validationID, uint8 indexed status) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodEnded(log types.Log) (*PoAValidatorManagerValidationPeriodEnded, error) { - event := new(PoAValidatorManagerValidationPeriodEnded) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodEnded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerValidationPeriodRegisteredIterator is returned from FilterValidationPeriodRegistered and is used to iterate over the raw logs and unpacked data for ValidationPeriodRegistered events raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodRegisteredIterator struct { - Event *PoAValidatorManagerValidationPeriodRegistered // 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 interfaces.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 *PoAValidatorManagerValidationPeriodRegisteredIterator) 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(PoAValidatorManagerValidationPeriodRegistered) - 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(PoAValidatorManagerValidationPeriodRegistered) - 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 *PoAValidatorManagerValidationPeriodRegisteredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerValidationPeriodRegisteredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerValidationPeriodRegistered represents a ValidationPeriodRegistered event raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidationPeriodRegistered struct { - ValidationID [32]byte - Weight *big.Int - Timestamp *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*PoAValidatorManagerValidationPeriodRegisteredIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerValidationPeriodRegisteredIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodRegistered", logs: logs, sub: sub}, nil -} - -// WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) - 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(PoAValidatorManagerValidationPeriodRegistered) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", 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 -} - -// ParseValidationPeriodRegistered is a log parse operation binding the contract event 0xf8fd1c90fb9cfa2ca2358fdf5806b086ad43315d92b221c929efc7f105ce7568. -// -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint256 weight, uint256 timestamp) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*PoAValidatorManagerValidationPeriodRegistered, error) { - event := new(PoAValidatorManagerValidationPeriodRegistered) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerValidatorRemovalInitializedIterator is returned from FilterValidatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for ValidatorRemovalInitialized events raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidatorRemovalInitializedIterator struct { - Event *PoAValidatorManagerValidatorRemovalInitialized // 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 interfaces.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 *PoAValidatorManagerValidatorRemovalInitializedIterator) 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(PoAValidatorManagerValidatorRemovalInitialized) - 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(PoAValidatorManagerValidatorRemovalInitialized) - 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 *PoAValidatorManagerValidatorRemovalInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerValidatorRemovalInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerValidatorRemovalInitialized represents a ValidatorRemovalInitialized event raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidatorRemovalInitialized struct { - ValidationID [32]byte - SetWeightMessageID [32]byte - Weight *big.Int - EndTime *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*PoAValidatorManagerValidatorRemovalInitializedIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerValidatorRemovalInitializedIterator{contract: _PoAValidatorManager.contract, event: "ValidatorRemovalInitialized", logs: logs, sub: sub}, nil -} - -// WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var setWeightMessageIDRule []interface{} - for _, setWeightMessageIDItem := range setWeightMessageID { - setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) - 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(PoAValidatorManagerValidatorRemovalInitialized) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", 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 -} - -// ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0x13d58394cf269d48bcf927959a29a5ffee7c9924dafff8927ecdf3c48ffa7c67. -// -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint256 weight, uint256 endTime) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*PoAValidatorManagerValidatorRemovalInitialized, error) { - event := new(PoAValidatorManagerValidatorRemovalInitialized) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// PoAValidatorManagerValidatorWeightUpdateIterator is returned from FilterValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for ValidatorWeightUpdate events raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidatorWeightUpdateIterator struct { - Event *PoAValidatorManagerValidatorWeightUpdate // 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 interfaces.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 *PoAValidatorManagerValidatorWeightUpdateIterator) 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(PoAValidatorManagerValidatorWeightUpdate) - 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(PoAValidatorManagerValidatorWeightUpdate) - 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 *PoAValidatorManagerValidatorWeightUpdateIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PoAValidatorManagerValidatorWeightUpdateIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PoAValidatorManagerValidatorWeightUpdate represents a ValidatorWeightUpdate event raised by the PoAValidatorManager contract. -type PoAValidatorManagerValidatorWeightUpdate struct { - ValidationID [32]byte - Nonce uint64 - ValidatorWeight uint64 - SetWeightMessageID [32]byte - Raw types.Log // Blockchain specific contextual infos -} - -// FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*PoAValidatorManagerValidatorWeightUpdateIterator, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - if err != nil { - return nil, err - } - return &PoAValidatorManagerValidatorWeightUpdateIterator{contract: _PoAValidatorManager.contract, event: "ValidatorWeightUpdate", logs: logs, sub: sub}, nil -} - -// WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { - - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } - var nonceRule []interface{} - for _, nonceItem := range nonce { - nonceRule = append(nonceRule, nonceItem) - } - - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) - 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(PoAValidatorManagerValidatorWeightUpdate) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", 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 -} - -// ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. -// -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 validatorWeight, bytes32 setWeightMessageID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*PoAValidatorManagerValidatorWeightUpdate, error) { - event := new(PoAValidatorManagerValidatorWeightUpdate) - if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} From 44807c99163e18856e36d838c4a149f1e7ae31f6 Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Wed, 18 Sep 2024 16:17:59 -0400 Subject: [PATCH 3/6] update imports --- tests/flows/staking/poa_to_pos.go | 4 ++-- tests/flows/staking/poa_validator_manager.go | 2 +- tests/utils/staking.go | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/flows/staking/poa_to_pos.go b/tests/flows/staking/poa_to_pos.go index b8daa4a6e..23bd72ba5 100644 --- a/tests/flows/staking/poa_to_pos.go +++ b/tests/flows/staking/poa_to_pos.go @@ -6,8 +6,8 @@ import ( "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/subnet-evm/accounts/abi/bind" - nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/NativeTokenStakingManager" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/PoAValidatorManager" + nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/NativeTokenStakingManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ava-labs/teleporter/tests/utils" "github.com/ethereum/go-ethereum/crypto" diff --git a/tests/flows/staking/poa_validator_manager.go b/tests/flows/staking/poa_validator_manager.go index fd31fa53d..6a51ea077 100644 --- a/tests/flows/staking/poa_validator_manager.go +++ b/tests/flows/staking/poa_validator_manager.go @@ -8,7 +8,7 @@ import ( "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/utils/crypto/bls" "github.com/ava-labs/subnet-evm/accounts/abi/bind" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/PoAValidatorManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ava-labs/teleporter/tests/utils" "github.com/ethereum/go-ethereum/crypto" diff --git a/tests/utils/staking.go b/tests/utils/staking.go index 1c26f63c1..b215c822c 100644 --- a/tests/utils/staking.go +++ b/tests/utils/staking.go @@ -21,10 +21,10 @@ import ( "github.com/ava-labs/subnet-evm/precompile/contracts/warp" predicateutils "github.com/ava-labs/subnet-evm/predicate" exampleerc20 "github.com/ava-labs/teleporter/abi-bindings/go/mocks/ExampleERC20" - erc20tokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/ERC20TokenStakingManager" - examplerewardcalculator "github.com/ava-labs/teleporter/abi-bindings/go/staking/ExampleRewardCalculator" - nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/NativeTokenStakingManager" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/staking/PoAValidatorManager" + erc20tokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/ERC20TokenStakingManager" + examplerewardcalculator "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/ExampleRewardCalculator" + nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/NativeTokenStakingManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ethereum/go-ethereum/common" From 37168199fb6a60fd6ce6107e9ca25664eebd9629 Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Wed, 18 Sep 2024 17:15:51 -0400 Subject: [PATCH 4/6] rename more files --- tests/flows/{staking => validatorManager}/erc20_delegation.go | 0 tests/flows/{staking => validatorManager}/erc20_token_staking.go | 0 tests/flows/{staking => validatorManager}/native_delegation.go | 0 tests/flows/{staking => validatorManager}/native_token_staking.go | 0 tests/flows/{staking => validatorManager}/poa_to_pos.go | 0 .../flows/{staking => validatorManager}/poa_validator_manager.go | 0 tests/utils/{staking.go => validator_manager.go} | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename tests/flows/{staking => validatorManager}/erc20_delegation.go (100%) rename tests/flows/{staking => validatorManager}/erc20_token_staking.go (100%) rename tests/flows/{staking => validatorManager}/native_delegation.go (100%) rename tests/flows/{staking => validatorManager}/native_token_staking.go (100%) rename tests/flows/{staking => validatorManager}/poa_to_pos.go (100%) rename tests/flows/{staking => validatorManager}/poa_validator_manager.go (100%) rename tests/utils/{staking.go => validator_manager.go} (100%) diff --git a/tests/flows/staking/erc20_delegation.go b/tests/flows/validatorManager/erc20_delegation.go similarity index 100% rename from tests/flows/staking/erc20_delegation.go rename to tests/flows/validatorManager/erc20_delegation.go diff --git a/tests/flows/staking/erc20_token_staking.go b/tests/flows/validatorManager/erc20_token_staking.go similarity index 100% rename from tests/flows/staking/erc20_token_staking.go rename to tests/flows/validatorManager/erc20_token_staking.go diff --git a/tests/flows/staking/native_delegation.go b/tests/flows/validatorManager/native_delegation.go similarity index 100% rename from tests/flows/staking/native_delegation.go rename to tests/flows/validatorManager/native_delegation.go diff --git a/tests/flows/staking/native_token_staking.go b/tests/flows/validatorManager/native_token_staking.go similarity index 100% rename from tests/flows/staking/native_token_staking.go rename to tests/flows/validatorManager/native_token_staking.go diff --git a/tests/flows/staking/poa_to_pos.go b/tests/flows/validatorManager/poa_to_pos.go similarity index 100% rename from tests/flows/staking/poa_to_pos.go rename to tests/flows/validatorManager/poa_to_pos.go diff --git a/tests/flows/staking/poa_validator_manager.go b/tests/flows/validatorManager/poa_validator_manager.go similarity index 100% rename from tests/flows/staking/poa_validator_manager.go rename to tests/flows/validatorManager/poa_validator_manager.go diff --git a/tests/utils/staking.go b/tests/utils/validator_manager.go similarity index 100% rename from tests/utils/staking.go rename to tests/utils/validator_manager.go From 622e6a8abdc312195ed24be53ddc7d5ce6662889 Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Wed, 18 Sep 2024 17:47:49 -0400 Subject: [PATCH 5/6] validatorManager -> validator-manager --- .../ERC20TokenStakingManager/ERC20TokenStakingManager.go | 0 .../ExampleRewardCalculator/ExampleRewardCalculator.go | 0 .../NativeTokenStakingManager/NativeTokenStakingManager.go | 0 .../PoAValidatorManager/PoAValidatorManager.go | 0 contracts/mocks/ExampleERC20.sol | 2 +- .../ERC20TokenStakingManager.sol | 0 .../ExampleRewardCalculator.sol | 0 .../NativeTokenStakingManager.sol | 0 .../PoAValidatorManager.sol | 0 .../PoSValidatorManager.sol | 0 contracts/{validatorManager => validator-manager}/README.md | 0 .../ValidatorManager.sol | 0 .../ValidatorMessages.sol | 0 .../interfaces/IERC20Mintable.sol | 0 .../interfaces/IERC20TokenStakingManager.sol | 0 .../interfaces/INativeTokenStakingManager.sol | 0 .../interfaces/IPoAValidatorManager.sol | 0 .../interfaces/IPoSValidatorManager.sol | 0 .../interfaces/IRewardCalculator.sol | 0 .../interfaces/IValidatorManager.sol | 0 .../tests/ERC20TokenStakingManagerTests.t.sol | 0 .../tests/ExamplesRewardCalculatorTests.t.sol | 0 .../tests/NativeTokenStakingManagerTests.t.sol | 0 .../tests/PoAValidatorManagerTests.t.sol | 0 .../tests/PoSValidatorManagerTests.t.sol | 0 .../tests/ValidatorManagerTests.t.sol | 0 .../tests/ValidatorMessagesTests.t.sol | 0 .../{validatorManager => validator-manager}/erc20_delegation.go | 0 .../erc20_token_staking.go | 0 .../native_delegation.go | 0 .../native_token_staking.go | 0 .../flows/{validatorManager => validator-manager}/poa_to_pos.go | 0 .../poa_validator_manager.go | 0 33 files changed, 1 insertion(+), 1 deletion(-) rename abi-bindings/go/{validatorManager => validator-manager}/ERC20TokenStakingManager/ERC20TokenStakingManager.go (100%) rename abi-bindings/go/{validatorManager => validator-manager}/ExampleRewardCalculator/ExampleRewardCalculator.go (100%) rename abi-bindings/go/{validatorManager => validator-manager}/NativeTokenStakingManager/NativeTokenStakingManager.go (100%) rename abi-bindings/go/{validatorManager => validator-manager}/PoAValidatorManager/PoAValidatorManager.go (100%) rename contracts/{validatorManager => validator-manager}/ERC20TokenStakingManager.sol (100%) rename contracts/{validatorManager => validator-manager}/ExampleRewardCalculator.sol (100%) rename contracts/{validatorManager => validator-manager}/NativeTokenStakingManager.sol (100%) rename contracts/{validatorManager => validator-manager}/PoAValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/PoSValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/README.md (100%) rename contracts/{validatorManager => validator-manager}/ValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/ValidatorMessages.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IERC20Mintable.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IERC20TokenStakingManager.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/INativeTokenStakingManager.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IPoAValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IPoSValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IRewardCalculator.sol (100%) rename contracts/{validatorManager => validator-manager}/interfaces/IValidatorManager.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/ERC20TokenStakingManagerTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/ExamplesRewardCalculatorTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/NativeTokenStakingManagerTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/PoAValidatorManagerTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/PoSValidatorManagerTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/ValidatorManagerTests.t.sol (100%) rename contracts/{validatorManager => validator-manager}/tests/ValidatorMessagesTests.t.sol (100%) rename tests/flows/{validatorManager => validator-manager}/erc20_delegation.go (100%) rename tests/flows/{validatorManager => validator-manager}/erc20_token_staking.go (100%) rename tests/flows/{validatorManager => validator-manager}/native_delegation.go (100%) rename tests/flows/{validatorManager => validator-manager}/native_token_staking.go (100%) rename tests/flows/{validatorManager => validator-manager}/poa_to_pos.go (100%) rename tests/flows/{validatorManager => validator-manager}/poa_validator_manager.go (100%) diff --git a/abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go similarity index 100% rename from abi-bindings/go/validatorManager/ERC20TokenStakingManager/ERC20TokenStakingManager.go rename to abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go diff --git a/abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go b/abi-bindings/go/validator-manager/ExampleRewardCalculator/ExampleRewardCalculator.go similarity index 100% rename from abi-bindings/go/validatorManager/ExampleRewardCalculator/ExampleRewardCalculator.go rename to abi-bindings/go/validator-manager/ExampleRewardCalculator/ExampleRewardCalculator.go diff --git a/abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go similarity index 100% rename from abi-bindings/go/validatorManager/NativeTokenStakingManager/NativeTokenStakingManager.go rename to abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go diff --git a/abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go similarity index 100% rename from abi-bindings/go/validatorManager/PoAValidatorManager/PoAValidatorManager.go rename to abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go diff --git a/contracts/mocks/ExampleERC20.sol b/contracts/mocks/ExampleERC20.sol index 1c318c486..d7d348702 100644 --- a/contracts/mocks/ExampleERC20.sol +++ b/contracts/mocks/ExampleERC20.sol @@ -13,7 +13,7 @@ import { ERC20Burnable, ERC20 } from "@openzeppelin/contracts@5.0.2/token/ERC20/extensions/ERC20Burnable.sol"; -import {IERC20Mintable} from "../validatorManager/interfaces/IERC20Mintable.sol"; +import {IERC20Mintable} from "../validator-manager/interfaces/IERC20Mintable.sol"; contract ExampleERC20 is ERC20Burnable, IERC20Mintable { string private constant _TOKEN_NAME = "Mock Token"; diff --git a/contracts/validatorManager/ERC20TokenStakingManager.sol b/contracts/validator-manager/ERC20TokenStakingManager.sol similarity index 100% rename from contracts/validatorManager/ERC20TokenStakingManager.sol rename to contracts/validator-manager/ERC20TokenStakingManager.sol diff --git a/contracts/validatorManager/ExampleRewardCalculator.sol b/contracts/validator-manager/ExampleRewardCalculator.sol similarity index 100% rename from contracts/validatorManager/ExampleRewardCalculator.sol rename to contracts/validator-manager/ExampleRewardCalculator.sol diff --git a/contracts/validatorManager/NativeTokenStakingManager.sol b/contracts/validator-manager/NativeTokenStakingManager.sol similarity index 100% rename from contracts/validatorManager/NativeTokenStakingManager.sol rename to contracts/validator-manager/NativeTokenStakingManager.sol diff --git a/contracts/validatorManager/PoAValidatorManager.sol b/contracts/validator-manager/PoAValidatorManager.sol similarity index 100% rename from contracts/validatorManager/PoAValidatorManager.sol rename to contracts/validator-manager/PoAValidatorManager.sol diff --git a/contracts/validatorManager/PoSValidatorManager.sol b/contracts/validator-manager/PoSValidatorManager.sol similarity index 100% rename from contracts/validatorManager/PoSValidatorManager.sol rename to contracts/validator-manager/PoSValidatorManager.sol diff --git a/contracts/validatorManager/README.md b/contracts/validator-manager/README.md similarity index 100% rename from contracts/validatorManager/README.md rename to contracts/validator-manager/README.md diff --git a/contracts/validatorManager/ValidatorManager.sol b/contracts/validator-manager/ValidatorManager.sol similarity index 100% rename from contracts/validatorManager/ValidatorManager.sol rename to contracts/validator-manager/ValidatorManager.sol diff --git a/contracts/validatorManager/ValidatorMessages.sol b/contracts/validator-manager/ValidatorMessages.sol similarity index 100% rename from contracts/validatorManager/ValidatorMessages.sol rename to contracts/validator-manager/ValidatorMessages.sol diff --git a/contracts/validatorManager/interfaces/IERC20Mintable.sol b/contracts/validator-manager/interfaces/IERC20Mintable.sol similarity index 100% rename from contracts/validatorManager/interfaces/IERC20Mintable.sol rename to contracts/validator-manager/interfaces/IERC20Mintable.sol diff --git a/contracts/validatorManager/interfaces/IERC20TokenStakingManager.sol b/contracts/validator-manager/interfaces/IERC20TokenStakingManager.sol similarity index 100% rename from contracts/validatorManager/interfaces/IERC20TokenStakingManager.sol rename to contracts/validator-manager/interfaces/IERC20TokenStakingManager.sol diff --git a/contracts/validatorManager/interfaces/INativeTokenStakingManager.sol b/contracts/validator-manager/interfaces/INativeTokenStakingManager.sol similarity index 100% rename from contracts/validatorManager/interfaces/INativeTokenStakingManager.sol rename to contracts/validator-manager/interfaces/INativeTokenStakingManager.sol diff --git a/contracts/validatorManager/interfaces/IPoAValidatorManager.sol b/contracts/validator-manager/interfaces/IPoAValidatorManager.sol similarity index 100% rename from contracts/validatorManager/interfaces/IPoAValidatorManager.sol rename to contracts/validator-manager/interfaces/IPoAValidatorManager.sol diff --git a/contracts/validatorManager/interfaces/IPoSValidatorManager.sol b/contracts/validator-manager/interfaces/IPoSValidatorManager.sol similarity index 100% rename from contracts/validatorManager/interfaces/IPoSValidatorManager.sol rename to contracts/validator-manager/interfaces/IPoSValidatorManager.sol diff --git a/contracts/validatorManager/interfaces/IRewardCalculator.sol b/contracts/validator-manager/interfaces/IRewardCalculator.sol similarity index 100% rename from contracts/validatorManager/interfaces/IRewardCalculator.sol rename to contracts/validator-manager/interfaces/IRewardCalculator.sol diff --git a/contracts/validatorManager/interfaces/IValidatorManager.sol b/contracts/validator-manager/interfaces/IValidatorManager.sol similarity index 100% rename from contracts/validatorManager/interfaces/IValidatorManager.sol rename to contracts/validator-manager/interfaces/IValidatorManager.sol diff --git a/contracts/validatorManager/tests/ERC20TokenStakingManagerTests.t.sol b/contracts/validator-manager/tests/ERC20TokenStakingManagerTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/ERC20TokenStakingManagerTests.t.sol rename to contracts/validator-manager/tests/ERC20TokenStakingManagerTests.t.sol diff --git a/contracts/validatorManager/tests/ExamplesRewardCalculatorTests.t.sol b/contracts/validator-manager/tests/ExamplesRewardCalculatorTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/ExamplesRewardCalculatorTests.t.sol rename to contracts/validator-manager/tests/ExamplesRewardCalculatorTests.t.sol diff --git a/contracts/validatorManager/tests/NativeTokenStakingManagerTests.t.sol b/contracts/validator-manager/tests/NativeTokenStakingManagerTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/NativeTokenStakingManagerTests.t.sol rename to contracts/validator-manager/tests/NativeTokenStakingManagerTests.t.sol diff --git a/contracts/validatorManager/tests/PoAValidatorManagerTests.t.sol b/contracts/validator-manager/tests/PoAValidatorManagerTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/PoAValidatorManagerTests.t.sol rename to contracts/validator-manager/tests/PoAValidatorManagerTests.t.sol diff --git a/contracts/validatorManager/tests/PoSValidatorManagerTests.t.sol b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/PoSValidatorManagerTests.t.sol rename to contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol diff --git a/contracts/validatorManager/tests/ValidatorManagerTests.t.sol b/contracts/validator-manager/tests/ValidatorManagerTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/ValidatorManagerTests.t.sol rename to contracts/validator-manager/tests/ValidatorManagerTests.t.sol diff --git a/contracts/validatorManager/tests/ValidatorMessagesTests.t.sol b/contracts/validator-manager/tests/ValidatorMessagesTests.t.sol similarity index 100% rename from contracts/validatorManager/tests/ValidatorMessagesTests.t.sol rename to contracts/validator-manager/tests/ValidatorMessagesTests.t.sol diff --git a/tests/flows/validatorManager/erc20_delegation.go b/tests/flows/validator-manager/erc20_delegation.go similarity index 100% rename from tests/flows/validatorManager/erc20_delegation.go rename to tests/flows/validator-manager/erc20_delegation.go diff --git a/tests/flows/validatorManager/erc20_token_staking.go b/tests/flows/validator-manager/erc20_token_staking.go similarity index 100% rename from tests/flows/validatorManager/erc20_token_staking.go rename to tests/flows/validator-manager/erc20_token_staking.go diff --git a/tests/flows/validatorManager/native_delegation.go b/tests/flows/validator-manager/native_delegation.go similarity index 100% rename from tests/flows/validatorManager/native_delegation.go rename to tests/flows/validator-manager/native_delegation.go diff --git a/tests/flows/validatorManager/native_token_staking.go b/tests/flows/validator-manager/native_token_staking.go similarity index 100% rename from tests/flows/validatorManager/native_token_staking.go rename to tests/flows/validator-manager/native_token_staking.go diff --git a/tests/flows/validatorManager/poa_to_pos.go b/tests/flows/validator-manager/poa_to_pos.go similarity index 100% rename from tests/flows/validatorManager/poa_to_pos.go rename to tests/flows/validator-manager/poa_to_pos.go diff --git a/tests/flows/validatorManager/poa_validator_manager.go b/tests/flows/validator-manager/poa_validator_manager.go similarity index 100% rename from tests/flows/validatorManager/poa_validator_manager.go rename to tests/flows/validator-manager/poa_validator_manager.go From b4ea1b35b033472076e08b5588bab801e49f0d4a Mon Sep 17 00:00:00 2001 From: Ian Suvak Date: Thu, 19 Sep 2024 10:45:52 -0400 Subject: [PATCH 6/6] rename more references --- tests/flows/validator-manager/poa_to_pos.go | 4 ++-- .../validator-manager/poa_validator_manager.go | 2 +- tests/local/e2e_test.go | 14 +++++++------- tests/utils/validator_manager.go | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/flows/validator-manager/poa_to_pos.go b/tests/flows/validator-manager/poa_to_pos.go index 9b0dbecca..918dd3c79 100644 --- a/tests/flows/validator-manager/poa_to_pos.go +++ b/tests/flows/validator-manager/poa_to_pos.go @@ -6,8 +6,8 @@ import ( "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/subnet-evm/accounts/abi/bind" - nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/NativeTokenStakingManager" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" + nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/NativeTokenStakingManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ava-labs/teleporter/tests/utils" "github.com/ethereum/go-ethereum/crypto" diff --git a/tests/flows/validator-manager/poa_validator_manager.go b/tests/flows/validator-manager/poa_validator_manager.go index 6a51ea077..28866d58d 100644 --- a/tests/flows/validator-manager/poa_validator_manager.go +++ b/tests/flows/validator-manager/poa_validator_manager.go @@ -8,7 +8,7 @@ import ( "github.com/ava-labs/avalanchego/ids" "github.com/ava-labs/avalanchego/utils/crypto/bls" "github.com/ava-labs/subnet-evm/accounts/abi/bind" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ava-labs/teleporter/tests/utils" "github.com/ethereum/go-ethereum/crypto" diff --git a/tests/local/e2e_test.go b/tests/local/e2e_test.go index 88011b97b..e1795e69b 100644 --- a/tests/local/e2e_test.go +++ b/tests/local/e2e_test.go @@ -8,9 +8,9 @@ import ( "testing" "github.com/ava-labs/teleporter/tests/flows/governance" - "github.com/ava-labs/teleporter/tests/flows/staking" "github.com/ava-labs/teleporter/tests/flows/teleporter" "github.com/ava-labs/teleporter/tests/flows/teleporter/registry" + validatorManager "github.com/ava-labs/teleporter/tests/flows/validator-manager" deploymentUtils "github.com/ava-labs/teleporter/utils/deployment-utils" "github.com/ethereum/go-ethereum/log" "github.com/onsi/ginkgo/v2" @@ -200,31 +200,31 @@ var _ = ginkgo.Describe("[Teleporter integration tests]", func() { ginkgo.It("Native token staking manager", ginkgo.Label(validatorManagerLabel), func() { - staking.NativeTokenStakingManager(LocalNetworkInstance) + validatorManager.NativeTokenStakingManager(LocalNetworkInstance) }) ginkgo.It("ERC20 token staking manager", ginkgo.Label(validatorManagerLabel), func() { - staking.ERC20TokenStakingManager(LocalNetworkInstance) + validatorManager.ERC20TokenStakingManager(LocalNetworkInstance) }) ginkgo.It("PoA validator manager", ginkgo.Label(validatorManagerLabel), func() { - staking.PoAValidatorManager(LocalNetworkInstance) + validatorManager.PoAValidatorManager(LocalNetworkInstance) }) ginkgo.It("ERC20 delegation", ginkgo.Label(validatorManagerLabel), func() { - staking.ERC20Delegation(LocalNetworkInstance) + validatorManager.ERC20Delegation(LocalNetworkInstance) }) ginkgo.It("Native token delegation", ginkgo.Label(validatorManagerLabel), func() { - staking.NativeDelegation(LocalNetworkInstance) + validatorManager.NativeDelegation(LocalNetworkInstance) }) ginkgo.It("PoA migration to PoS", ginkgo.Label(validatorManagerLabel), func() { - staking.PoAMigrationToPoS(LocalNetworkInstance) + validatorManager.PoAMigrationToPoS(LocalNetworkInstance) }) }) diff --git a/tests/utils/validator_manager.go b/tests/utils/validator_manager.go index b215c822c..55ebf381b 100644 --- a/tests/utils/validator_manager.go +++ b/tests/utils/validator_manager.go @@ -21,10 +21,10 @@ import ( "github.com/ava-labs/subnet-evm/precompile/contracts/warp" predicateutils "github.com/ava-labs/subnet-evm/predicate" exampleerc20 "github.com/ava-labs/teleporter/abi-bindings/go/mocks/ExampleERC20" - erc20tokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/ERC20TokenStakingManager" - examplerewardcalculator "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/ExampleRewardCalculator" - nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/NativeTokenStakingManager" - poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validatorManager/PoAValidatorManager" + erc20tokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/ERC20TokenStakingManager" + examplerewardcalculator "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/ExampleRewardCalculator" + nativetokenstakingmanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/NativeTokenStakingManager" + poavalidatormanager "github.com/ava-labs/teleporter/abi-bindings/go/validator-manager/PoAValidatorManager" "github.com/ava-labs/teleporter/tests/interfaces" "github.com/ethereum/go-ethereum/common"