From 1c90d162cca0b2b80688e3cc3639040330d5ca49 Mon Sep 17 00:00:00 2001 From: cam-schultz Date: Wed, 15 Jan 2025 17:26:55 -0600 Subject: [PATCH] update & integrate bindings --- .../ERC20TokenStakingManager.go | 871 +++++++++--------- .../NativeTokenStakingManager.go | 871 +++++++++--------- .../PoAValidatorManager.go | 85 +- .../IPoSValidatorManager.go | 494 +++++----- .../validator-manager/erc20_token_staking.go | 8 +- .../validator-manager/native_token_staking.go | 8 +- tests/flows/validator-manager/poa_to_pos.go | 12 +- tests/utils/validator_manager.go | 57 +- 8 files changed, 1190 insertions(+), 1216 deletions(-) diff --git a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go index bf80ea3f3..271e88e5c 100644 --- a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go +++ b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go @@ -93,19 +93,10 @@ type ValidatorMessagesValidationPeriod struct { Weight uint64 } -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID []byte - BlsPublicKey []byte - RegistrationExpiry uint64 - RemainingBalanceOwner PChainOwner - DisableOwner PChainOwner -} - // ERC20TokenStakingManagerMetaData contains all meta data concerning the ERC20TokenStakingManager contract. var ERC20TokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_STAKING_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20\",\"outputs\":[{\"internalType\":\"contractIERC20Mintable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20Mintable\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delegationAmount\",\"type\":\"uint256\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615e76380380615e7683398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615d298061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610260575f3560e01c80638280a25a1161014b578063ba3a4b97116100bf578063ce161f1411610084578063ce161f1414610560578063d5f20ff614610590578063df93d8de146105b0578063e4a63c40146105ba578063fb8b11dd146105ce578063fd7ac5e7146105e1575f80fd5b8063ba3a4b9714610503578063bb0b193814610516578063bc5fbfec1461051e578063bee0a03f14610545578063c974d1b614610558575f80fd5b80639e1bc4ef116101105780639e1bc4ef146104955780639e478eea146104a8578063a3a65e48146104bb578063a9778a7a1461030f578063afb98096146104ce578063b771b3bc146104f5575f80fd5b80638280a25a146104415780638ef34c981461044957806393e245981461045c5780639681d9401461046f5780639ae0644714610482575f80fd5b80634bee0040116101e257806362065856116101a757806362065856146103bd578063732214f8146103d057806376f78621146103d7578063785e9e86146103ea5780637d8d2f771461041b57806380dd672f1461042e575f80fd5b80634bee0040146103515780635dc1f535146103725780635dd6a6cb1461037a57806360305d621461038d57806360ad7784146103aa575f80fd5b806325e1c7761161022857806325e1c776146102d15780632e2194d8146102e457806335455ded1461030f57806337b9be8f1461032b5780633a1cfff61461033e575f80fd5b80630118acc4146102645780630322ed9814610279578063151d30d11461028c5780631ec44724146102ab57806320d91b7a146102be575b5f80fd5b610277610272366004614cce565b6105f4565b005b610277610287366004614d09565b610605565b610294600a81565b60405160ff90911681526020015b60405180910390f35b6102776102b9366004614cce565b610898565b6102776102cc366004614d20565b6108a4565b6102776102df366004614d6e565b610e12565b6102f76102f2366004614d09565b610e86565b6040516001600160401b0390911681526020016102a2565b61031861271081565b60405161ffff90911681526020016102a2565b610277610339366004614da3565b610eda565b61027761034c366004614cce565b610eed565b61036461035f366004614e16565b610ef9565b6040519081526020016102a2565b610364610f2e565b610277610388366004614da3565b610f3d565b610395601481565b60405163ffffffff90911681526020016102a2565b6102776103b8366004614d6e565b610f49565b6103646103cb366004614e7d565b61119a565b6103645f81565b6102776103e5366004614cce565b6111ba565b5f80516020615cb4833981519152546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b610277610429366004614da3565b6111c6565b61027761043c366004614d6e565b6111d2565b610294603081565b610277610457366004614e98565b6113c5565b61027761046a366004614d09565b611476565b61036461047d366004614ec6565b61150a565b610277610490366004614da3565b6115e3565b6103646104a3366004614edf565b6115ef565b6102776104b6366004614eff565b61161b565b6103646104c9366004614ec6565b6116fa565b6103647f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6104036005600160991b0181565b610277610511366004614d09565b6118f5565b6102f7611b4e565b6103647fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0081565b610277610553366004614d09565b611b70565b610294601481565b61057361056e366004614ec6565b611c8c565b604080519283526001600160401b039091166020830152016102a2565b6105a361059e366004614d09565b611e0f565b6040516102a29190614fa7565b6102f76202a30081565b6103645f80516020615cb483398151915281565b6102776105dc366004614e98565b611f5e565b6103646105ef36600461505d565b611ff5565b6106008383835f61202d565b505050565b5f61060e612059565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff169081111561064857610648614f32565b600581111561065957610659614f32565b815260200160018201805461066d906150c8565b80601f0160208091040260200160405190810160405280929190818152602001828054610699906150c8565b80156106e45780601f106106bb576101008083540402835291602001916106e4565b820191905f5260205f20905b8154815290600101906020018083116106c757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c0909101529091508151600581111561075c5761075c614f32565b14610798575f8381526005830160205260409081902054905163170cc93360e21b815261078f9160ff1690600401615100565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561080f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108369190810190615209565b6040518263ffffffff1660e01b8152600401610852919061523a565b6020604051808303815f875af115801561086e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610892919061524c565b50505050565b6108928383835f61207d565b5f6108ad612059565b600781015490915060ff16156108d657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093d919061524c565b836020013514610966576040516372b0a7e760e11b81526020840135600482015260240161078f565b306109776060850160408601615263565b6001600160a01b0316146109ba576109956060840160408501615263565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161078f565b5f6109c8606085018561527e565b905090505f805b828163ffffffff161015610c08575f6109eb606088018861527e565b8363ffffffff16818110610a0157610a016152c3565b9050602002810190610a1391906152d7565b610a1c90615342565b80516040519192505f916006880191610a34916153bd565b90815260200160405180910390205414610a6457805160405163a41f772f60e01b815261078f919060040161523a565b5f6002885f013584604051602001610a9392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610aad916153bd565b602060405180830381855afa158015610ac8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610aeb919061524c565b90508086600601835f0151604051610b0391906153bd565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610b439082615412565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b031990931692909217909155610bb290856154e1565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f01518460400151604051610bed929190615501565b60405180910390a2505080610c019061552b565b90506109cf565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c4b910460ff168361554d565b6001600160401b03161015610c7e57604051633e1a785160e01b81526001600160401b038216600482015260240161078f565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610ca2876123aa565b604001516040518263ffffffff1660e01b8152600401610cc2919061523a565b602060405180830381865af4158015610cdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d01919061524c565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610d3b91906156a3565b5f60405180830381865af4158015610d55573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d7c9190810190615209565b90505f600282604051610d8f91906153bd565b602060405180830381855afa158015610daa573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610dcd919061524c565b9050828114610df95760405163baaea89d60e01b8152600481018290526024810184905260440161078f565b5050506007909201805460ff1916600117905550505050565b610e1b826124c0565b610e3b576040516330efa98b60e01b81526004810183905260240161078f565b5f610e4583611e0f565b5190506002816005811115610e5c57610e5c614f32565b14610e7c578060405163170cc93360e21b815260040161078f9190615100565b61089283836124e9565b5f80610e90612788565b60030154610e9e9084615737565b9050801580610eb357506001600160401b0381115b15610ed45760405163222d164360e21b81526004810184905260240161078f565b92915050565b610ee68484848461207d565b5050505050565b6108928383835f6127ac565b5f610f026129f3565b610f0e85858585612a2a565b9050610f2660015f80516020615cd483398151915255565b949350505050565b5f610f37612059565b54919050565b61089284848484612c77565b5f610f52612788565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115610f8b57610f8b614f32565b6003811115610f9c57610f9c614f32565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61101282611e0f565b905060018351600381111561102957611029614f32565b1461104a578251604051633b0d540d60e21b815261078f9190600401615756565b60048151600581111561105f5761105f614f32565b036110755761106d86612ca3565b505050505050565b8260a001516001600160401b031681608001516001600160401b03161015611113575f806110a287611c8c565b915091508184146110ce57846040015160405163089938b360e11b815260040161078f91815260200190565b8460a001516001600160401b0316816001600160401b0316101561111057604051632e19bc2d60e11b81526001600160401b038216600482015260240161078f565b50505b5f868152600785016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559151918252839188917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a3505050505050565b5f6111a3612788565b60030154610ed4906001600160401b038416615770565b6106008383835f612c77565b610ee6848484846127ac565b6111da6129f3565b5f6111e3612788565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561121c5761121c614f32565b600381111561122d5761122d614f32565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156112a6576112a6614f32565b146112c7578051604051633b0d540d60e21b815261078f9190600401615756565b5f6112d58260400151611e0f565b905060046112e68360400151611e0f565b5160058111156112f8576112f8614f32565b1415801561131f57508160c001516001600160401b031681608001516001600160401b0316105b1561139f575f8061132f86611c8c565b915091508184604001511461135a5760405163089938b360e11b81526004810183905260240161078f565b806001600160401b03168460c001516001600160401b0316111561139c57604051632e19bc2d60e11b81526001600160401b038216600482015260240161078f565b50505b6113a885612ca3565b5050506113c160015f80516020615cd483398151915255565b5050565b5f6113ce612788565b90506001600160a01b0382166114025760405163caa903f960e01b81526001600160a01b038316600482015260240161078f565b5f8381526006820160205260409020546001600160a01b0316331461144857335b604051636e2ccd7560e11b81526001600160a01b03909116600482015260240161078f565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f61147f612788565b90505f61148b83611e0f565b51905060048160058111156114a2576114a2614f32565b146114c2578060405163170cc93360e21b815260040161078f9190615100565b5f8381526006830160205260409020546001600160a01b031633146114e75733611423565b5f838152600683016020526040902054610600906001600160a01b031684612e74565b5f6115136129f3565b5f61151c612788565b90505f8061152985612e9e565b91509150611536826124c0565b611544575091506115c89050565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b039182169116806115865750805b60048351600581111561159b5761159b614f32565b036115aa576115aa8185612e74565b6115c0826115bb856040015161119a565b613253565b509193505050505b6115de60015f80516020615cd483398151915255565b919050565b6108928484848461202d565b5f6115f86129f3565b611603833384613276565b9050610ed460015f80516020615cd483398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680611664575080546001600160401b03808416911610155b156116825760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556116ad84846134bb565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80611704612059565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61172b876123aa565b604001516040518263ffffffff1660e01b815260040161174b919061523a565b6040805180830381865af4158015611765573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117899190615787565b91509150806117af57604051632d07135360e01b8152811515600482015260240161078f565b5f828152600484016020526040902080546117c9906150c8565b90505f036117ed5760405163089938b360e11b81526004810183905260240161078f565b60015f838152600580860160205260409091205460ff169081111561181457611814614f32565b14611847575f8281526005840160205260409081902054905163170cc93360e21b815261078f9160ff1690600401615100565b5f828152600484016020526040812061185f91614c1a565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62936118e593600190910192600160c01b9092041690615823565b60405180910390a2509392505050565b5f6118fe612788565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561193757611937614f32565b600381111561194857611948614f32565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152909150815160038111156119c1576119c1614f32565b141580156119e257506003815160038111156119df576119df614f32565b14155b15611a03578051604051633b0d540d60e21b815261078f9190600401615756565b5f611a118260400151611e0f565b905080606001516001600160401b03165f03611a43576040516339b894f960e21b81526004810185905260240161078f565b604080830151606083015160a0840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611ab193906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611acb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611af29190810190615209565b6040518263ffffffff1660e01b8152600401611b0e919061523a565b6020604051808303815f875af1158015611b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee6919061524c565b5f611b57612059565b60030154600160401b90046001600160401b0316919050565b5f611b79612059565b5f8381526004820160205260409020805491925090611b97906150c8565b90505f03611bbb5760405163089938b360e11b81526004810183905260240161078f565b60015f838152600580840160205260409091205460ff1690811115611be257611be2614f32565b14611c15575f8281526005820160205260409081902054905163170cc93360e21b815261078f9160ff1690600401615100565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611c4c9201615835565b6020604051808303815f875af1158015611c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610600919061524c565b5f805f611c98846123aa565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b8152600401611cd8919061523a565b606060405180830381865af4158015611cf3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d179190615847565b9250925092505f611d26612059565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b909204161015611d7a57604051632e19bc2d60e11b81526001600160401b038416600482015260240161078f565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff990611dfa90869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b611e17614c51565b5f611e20612059565b5f84815260058083016020526040918290208251610100810190935280549394509192839160ff90911690811115611e5a57611e5a614f32565b6005811115611e6b57611e6b614f32565b8152602001600182018054611e7f906150c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611eab906150c8565b8015611ef65780601f10611ecd57610100808354040283529160200191611ef6565b820191905f5260205f20905b815481529060010190602001808311611ed957829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b6001600160a01b038116611f905760405163caa903f960e01b81526001600160a01b038216600482015260240161078f565b5f611f99612788565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611fc75733611423565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f80611fff612059565b9050806006018484604051612015929190615887565b90815260200160405180910390205491505092915050565b6120398484848461207d565b61089257604051631036cf9160e11b81526004810185905260240161078f565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0090565b5f80612087612788565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156120c0576120c0614f32565b60038111156120d1576120d1614f32565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61214782611e0f565b905060028351600381111561215e5761215e614f32565b1461217f578251604051633b0d540d60e21b815261078f9190600401615756565b60208301516001600160a01b0316331461221b575f8281526006850160205260409020546001600160a01b031633146121b85733611423565b5f82815260068501602052604090205460c08201516121e791600160b01b90046001600160401b0316906154e1565b6001600160401b031642101561221b5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161078f565b60028151600581111561223057612230614f32565b036123525760028401546080840151612252916001600160401b0316906154e1565b6001600160401b03164210156122865760405163fb6ce63f60e01b81526001600160401b034216600482015260240161078f565b87156122985761229682886124e9565b505b5f8981526007850160205260409020805460ff19166003179055606083015160a08201516122d19184916122cc9190615896565b6134d5565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561231484888c61369f565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610f269350505050565b60048151600581111561236757612367614f32565b0361238e5761237783878b61369f565b5061238189612ca3565b6001945050505050610f26565b805160405163170cc93360e21b815261078f9190600401615100565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561240e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261243591908101906158b6565b915091508061245757604051636b2f19e960e01b815260040160405180910390fd5b81511561247d578151604051636ba589a560e01b8152600481019190915260240161078f565b60208201516001600160a01b0316156124b9576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161078f565b5092915050565b5f806124ca612788565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612534573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261255b91908101906158b6565b915091508061257d57604051636b2f19e960e01b815260040160405180910390fd5b5f612586612788565b60058101548451919250146125b4578251604051636ba589a560e01b8152600481019190915260240161078f565b60208301516001600160a01b0316156125f0576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161078f565b60208301516001600160a01b03161561262c576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161078f565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b8152600401612669919061523a565b6040805180830381865af4158015612683573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a79190615946565b915091508188146126ce5760405163089938b360e11b81526004810189905260240161078f565b5f8881526006840160205260409020600101546001600160401b03908116908216111561275f575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a261277d565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806127b6612788565b90506127c18661388d565b5f6127cb87611e0f565b90506127d6876124c0565b6127e557600192505050610f26565b5f8781526006830160205260409020546001600160a01b0316331461280a5733611423565b5f87815260068301602052604090205460c082015161283991600160b01b90046001600160401b0316906154e1565b6001600160401b03168160e001516001600160401b031610156128805760e081015160405163fb6ce63f60e01b81526001600160401b03909116600482015260240161078f565b5f86156128985761289188876124e9565b90506128b6565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906128db9061119a565b60c086015160e0808801516040519185901b6001600160e01b031916825260048201939093526001600160401b0391821660248201819052604482015291811660648301528516608482015260a401602060405180830381865afa158015612945573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612969919061524c565b90506001600160a01b038616612995575f8981526006850160205260409020546001600160a01b031695505b5f898152600a85016020526040812080548392906129b4908490615969565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615cd4833981519152805460011901612a2457604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80612a34612788565b600281015490915061ffff600160401b90910481169086161080612a5d575061271061ffff8616115b15612a8157604051635f12e6c360e11b815261ffff8616600482015260240161078f565b60028101546001600160401b039081169085161015612abd576040516202a06d60e11b81526001600160401b038516600482015260240161078f565b8054831080612acf5750806001015483115b15612af05760405163222d164360e21b81526004810184905260240161078f565b5f612afa84613b78565b90505f612b0682610e86565b90505f612bcd612b168a8061597c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612b579250505060208c018c61597c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612b9b9250505060608d0160408e01614e7d565b612ba860608e018e6159be565b612bb1906159d2565b612bbe60808f018f6159be565b612bc7906159d2565b87613b9b565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b60015f80516020615cd483398151915255565b612c83848484846127ac565b61089257604051635bff683f60e11b81526004810185905260240161078f565b5f612cac612788565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612ce557612ce5614f32565b6003811115612cf657612cf6614f32565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612d6a613f54565b8260800151612d7991906154e1565b6001600160401b0316421015612dad5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161078f565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680612e08575060208201515b5f80612e15838886613f6f565b91509150612e2e85602001516115bb876060015161119a565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f612e7d612788565b5f838152600a8201602052604081208054919055909150610892848261401c565b5f612ea7614c51565b5f612eb0612059565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612ed7886123aa565b604001516040518263ffffffff1660e01b8152600401612ef7919061523a565b6040805180830381865af4158015612f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f359190615787565b915091508015612f5c57604051632d07135360e01b8152811515600482015260240161078f565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff90911690811115612f9457612f94614f32565b6005811115612fa557612fa5614f32565b8152602001600182018054612fb9906150c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe5906150c8565b80156130305780601f1061300757610100808354040283529160200191613030565b820191905f5260205f20905b81548152906001019060200180831161301357829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156130a8576130a8614f32565b141580156130c957506001815160058111156130c6576130c6614f32565b14155b156130ea57805160405163170cc93360e21b815261078f9190600401615100565b6003815160058111156130ff576130ff614f32565b0361310d5760048152613112565b600581525b83600601816020015160405161312891906153bd565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561316b5761316b614f32565b0217905550602082015160018201906131849082615412565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b5f80516020615cb4833981519152546113c1906001600160a01b03168383614092565b5f80613280612788565b90505f61328f6102f285613b78565b90505f61329b87611e0f565b90506132a6876124c0565b6132c6576040516330efa98b60e01b81526004810188905260240161078f565b6002815160058111156132db576132db614f32565b146132fc57805160405163170cc93360e21b815261078f9190600401615100565b5f828260a0015161330d91906154e1565b905083600201600a9054906101000a90046001600160401b03168260400151613336919061554d565b6001600160401b0316816001600160401b0316111561337357604051636d51fe0560e11b81526001600160401b038216600482015260240161078f565b5f8061337f8a846134d5565b915091505f8a836040516020016133ad92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b6134c36140f1565b6134cc8261413c565b6113c1816141b9565b5f805f6134e0612059565b5f868152600582016020526040902060020154909150600160c01b90046001600160401b03166135108582614221565b5f61351a8761448e565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156135be573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526135e59190810190615209565b6040518263ffffffff1660e01b8152600401613601919061523a565b6020604051808303815f875af115801561361d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613641919061524c565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b5f806136a9612788565b90505f6136b98660400151611e0f565b90505f6003825160058111156136d1576136d1614f32565b14806136ef57506004825160058111156136ed576136ed614f32565b145b156136ff575060e081015161373c565b60028251600581111561371457613714614f32565b0361372057504261373c565b815160405163170cc93360e21b815261078f9190600401615100565b86608001516001600160401b0316816001600160401b031611613764575f93505050506134b4565b600483015460608801515f916001600160a01b031690634f22429f906137899061119a565b60c086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561380a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061382e919061524c565b90506001600160a01b03871661384657876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b5f613896612059565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff16908111156138d0576138d0614f32565b60058111156138e1576138e1614f32565b81526020016001820180546138f5906150c8565b80601f0160208091040260200160405190810160405280929190818152602001828054613921906150c8565b801561396c5780601f106139435761010080835404028352916020019161396c565b820191905f5260205f20905b81548152906001019060200180831161394f57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c090910152909150815160058111156139e4576139e4614f32565b14613a17575f8381526005830160205260409081902054905163170cc93360e21b815261078f9160ff1690600401615100565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff1916906001908490811115613a5c57613a5c614f32565b021790555060208201516001820190613a759082615412565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f613b1584826134d5565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a0015142604051613b6a939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b5f610ed4825f80516020615cb4833981519152546001600160a01b0316906144f7565b5f613ba4612059565b6007015460ff16613bc857604051637fab81e560e01b815260040160405180910390fd5b5f613bd1612059565b905042866001600160401b0316111580613c005750613bf36202a30042615969565b866001600160401b031610155b15613c2957604051635879da1360e11b81526001600160401b038716600482015260240161078f565b60038101546001600160401b0390613c4c90600160401b90048216858316615969565b1115613c7657604051633e1a785160e01b81526001600160401b038416600482015260240161078f565b613c7f85614503565b613c8884614503565b8651603014613caf5786516040516326475b2f60e11b815260040161078f91815260200190565b87515f03613cd25787604051633e08a12560e11b815260040161078f919061523a565b5f801b8160060189604051613ce791906153bd565b90815260200160405180910390205414613d16578760405163a41f772f60e01b815260040161078f919061523a565b613d20835f614221565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613da09190615aff565b5f60405180830381865af4158015613dba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613de19190810190615bb6565b5f82815260048601602052604090209193509150613dff8282615412565b5081836006018b604051613e1391906153bd565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613e4f90859060040161523a565b6020604051808303815f875af1158015613e6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e8f919061524c565b5f8481526005860160205260409020805460ff19166001908117825591925001613eb98c82615412565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf90613f3d908e9085908e908c90615bf9565b60405180910390a250909998505050505050505050565b5f613f5d612059565b600101546001600160401b0316919050565b5f805f613f7a612788565b5f8681526008820160205260408120805490829055919250908190801561400e575f87815260068501602052604090205461271090613fc490600160a01b900461ffff1683615770565b613fce9190615737565b91508184600a015f8981526020019081526020015f205f828254613ff29190615969565b9091555061400290508282615c31565b925061400e898461401c565b509097909650945050505050565b5f5f80516020615cb483398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015614077575f80fd5b505af1158015614089573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261060091859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614622565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661413a57604051631afcd79f60e31b815260040160405180910390fd5b565b6141446140f1565b61414d81614683565b61415561469c565b6141b66060820135608083013561417260c0850160a08601614e7d565b61418260e0860160c08701615c44565b614193610100870160e08801615c5d565b6101008701356141ab61014089016101208a01615263565b8861014001356146ac565b50565b6141c16140f1565b5f80516020615cb48339815191526001600160a01b03821661420157604051637330680360e01b81526001600160a01b038316600482015260240161078f565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61422a612059565b90505f826001600160401b0316846001600160401b03161115614258576142518385615896565b9050614265565b6142628484615896565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806142d25750600184015481516142ce916001600160401b031690615969565b8210155b156142fa576001600160401b0380841660608301528282526040820151166020820152614319565b828160600181815161430c91906154e1565b6001600160401b03169052505b606081015161432990606461554d565b602082015160018601546001600160401b0392909216916143549190600160401b900460ff1661554d565b6001600160401b0316101561438d57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161078f565b858160400181815161439f91906154e1565b6001600160401b03169052506040810180518691906143bf908390615896565b6001600160401b0316905250600184015460408201516064916143ed91600160401b90910460ff169061554d565b6001600160401b03161015614426576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161078f565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f80614498612059565b5f84815260058201602052604090206002018054919250906008906144cc90600160401b90046001600160401b0316615c7d565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f6134b483338461486e565b805163ffffffff1615801561451c575060208101515115155b1561455057805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161078f565b602081015151815163ffffffff16111561459357805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161078f565b60015b8160200151518110156113c15760208201516145b3600183615c31565b815181106145c3576145c36152c3565b60200260200101516001600160a01b0316826020015182815181106145ea576145ea6152c3565b60200260200101516001600160a01b0316101561461a57604051630dbc8d5f60e31b815260040160405180910390fd5b600101614596565b5f6146366001600160a01b038416836149d1565b905080515f1415801561465a5750808060200190518101906146589190615c98565b155b1561060057604051635274afe760e01b81526001600160a01b038416600482015260240161078f565b61468b6140f1565b6146936149de565b6141b6816149e6565b6146a46140f1565b61413a614aca565b6146b46140f1565b5f6146bd612788565b905061ffff861615806146d5575061271061ffff8716115b156146f957604051635f12e6c360e11b815261ffff8716600482015260240161078f565b8789111561471d5760405163222d164360e21b8152600481018a905260240161078f565b60ff851615806147305750600a60ff8616115b156147535760405163170db35960e31b815260ff8616600482015260240161078f565b61475b613f54565b6001600160401b0316876001600160401b03161015614797576040516202a06d60e11b81526001600160401b038816600482015260240161078f565b835f036147b75760405163a733007160e01b815260040160405180910390fd5b816147d857604051632f6bd1db60e01b81526004810183905260240161078f565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156148b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148d8919061524c565b90506148ef6001600160a01b038616853086614ad2565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa158015614933573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614957919061524c565b90508181116149bd5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b606482015260840161078f565b6149c78282615c31565b9695505050505050565b60606134b483835f614b0b565b61413a6140f1565b6149ee6140f1565b5f6149f7612059565b8235815590506014614a0f6060840160408501615c5d565b60ff161180614a2e5750614a296060830160408401615c5d565b60ff16155b15614a6257614a436060830160408401615c5d565b604051634a59bbff60e11b815260ff909116600482015260240161078f565b614a726060830160408401615c5d565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614aa36040830160208401614e7d565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612c646140f1565b6040516001600160a01b0384811660248301528381166044830152606482018390526108929186918216906323b872dd906084016140bf565b606081471015614b305760405163cd78605960e01b815230600482015260240161078f565b5f80856001600160a01b03168486604051614b4b91906153bd565b5f6040518083038185875af1925050503d805f8114614b85576040519150601f19603f3d011682016040523d82523d5f602084013e614b8a565b606091505b50915091506149c7868383606082614baa57614ba582614bf1565b6134b4565b8151158015614bc157506001600160a01b0384163b155b15614bea57604051639996b31560e01b81526001600160a01b038516600482015260240161078f565b50806134b4565b805115614c015780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614c26906150c8565b5f825580601f10614c35575050565b601f0160209004905f5260205f20908101906141b69190614c96565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b80821115614caa575f8155600101614c97565b5090565b80151581146141b6575f80fd5b803563ffffffff811681146115de575f80fd5b5f805f60608486031215614ce0575f80fd5b833592506020840135614cf281614cae565b9150614d0060408501614cbb565b90509250925092565b5f60208284031215614d19575f80fd5b5035919050565b5f8060408385031215614d31575f80fd5b82356001600160401b03811115614d46575f80fd5b830160808186031215614d57575f80fd5b9150614d6560208401614cbb565b90509250929050565b5f8060408385031215614d7f575f80fd5b82359150614d6560208401614cbb565b6001600160a01b03811681146141b6575f80fd5b5f805f8060808587031215614db6575f80fd5b843593506020850135614dc881614cae565b9250614dd660408601614cbb565b91506060850135614de681614d8f565b939692955090935050565b803561ffff811681146115de575f80fd5b6001600160401b03811681146141b6575f80fd5b5f805f8060808587031215614e29575f80fd5b84356001600160401b03811115614e3e575f80fd5b850160a08188031215614e4f575f80fd5b9350614e5d60208601614df1565b92506040850135614e6d81614e02565b9396929550929360600135925050565b5f60208284031215614e8d575f80fd5b81356134b481614e02565b5f8060408385031215614ea9575f80fd5b823591506020830135614ebb81614d8f565b809150509250929050565b5f60208284031215614ed6575f80fd5b6134b482614cbb565b5f8060408385031215614ef0575f80fd5b50508035926020909101359150565b5f80828403610180811215614f12575f80fd5b61016080821215614f21575f80fd5b8493508301359050614ebb81614d8f565b634e487b7160e01b5f52602160045260245ffd5b60068110614f5657614f56614f32565b9052565b5f5b83811015614f74578181015183820152602001614f5c565b50505f910152565b5f8151808452614f93816020860160208601614f5a565b601f01601f19169290920160200192915050565b60208152614fb9602082018351614f46565b5f6020830151610100806040850152614fd6610120850183614f7c565b915060408501516001600160401b0380821660608701528060608801511660808701525050608085015161501560a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b5f806020838503121561506e575f80fd5b82356001600160401b0380821115615084575f80fd5b818501915085601f830112615097575f80fd5b8135818111156150a5575f80fd5b8660208285010111156150b6575f80fd5b60209290920196919550909350505050565b600181811c908216806150dc57607f821691505b6020821081036150fa57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610ed48284614f46565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156151445761514461510e565b60405290565b604080519081016001600160401b03811182821017156151445761514461510e565b604051601f8201601f191681016001600160401b03811182821017156151945761519461510e565b604052919050565b5f6001600160401b038211156151b4576151b461510e565b50601f01601f191660200190565b5f82601f8301126151d1575f80fd5b81516151e46151df8261519c565b61516c565b8181528460208386010111156151f8575f80fd5b610f26826020830160208701614f5a565b5f60208284031215615219575f80fd5b81516001600160401b0381111561522e575f80fd5b610f26848285016151c2565b602081525f6134b46020830184614f7c565b5f6020828403121561525c575f80fd5b5051919050565b5f60208284031215615273575f80fd5b81356134b481614d8f565b5f808335601e19843603018112615293575f80fd5b8301803591506001600160401b038211156152ac575f80fd5b6020019150600581901b3603821315613698575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126152eb575f80fd5b9190910192915050565b5f82601f830112615304575f80fd5b81356153126151df8261519c565b818152846020838601011115615326575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615352575f80fd5b61535a615122565b82356001600160401b0380821115615370575f80fd5b61537c368387016152f5565b83526020850135915080821115615391575f80fd5b5061539e368286016152f5565b60208301525060408301356153b281614e02565b604082015292915050565b5f82516152eb818460208701614f5a565b601f82111561060057805f5260205f20601f840160051c810160208510156153f35750805b601f840160051c820191505b81811015610ee6575f81556001016153ff565b81516001600160401b0381111561542b5761542b61510e565b61543f8161543984546150c8565b846153ce565b602080601f831160018114615472575f841561545b5750858301515b5f19600386901b1c1916600185901b17855561106d565b5f85815260208120601f198616915b828110156154a057888601518255948401946001909101908401615481565b50858210156154bd57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156124b9576124b96154cd565b604081525f6155136040830185614f7c565b90506001600160401b03831660208301529392505050565b5f63ffffffff808316818103615543576155436154cd565b6001019392505050565b6001600160401b03818116838216028082169190828114615570576155706154cd565b505092915050565b5f808335601e1984360301811261558d575f80fd5b83016020810192503590506001600160401b038111156155ab575f80fd5b803603821315613698575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561569657848303601f19018952813536889003605e1901811261561d575f80fd5b8701606061562b8280615578565b82875261563b83880182846155b9565b9250505061564b86830183615578565b8683038888015261565d8382846155b9565b92505050604080830135925061567283614e02565b6001600160401b0392909216949091019390935297830197908301906001016155f8565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356156c781614d8f565b6001600160a01b031660608381019190915283013536849003601e190181126156ee575f80fd5b83016020810190356001600160401b03811115615709575f80fd5b8060051b360382131561571a575f80fd5b60808085015261572e60a0850182846155e1565b95945050505050565b5f8261575157634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061576a5761576a614f32565b91905290565b8082028115828204841417610ed457610ed46154cd565b5f8060408385031215615798575f80fd5b825191506020830151614ebb81614cae565b5f81546157b6816150c8565b8085526020600183811680156157d357600181146157ed57615818565b60ff1985168884015283151560051b880183019550615818565b865f52825f205f5b858110156158105781548a82018601529083019084016157f5565b890184019650505b505050505092915050565b604081525f61551360408301856157aa565b602081525f6134b460208301846157aa565b5f805f60608486031215615859575f80fd5b83519250602084015161586b81614e02565b604085015190925061587c81614e02565b809150509250925092565b818382375f9101908152919050565b6001600160401b038281168282160390808211156124b9576124b96154cd565b5f80604083850312156158c7575f80fd5b82516001600160401b03808211156158dd575f80fd5b90840190606082870312156158f0575f80fd5b6158f8615122565b82518152602083015161590a81614d8f565b6020820152604083015182811115615920575f80fd5b61592c888286016151c2565b6040830152508094505050506020830151614ebb81614cae565b5f8060408385031215615957575f80fd5b825191506020830151614ebb81614e02565b80820180821115610ed457610ed46154cd565b5f808335601e19843603018112615991575f80fd5b8301803591506001600160401b038211156159aa575f80fd5b602001915036819003821315613698575f80fd5b5f8235603e198336030181126152eb575f80fd5b5f604082360312156159e2575f80fd5b6159ea61514a565b6159f383614cbb565b81526020808401356001600160401b0380821115615a0f575f80fd5b9085019036601f830112615a21575f80fd5b813581811115615a3357615a3361510e565b8060051b9150615a4484830161516c565b8181529183018401918481019036841115615a5d575f80fd5b938501935b83851015615a875784359250615a7783614d8f565b8282529385019390850190615a62565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615af45784516001600160a01b03168252938301936001929092019190830190615acb565b509695505050505050565b60208152815160208201525f602083015160e06040840152615b25610100840182614f7c565b90506040840151601f1980858403016060860152615b438383614f7c565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b738383615a99565b925060a08601519150808584030160c086015250615b918282615a99565b91505060c0840151615bae60e08501826001600160401b03169052565b509392505050565b5f8060408385031215615bc7575f80fd5b8251915060208301516001600160401b03811115615be3575f80fd5b615bef858286016151c2565b9150509250929050565b608081525f615c0b6080830187614f7c565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b81810381811115610ed457610ed46154cd565b5f60208284031215615c54575f80fd5b6134b482614df1565b5f60208284031215615c6d575f80fd5b813560ff811681146134b4575f80fd5b5f6001600160401b03808316818103615543576155436154cd565b5f60208284031215615ca8575f80fd5b81516134b481614cae56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220eb3ee0daa57d2aebbba17cb5368b3b61076fec41c0f031fbf4fa7f5c0eb64b4e64736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_STAKING_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20\",\"outputs\":[{\"internalType\":\"contractIERC20Mintable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20Mintable\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delegationAmount\",\"type\":\"uint256\"}],\"name\":\"initiateDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"initiateValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615dfb380380615dfb83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615cae8061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610260575f3560e01c80638af5499e1161014b578063bb0b1938116100bf578063ce161f1411610084578063ce161f1414610560578063d5f20ff614610590578063df93d8de146105b0578063e4a63c40146105ba578063fb8b11dd146105ce578063fd7ac5e7146105e1575f80fd5b8063bb0b193814610503578063bc5fbfec1461050b578063bee0a03f14610532578063c974d1b614610545578063cc71bbba1461054d575f80fd5b8063a3a65e4811610110578063a3a65e4814610495578063a9778a7a14610369578063aac80c39146104a8578063afb98096146104bb578063b2c1712e146104e2578063b771b3bc146104f5575f80fd5b80638af5499e146104365780638ef34c981461044957806393e245981461045c5780639681d9401461046f5780639e478eea14610482575f80fd5b80632e2194d8116101e257806360ad7784116101a757806360ad7784146103bd57806362065856146103d0578063732214f8146103e3578063739b4eff146103ea578063785e9e86146103fd5780638280a25a1461042e575f80fd5b80632e2194d81461033e57806335455ded146103695780634b396bcc146103855780635dc1f5351461039857806360305d62146103a0575f80fd5b806320d91b7a1161022857806320d91b7a146102df578063245dafcb146102f257806325e1c7761461030557806327bf60cd146103185780632aa566381461032b575f80fd5b80630322ed98146102645780631340964514610279578063151d30d11461028c57806316679564146102ab5780631af1872b146102be575b5f80fd5b610277610272366004614c04565b6105f4565b005b610277610287366004614c2e565b610887565b610294600a81565b60405160ff90911681526020015b60405180910390f35b6102776102b9366004614c65565b610a7a565b6102d16102cc366004614eb3565b610a86565b6040519081526020016102a2565b6102776102ed366004614f92565b610ac3565b610277610300366004614c04565b611031565b610277610313366004614c2e565b611291565b610277610326366004614c65565b611305565b610277610339366004614c65565b611311565b61035161034c366004614c04565b611322565b6040516001600160401b0390911681526020016102a2565b61037261271081565b60405161ffff90911681526020016102a2565b610277610393366004614fd7565b611376565b6102d1611382565b6103a8601481565b60405163ffffffff90911681526020016102a2565b6102776103cb366004614c2e565b611391565b6102d16103de366004615025565b6115e2565b6102d15f81565b6102d16103f8366004615040565b611602565b5f80516020615c39833981519152546001600160a01b03165b6040516001600160a01b0390911681526020016102a2565b610294603081565b610277610444366004614fd7565b61162e565b610277610457366004615060565b61163a565b61027761046a366004614c04565b6116eb565b6102d161047d36600461508e565b61177f565b6102776104903660046150a7565b611858565b6102d16104a336600461508e565b611937565b6102776104b6366004614fd7565b611b32565b6102d17f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6102776104f0366004614c65565b611b3e565b6104166005600160991b0181565b610351611b4a565b6102d17fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0081565b610277610540366004614c04565b611b6c565b610294601481565b61027761055b366004614fd7565b611c88565b61057361056e36600461508e565b611c94565b604080519283526001600160401b039091166020830152016102a2565b6105a361059e366004614c04565b611e17565b6040516102a2919061514f565b6103516202a30081565b6102d15f80516020615c3983398151915281565b6102776105dc366004615060565b611f66565b6102d16105ef366004615205565b611ffd565b5f6105fd612035565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff1690811115610637576106376150da565b6005811115610648576106486150da565b815260200160018201805461065c90615270565b80601f016020809104026020016040519081016040528092919081815260200182805461068890615270565b80156106d35780601f106106aa576101008083540402835291602001916106d3565b820191905f5260205f20905b8154815290600101906020018083116106b657829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c0909101529091508151600581111561074b5761074b6150da565b14610787575f8381526005830160205260409081902054905163170cc93360e21b815261077e9160ff16906004016152a8565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156107fe573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261082591908101906152f8565b6040518263ffffffff1660e01b81526004016108419190615329565b6020604051808303815f875af115801561085d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610881919061533b565b50505050565b61088f612059565b5f610898612090565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156108d1576108d16150da565b60038111156108e2576108e26150da565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152905060038151600381111561095b5761095b6150da565b1461097c578051604051633b0d540d60e21b815261077e9190600401615352565b5f61098a8260400151611e17565b9050600461099b8360400151611e17565b5160058111156109ad576109ad6150da565b141580156109d457508160c001516001600160401b031681608001516001600160401b0316105b15610a54575f806109e486611c94565b9150915081846040015114610a0f5760405163089938b360e11b81526004810183905260240161077e565b806001600160401b03168460c001516001600160401b03161115610a5157604051632e19bc2d60e11b81526001600160401b038216600482015260240161077e565b50505b610a5d856120b4565b505050610a7660015f80516020615c5983398151915255565b5050565b6108818383835f612298565b5f610a8f612059565b610a9f89898989898989896124df565b9050610ab760015f80516020615c5983398151915255565b98975050505050505050565b5f610acc612035565b600781015490915060ff1615610af557604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5c919061533b565b836020013514610b85576040516372b0a7e760e11b81526020840135600482015260240161077e565b30610b96606085016040860161536c565b6001600160a01b031614610bd957610bb4606084016040850161536c565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161077e565b5f610be76060850185615387565b905090505f805b828163ffffffff161015610e27575f610c0a6060880188615387565b8363ffffffff16818110610c2057610c206153cc565b9050602002810190610c3291906153e0565b610c3b906153fe565b80516040519192505f916006880191610c5391615479565b90815260200160405180910390205414610c8357805160405163a41f772f60e01b815261077e9190600401615329565b5f6002885f013584604051602001610cb292919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610ccc91615479565b602060405180830381855afa158015610ce7573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d0a919061533b565b90508086600601835f0151604051610d229190615479565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d6290826154ce565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b031990931692909217909155610dd1908561559d565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f01518460400151604051610e0c9291906155bd565b60405180910390a2505080610e20906155e7565b9050610bee565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e6a910460ff1683615609565b6001600160401b03161015610e9d57604051633e1a785160e01b81526001600160401b038216600482015260240161077e565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610ec187612667565b604001516040518263ffffffff1660e01b8152600401610ee19190615329565b602060405180830381865af4158015610efc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f20919061533b565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f5a919061575f565b5f60405180830381865af4158015610f74573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f9b91908101906152f8565b90505f600282604051610fae9190615479565b602060405180830381855afa158015610fc9573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610fec919061533b565b90508281146110185760405163baaea89d60e01b8152600481018290526024810184905260440161077e565b5050506007909201805460ff1916600117905550505050565b5f61103a612090565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611073576110736150da565b6003811115611084576110846150da565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152909150815160038111156110fd576110fd6150da565b1415801561111e575060038151600381111561111b5761111b6150da565b14155b1561113f578051604051633b0d540d60e21b815261077e9190600401615352565b5f61114d8260400151611e17565b905080606001516001600160401b03165f0361117f576040516339b894f960e21b81526004810185905260240161077e565b604080830151606083015160a0840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f936111ed93906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611207573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261122e91908101906152f8565b6040518263ffffffff1660e01b815260040161124a9190615329565b6020604051808303815f875af1158015611266573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128a919061533b565b5050505050565b61129a8261277d565b6112ba576040516330efa98b60e01b81526004810183905260240161077e565b5f6112c483611e17565b51905060028160058111156112db576112db6150da565b146112fb578060405163170cc93360e21b815260040161077e91906152a8565b61088183836127a6565b6108818383835f612a45565b61131d8383835f612d72565b505050565b5f8061132c612090565b6003015461133a90846157f3565b905080158061134f57506001600160401b0381115b156113705760405163222d164360e21b81526004810184905260240161077e565b92915050565b61128a84848484612298565b5f61138b612035565b54919050565b5f61139a612090565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156113d3576113d36150da565b60038111156113e4576113e46150da565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61145a82611e17565b9050600183516003811115611471576114716150da565b14611492578251604051633b0d540d60e21b815261077e9190600401615352565b6004815160058111156114a7576114a76150da565b036114bd576114b5866120b4565b505050505050565b8260a001516001600160401b031681608001516001600160401b0316101561155b575f806114ea87611c94565b9150915081841461151657846040015160405163089938b360e11b815260040161077e91815260200190565b8460a001516001600160401b0316816001600160401b0316101561155857604051632e19bc2d60e11b81526001600160401b038216600482015260240161077e565b50505b5f868152600785016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559151918252839188917f3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa910160405180910390a3505050505050565b5f6115eb612090565b60030154611370906001600160401b038416615812565b5f61160b612059565b611616833384612d9e565b905061137060015f80516020615c5983398151915255565b61088184848484612d72565b5f611643612090565b90506001600160a01b0382166116775760405163caa903f960e01b81526001600160a01b038316600482015260240161077e565b5f8381526006820160205260409020546001600160a01b031633146116bd57335b604051636e2ccd7560e11b81526001600160a01b03909116600482015260240161077e565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6116f4612090565b90505f61170083611e17565b5190506004816005811115611717576117176150da565b14611737578060405163170cc93360e21b815260040161077e91906152a8565b5f8381526006830160205260409020546001600160a01b0316331461175c5733611698565b5f83815260068301602052604090205461131d906001600160a01b031684612fe3565b5f611788612059565b5f611791612090565b90505f8061179e8561300d565b915091506117ab8261277d565b6117b95750915061183d9050565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b039182169116806117fb5750805b600483516005811115611810576118106150da565b0361181f5761181f8185612fe3565b6118358261183085604001516115e2565b6133c2565b509193505050505b61185360015f80516020615c5983398151915255565b919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806118a1575080546001600160401b03808416911610155b156118bf5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556118ea84846133e5565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80611941612035565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61196887612667565b604001516040518263ffffffff1660e01b81526004016119889190615329565b6040805180830381865af41580156119a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c69190615829565b91509150806119ec57604051632d07135360e01b8152811515600482015260240161077e565b5f82815260048401602052604090208054611a0690615270565b90505f03611a2a5760405163089938b360e11b81526004810183905260240161077e565b60015f838152600580860160205260409091205460ff1690811115611a5157611a516150da565b14611a84575f8281526005840160205260409081902054905163170cc93360e21b815261077e9160ff16906004016152a8565b5f8281526004840160205260408120611a9c91614b70565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db6293611b2293600190910192600160c01b90920416906158c5565b60405180910390a2509392505050565b61128a84848484612a45565b61131d8383835f6133ff565b5f611b53612035565b60030154600160401b90046001600160401b0316919050565b5f611b75612035565b5f8381526004820160205260409020805491925090611b9390615270565b90505f03611bb75760405163089938b360e11b81526004810183905260240161077e565b60015f838152600580840160205260409091205460ff1690811115611bde57611bde6150da565b14611c11575f8281526005820160205260409081902054905163170cc93360e21b815261077e9160ff16906004016152a8565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611c4892016158d7565b6020604051808303815f875af1158015611c64573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131d919061533b565b610881848484846133ff565b5f805f611ca084612667565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b8152600401611ce09190615329565b606060405180830381865af4158015611cfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d1f91906158e9565b9250925092505f611d2e612035565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b909204161015611d8257604051632e19bc2d60e11b81526001600160401b038416600482015260240161077e565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff990611e0290869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b611e1f614ba7565b5f611e28612035565b5f84815260058083016020526040918290208251610100810190935280549394509192839160ff90911690811115611e6257611e626150da565b6005811115611e7357611e736150da565b8152602001600182018054611e8790615270565b80601f0160208091040260200160405190810160405280929190818152602001828054611eb390615270565b8015611efe5780601f10611ed557610100808354040283529160200191611efe565b820191905f5260205f20905b815481529060010190602001808311611ee157829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b6001600160a01b038116611f985760405163caa903f960e01b81526001600160a01b038216600482015260240161077e565b5f611fa1612090565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611fcf5733611698565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f80612007612035565b905080600601848460405161201d929190615929565b90815260200160405180910390205491505092915050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0090565b5f80516020615c5983398151915280546001190161208a57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f6120bd612090565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156120f6576120f66150da565b6003811115612107576121076150da565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015281015190915061217b61342b565b826080015161218a919061559d565b6001600160401b03164210156121be5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161077e565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680612219575060208201515b5f80612226838886613446565b9150915061223f856020015161183087606001516115e2565b6040805183815260208101839052859189917f5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e910160405180910390a350505050505050565b60015f80516020615c5983398151915255565b5f806122a2612090565b90506122ad866134f3565b5f6122b787611e17565b90506122c28761277d565b6122d1576001925050506124d7565b5f8781526006830160205260409020546001600160a01b031633146122f65733611698565b5f87815260068301602052604090205460c082015161232591600160b01b90046001600160401b03169061559d565b6001600160401b03168160e001516001600160401b0316101561236c5760e081015160405163fb6ce63f60e01b81526001600160401b03909116600482015260240161077e565b5f86156123845761237d88876127a6565b90506123a2565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906123c7906115e2565b60c086015160e0808801516040519185901b6001600160e01b031916825260048201939093526001600160401b0391821660248201819052604482015291811660648301528516608482015260a401602060405180830381865afa158015612431573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612455919061533b565b90506001600160a01b038616612481575f8981526006850160205260409020546001600160a01b031695505b5f898152600a85016020526040812080548392906124a0908490615938565b90915550505f898152600b94909401602052604090932080546001600160a01b0319166001600160a01b0387161790555050151590505b949350505050565b5f806124e9612090565b600281015490915061ffff600160401b90910481169086161080612512575061271061ffff8616115b1561253657604051635f12e6c360e11b815261ffff8616600482015260240161077e565b60028101546001600160401b039081169085161015612572576040516202a06d60e11b81526001600160401b038516600482015260240161077e565b80548310806125845750806001015483115b156125a55760405163222d164360e21b81526004810184905260240161077e565b5f6125af846137de565b90505f6125bb82611322565b90505f6125cc8d8d8d8d8d87613801565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b03191690961790955550939998505050505050505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156126cb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126f2919081019061594b565b915091508061271457604051636b2f19e960e01b815260040160405180910390fd5b81511561273a578151604051636ba589a560e01b8152600481019190915260240161077e565b60208201516001600160a01b031615612776576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161077e565b5092915050565b5f80612787612090565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156127f1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612818919081019061594b565b915091508061283a57604051636b2f19e960e01b815260040160405180910390fd5b5f612843612090565b6005810154845191925014612871578251604051636ba589a560e01b8152600481019190915260240161077e565b60208301516001600160a01b0316156128ad576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161077e565b60208301516001600160a01b0316156128e9576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161077e565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016129269190615329565b6040805180830381865af4158015612940573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296491906159db565b9150915081881461298b5760405163089938b360e11b81526004810189905260240161077e565b5f8881526006840160205260409020600101546001600160401b039081169082161115612a1c575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2612a3a565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b5f80612a4f612090565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612a8857612a886150da565b6003811115612a9957612a996150da565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f612b0f82611e17565b9050600283516003811115612b2657612b266150da565b14612b47578251604051633b0d540d60e21b815261077e9190600401615352565b60208301516001600160a01b03163314612be3575f8281526006850160205260409020546001600160a01b03163314612b805733611698565b5f82815260068501602052604090205460c0820151612baf91600160b01b90046001600160401b03169061559d565b6001600160401b0316421015612be35760405163fb6ce63f60e01b81526001600160401b034216600482015260240161077e565b600281516005811115612bf857612bf86150da565b03612d1a5760028401546080840151612c1a916001600160401b03169061559d565b6001600160401b0316421015612c4e5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161077e565b8715612c6057612c5e82886127a6565b505b5f8981526007850160205260409020805460ff19166003179055606083015160a0820151612c99918491612c9491906159fe565b613bba565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b0390931692909217909155612cdc84888c613d84565b9050828a7f5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf60405160405180910390a3151594506124d79350505050565b600481516005811115612d2f57612d2f6150da565b03612d5657612d3f83878b613d84565b50612d49896120b4565b60019450505050506124d7565b805160405163170cc93360e21b815261077e91906004016152a8565b612d7e84848484612a45565b61088157604051631036cf9160e11b81526004810185905260240161077e565b5f80612da8612090565b90505f612db761034c856137de565b90505f612dc387611e17565b9050612dce8761277d565b612dee576040516330efa98b60e01b81526004810188905260240161077e565b600281516005811115612e0357612e036150da565b14612e2457805160405163170cc93360e21b815261077e91906004016152a8565b5f828260a00151612e35919061559d565b905083600201600a9054906101000a90046001600160401b03168260400151612e5e9190615609565b6001600160401b0316816001600160401b03161115612e9b57604051636d51fe0560e11b81526001600160401b038216600482015260240161077e565b5f80612ea78a84613bba565b915091505f8a83604051602001612ed592919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d19060800160405180910390a496505050505050505b9392505050565b5f612fec612090565b5f838152600a82016020526040812080549190559091506108818482613f72565b5f613016614ba7565b5f61301f612035565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61304688612667565b604001516040518263ffffffff1660e01b81526004016130669190615329565b6040805180830381865af4158015613080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130a49190615829565b9150915080156130cb57604051632d07135360e01b8152811515600482015260240161077e565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff90911690811115613103576131036150da565b6005811115613114576131146150da565b815260200160018201805461312890615270565b80601f016020809104026020016040519081016040528092919081815260200182805461315490615270565b801561319f5780601f106131765761010080835404028352916020019161319f565b820191905f5260205f20905b81548152906001019060200180831161318257829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c09091015290915081516005811115613217576132176150da565b141580156132385750600181516005811115613235576132356150da565b14155b1561325957805160405163170cc93360e21b815261077e91906004016152a8565b60038151600581111561326e5761326e6150da565b0361327c5760048152613281565b600581525b8360060181602001516040516132979190615479565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff19169060019084908111156132da576132da6150da565b0217905550602082015160018201906132f390826154ce565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b5f80516020615c3983398151915254610a76906001600160a01b03168383613fe8565b6133ed614047565b6133f682614092565b610a768161410f565b61340b84848484612298565b61088157604051635bff683f60e11b81526004810185905260240161077e565b5f613434612035565b600101546001600160401b0316919050565b5f805f613451612090565b5f868152600882016020526040812080549082905591925090819080156134e5575f8781526006850160205260409020546127109061349b90600160a01b900461ffff1683615812565b6134a591906157f3565b91508184600a015f8981526020019081526020015f205f8282546134c99190615938565b909155506134d990508282615a1e565b92506134e58984613f72565b509097909650945050505050565b5f6134fc612035565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff1690811115613536576135366150da565b6005811115613547576135476150da565b815260200160018201805461355b90615270565b80601f016020809104026020016040519081016040528092919081815260200182805461358790615270565b80156135d25780601f106135a9576101008083540402835291602001916135d2565b820191905f5260205f20905b8154815290600101906020018083116135b557829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c0909101529091508151600581111561364a5761364a6150da565b1461367d575f8381526005830160205260409081902054905163170cc93360e21b815261077e9160ff16906004016152a8565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff19169060019084908111156136c2576136c26150da565b0217905550602082015160018201906136db90826154ce565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f61377b8482613bba565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a00151426040516137d0939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b5f611370825f80516020615c39833981519152546001600160a01b031690614177565b5f61380a612035565b6007015460ff1661382e57604051637fab81e560e01b815260040160405180910390fd5b5f613837612035565b905042866001600160401b031611158061386657506138596202a30042615938565b866001600160401b031610155b1561388f57604051635879da1360e11b81526001600160401b038716600482015260240161077e565b60038101546001600160401b03906138b290600160401b90048216858316615938565b11156138dc57604051633e1a785160e01b81526001600160401b038416600482015260240161077e565b6138e585614183565b6138ee84614183565b86516030146139155786516040516326475b2f60e11b815260040161077e91815260200190565b87515f036139385787604051633e08a12560e11b815260040161077e9190615329565b5f801b816006018960405161394d9190615479565b9081526020016040518091039020541461397c578760405163a41f772f60e01b815260040161077e9190615329565b613986835f6142a2565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613a069190615a97565b5f60405180830381865af4158015613a20573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613a479190810190615b4e565b5f82815260048601602052604090209193509150613a6582826154ce565b5081836006018b604051613a799190615479565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613ab5908590600401615329565b6020604051808303815f875af1158015613ad1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613af5919061533b565b5f8481526005860160205260409020805460ff19166001908117825591925001613b1f8c826154ce565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf90613ba3908e9085908e908c90615b91565b60405180910390a250909998505050505050505050565b5f805f613bc5612035565b5f868152600582016020526040902060020154909150600160c01b90046001600160401b0316613bf585826142a2565b5f613bff8761450f565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613ca3573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613cca91908101906152f8565b6040518263ffffffff1660e01b8152600401613ce69190615329565b6020604051808303815f875af1158015613d02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d26919061533b565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b5f80613d8e612090565b90505f613d9e8660400151611e17565b90505f600382516005811115613db657613db66150da565b1480613dd45750600482516005811115613dd257613dd26150da565b145b15613de4575060e0810151613e21565b600282516005811115613df957613df96150da565b03613e05575042613e21565b815160405163170cc93360e21b815261077e91906004016152a8565b86608001516001600160401b0316816001600160401b031611613e49575f9350505050612fdc565b600483015460608801515f916001600160a01b031690634f22429f90613e6e906115e2565b60c086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa158015613eef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f13919061533b565b90506001600160a01b038716613f2b57876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b5f5f80516020615c3983398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015613fcd575f80fd5b505af1158015613fdf573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261131d91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614578565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661409057604051631afcd79f60e31b815260040160405180910390fd5b565b61409a614047565b6140a3816145d9565b6140ab6145f2565b61410c606082013560808301356140c860c0850160a08601615025565b6140d860e0860160c08701615bc9565b6140e9610100870160e08801615be2565b61010087013561410161014089016101208a0161536c565b886101400135614602565b50565b614117614047565b5f80516020615c398339815191526001600160a01b03821661415757604051637330680360e01b81526001600160a01b038316600482015260240161077e565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f612fdc8333846147c4565b805163ffffffff1615801561419c575060208101515115155b156141d057805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161077e565b602081015151815163ffffffff16111561421357805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161077e565b60015b816020015151811015610a76576020820151614233600183615a1e565b81518110614243576142436153cc565b60200260200101516001600160a01b03168260200151828151811061426a5761426a6153cc565b60200260200101516001600160a01b0316101561429a57604051630dbc8d5f60e31b815260040160405180910390fd5b600101614216565b5f6142ab612035565b90505f826001600160401b0316846001600160401b031611156142d9576142d283856159fe565b90506142e6565b6142e384846159fe565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b900490921660608201524291158061435357506001840154815161434f916001600160401b031690615938565b8210155b1561437b576001600160401b038084166060830152828252604082015116602082015261439a565b828160600181815161438d919061559d565b6001600160401b03169052505b60608101516143aa906064615609565b602082015160018601546001600160401b0392909216916143d59190600160401b900460ff16615609565b6001600160401b0316101561440e57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161077e565b8581604001818151614420919061559d565b6001600160401b03169052506040810180518691906144409083906159fe565b6001600160401b03169052506001840154604082015160649161446e91600160401b90910460ff1690615609565b6001600160401b031610156144a7576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161077e565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f80614519612035565b5f848152600582016020526040902060020180549192509060089061454d90600160401b90046001600160401b0316615c02565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f61458c6001600160a01b03841683614927565b905080515f141580156145b05750808060200190518101906145ae9190615c1d565b155b1561131d57604051635274afe760e01b81526001600160a01b038416600482015260240161077e565b6145e1614047565b6145e9614934565b61410c8161493c565b6145fa614047565b614090614a20565b61460a614047565b5f614613612090565b905061ffff8616158061462b575061271061ffff8716115b1561464f57604051635f12e6c360e11b815261ffff8716600482015260240161077e565b878911156146735760405163222d164360e21b8152600481018a905260240161077e565b60ff851615806146865750600a60ff8616115b156146a95760405163170db35960e31b815260ff8616600482015260240161077e565b6146b161342b565b6001600160401b0316876001600160401b031610156146ed576040516202a06d60e11b81526001600160401b038816600482015260240161077e565b835f0361470d5760405163a733007160e01b815260040160405180910390fd5b8161472e57604051632f6bd1db60e01b81526004810183905260240161077e565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561480a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061482e919061533b565b90506148456001600160a01b038616853086614a28565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa158015614889573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148ad919061533b565b90508181116149135760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b606482015260840161077e565b61491d8282615a1e565b9695505050505050565b6060612fdc83835f614a61565b614090614047565b614944614047565b5f61494d612035565b82358155905060146149656060840160408501615be2565b60ff161180614984575061497f6060830160408401615be2565b60ff16155b156149b8576149996060830160408401615be2565b604051634a59bbff60e11b815260ff909116600482015260240161077e565b6149c86060830160408401615be2565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556149f96040830160208401615025565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612285614047565b6040516001600160a01b0384811660248301528381166044830152606482018390526108819186918216906323b872dd90608401614015565b606081471015614a865760405163cd78605960e01b815230600482015260240161077e565b5f80856001600160a01b03168486604051614aa19190615479565b5f6040518083038185875af1925050503d805f8114614adb576040519150601f19603f3d011682016040523d82523d5f602084013e614ae0565b606091505b509150915061491d868383606082614b0057614afb82614b47565b612fdc565b8151158015614b1757506001600160a01b0384163b155b15614b4057604051639996b31560e01b81526001600160a01b038516600482015260240161077e565b5080612fdc565b805115614b575780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614b7c90615270565b5f825580601f10614b8b575050565b601f0160209004905f5260205f209081019061410c9190614bec565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b80821115614c00575f8155600101614bed565b5090565b5f60208284031215614c14575f80fd5b5035919050565b803563ffffffff81168114611853575f80fd5b5f8060408385031215614c3f575f80fd5b82359150614c4f60208401614c1b565b90509250929050565b801515811461410c575f80fd5b5f805f60608486031215614c77575f80fd5b833592506020840135614c8981614c58565b9150614c9760408501614c1b565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715614cd657614cd6614ca0565b60405290565b604051606081016001600160401b0381118282101715614cd657614cd6614ca0565b604051601f8201601f191681016001600160401b0381118282101715614d2657614d26614ca0565b604052919050565b5f6001600160401b03821115614d4657614d46614ca0565b50601f01601f191660200190565b5f82601f830112614d63575f80fd5b8135614d76614d7182614d2e565b614cfe565b818152846020838601011115614d8a575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160401b038116811461410c575f80fd5b803561185381614da6565b6001600160a01b038116811461410c575f80fd5b5f60408284031215614de9575f80fd5b614df1614cb4565b9050614dfc82614c1b565b81526020808301356001600160401b0380821115614e18575f80fd5b818501915085601f830112614e2b575f80fd5b813581811115614e3d57614e3d614ca0565b8060051b9150614e4e848301614cfe565b8181529183018401918481019088841115614e67575f80fd5b938501935b83851015614e915784359250614e8183614dc5565b8282529385019390850190614e6c565b808688015250505050505092915050565b803561ffff81168114611853575f80fd5b5f805f805f805f80610100898b031215614ecb575f80fd5b88356001600160401b0380821115614ee1575f80fd5b614eed8c838d01614d54565b995060208b0135915080821115614f02575f80fd5b614f0e8c838d01614d54565b9850614f1c60408c01614dba565b975060608b0135915080821115614f31575f80fd5b614f3d8c838d01614dd9565b965060808b0135915080821115614f52575f80fd5b50614f5f8b828c01614dd9565b945050614f6e60a08a01614ea2565b9250614f7c60c08a01614dba565b915060e089013590509295985092959890939650565b5f8060408385031215614fa3575f80fd5b82356001600160401b03811115614fb8575f80fd5b830160808186031215614fc9575f80fd5b9150614c4f60208401614c1b565b5f805f8060808587031215614fea575f80fd5b843593506020850135614ffc81614c58565b925061500a60408601614c1b565b9150606085013561501a81614dc5565b939692955090935050565b5f60208284031215615035575f80fd5b8135612fdc81614da6565b5f8060408385031215615051575f80fd5b50508035926020909101359150565b5f8060408385031215615071575f80fd5b82359150602083013561508381614dc5565b809150509250929050565b5f6020828403121561509e575f80fd5b612fdc82614c1b565b5f808284036101808112156150ba575f80fd5b610160808212156150c9575f80fd5b849350830135905061508381614dc5565b634e487b7160e01b5f52602160045260245ffd5b600681106150fe576150fe6150da565b9052565b5f5b8381101561511c578181015183820152602001615104565b50505f910152565b5f815180845261513b816020860160208601615102565b601f01601f19169290920160200192915050565b602081526151616020820183516150ee565b5f602083015161010080604085015261517e610120850183615124565b915060408501516001600160401b038082166060870152806060880151166080870152505060808501516151bd60a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b5f8060208385031215615216575f80fd5b82356001600160401b038082111561522c575f80fd5b818501915085601f83011261523f575f80fd5b81358181111561524d575f80fd5b86602082850101111561525e575f80fd5b60209290920196919550909350505050565b600181811c9082168061528457607f821691505b6020821081036152a257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020810161137082846150ee565b5f82601f8301126152c5575f80fd5b81516152d3614d7182614d2e565b8181528460208386010111156152e7575f80fd5b6124d7826020830160208701615102565b5f60208284031215615308575f80fd5b81516001600160401b0381111561531d575f80fd5b6124d7848285016152b6565b602081525f612fdc6020830184615124565b5f6020828403121561534b575f80fd5b5051919050565b6020810160048310615366576153666150da565b91905290565b5f6020828403121561537c575f80fd5b8135612fdc81614dc5565b5f808335601e1984360301811261539c575f80fd5b8301803591506001600160401b038211156153b5575f80fd5b6020019150600581901b3603821315613d7d575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126153f4575f80fd5b9190910192915050565b5f6060823603121561540e575f80fd5b615416614cdc565b82356001600160401b038082111561542c575f80fd5b61543836838701614d54565b8352602085013591508082111561544d575f80fd5b5061545a36828601614d54565b602083015250604083013561546e81614da6565b604082015292915050565b5f82516153f4818460208701615102565b601f82111561131d57805f5260205f20601f840160051c810160208510156154af5750805b601f840160051c820191505b8181101561128a575f81556001016154bb565b81516001600160401b038111156154e7576154e7614ca0565b6154fb816154f58454615270565b8461548a565b602080601f83116001811461552e575f84156155175750858301515b5f19600386901b1c1916600185901b1785556114b5565b5f85815260208120601f198616915b8281101561555c5788860151825594840194600190910190840161553d565b508582101561557957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561277657612776615589565b604081525f6155cf6040830185615124565b90506001600160401b03831660208301529392505050565b5f63ffffffff8083168181036155ff576155ff615589565b6001019392505050565b6001600160401b0381811683821602808216919082811461562c5761562c615589565b505092915050565b5f808335601e19843603018112615649575f80fd5b83016020810192503590506001600160401b03811115615667575f80fd5b803603821315613d7d575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561575257848303601f19018952813536889003605e190181126156d9575f80fd5b870160606156e78280615634565b8287526156f78388018284615675565b9250505061570786830183615634565b86830388880152615719838284615675565b92505050604080830135925061572e83614da6565b6001600160401b0392909216949091019390935297830197908301906001016156b4565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561578381614dc5565b6001600160a01b031660608381019190915283013536849003601e190181126157aa575f80fd5b83016020810190356001600160401b038111156157c5575f80fd5b8060051b36038213156157d6575f80fd5b6080808501526157ea60a08501828461569d565b95945050505050565b5f8261580d57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761137057611370615589565b5f806040838503121561583a575f80fd5b82519150602083015161508381614c58565b5f815461585881615270565b808552602060018381168015615875576001811461588f576158ba565b60ff1985168884015283151560051b8801830195506158ba565b865f52825f205f5b858110156158b25781548a8201860152908301908401615897565b890184019650505b505050505092915050565b604081525f6155cf604083018561584c565b602081525f612fdc602083018461584c565b5f805f606084860312156158fb575f80fd5b83519250602084015161590d81614da6565b604085015190925061591e81614da6565b809150509250925092565b818382375f9101908152919050565b8082018082111561137057611370615589565b5f806040838503121561595c575f80fd5b82516001600160401b0380821115615972575f80fd5b9084019060608287031215615985575f80fd5b61598d614cdc565b82518152602083015161599f81614dc5565b60208201526040830151828111156159b5575f80fd5b6159c1888286016152b6565b604083015250809450505050602083015161508381614c58565b5f80604083850312156159ec575f80fd5b82519150602083015161508381614da6565b6001600160401b0382811682821603908082111561277657612776615589565b8181038181111561137057611370615589565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615a8c5784516001600160a01b03168252938301936001929092019190830190615a63565b509695505050505050565b60208152815160208201525f602083015160e06040840152615abd610100840182615124565b90506040840151601f1980858403016060860152615adb8383615124565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b0b8383615a31565b925060a08601519150808584030160c086015250615b298282615a31565b91505060c0840151615b4660e08501826001600160401b03169052565b509392505050565b5f8060408385031215615b5f575f80fd5b8251915060208301516001600160401b03811115615b7b575f80fd5b615b87858286016152b6565b9150509250929050565b608081525f615ba36080830187615124565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b5f60208284031215615bd9575f80fd5b612fdc82614ea2565b5f60208284031215615bf2575f80fd5b813560ff81168114612fdc575f80fd5b5f6001600160401b038083168181036155ff576155ff615589565b5f60208284031215615c2d575f80fd5b8151612fdc81614c5856fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122095de6f7000b95d49c02d7260b5f614bf3c65570b0bf756eb18f568c7a03bd0b964736f6c63430008190033", } // ERC20TokenStakingManagerABI is the input ABI used to generate the binding from. @@ -951,25 +942,25 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Comp return _ERC20TokenStakingManager.Contract.CompleteDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "completeEndDelegation", delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) CompleteDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "completeDelegatorRemoval", delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.CompleteEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.CompleteDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, messageIndex) } // CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. @@ -1035,88 +1026,88 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Comp return _ERC20TokenStakingManager.Contract.CompleteValidatorWeightUpdate(&_ERC20TokenStakingManager.TransactOpts, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndDelegation0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateDelegatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndDelegation0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateDelegatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitializeEndValidation", validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateValidatorRemoval(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateValidatorRemoval(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitializeEndValidation0", validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ForceInitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "forceInitiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndValidation0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateValidatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ForceInitializeEndValidation0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ForceInitiateValidatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } // Initialize is a paid mutator transaction binding the contract method 0x9e478eea. @@ -1140,151 +1131,151 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Init return _ERC20TokenStakingManager.Contract.Initialize(&_ERC20TokenStakingManager.TransactOpts, settings, token) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, conversionData, messageIndex) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0x9e1bc4ef. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, conversionData, messageIndex) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0x739b4eff. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateDelegatorRegistration", validationID, delegationAmount) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0x739b4eff. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0x739b4eff. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID, uint256 delegationAmount) returns(bytes32) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateDelegatorRegistration(validationID [32]byte, delegationAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRegistration(&_ERC20TokenStakingManager.TransactOpts, validationID, delegationAmount) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndDelegation0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndDelegation0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRemoval(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateDelegatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x1af1872b. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeEndValidation0", validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateValidatorRegistration(opts *bind.TransactOpts, nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateValidatorRegistration", nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration, stakeAmount) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x1af1872b. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration, stakeAmount) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x1af1872b. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeEndValidation0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration, uint256 stakeAmount) returns(bytes32 validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64, stakeAmount *big.Int) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRegistration(&_ERC20TokenStakingManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration, stakeAmount) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x4bee0040. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x4bee0040. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRemoval(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x4bee0040. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRemoval(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) InitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "initiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.InitializeValidatorSet(&_ERC20TokenStakingManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.InitiateValidatorRemoval0(&_ERC20TokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } // ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. @@ -1329,25 +1320,25 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Rese return _ERC20TokenStakingManager.Contract.ResendRegisterValidatorMessage(&_ERC20TokenStakingManager.TransactOpts, validationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// 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) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactor) ResendUpdateDelegator(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.contract.Transact(opts, "resendUpdateDelegator", delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendUpdateDelegator(&_ERC20TokenStakingManager.TransactOpts, delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _ERC20TokenStakingManager.Contract.ResendUpdateDelegation(&_ERC20TokenStakingManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _ERC20TokenStakingManager.Contract.ResendUpdateDelegator(&_ERC20TokenStakingManager.TransactOpts, delegationID) } // SubmitUptimeProof is a paid mutator transaction binding the contract method 0x25e1c776. @@ -1371,9 +1362,9 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerTransactorSession) Subm return _ERC20TokenStakingManager.Contract.SubmitUptimeProof(&_ERC20TokenStakingManager.TransactOpts, validationID, messageIndex) } -// ERC20TokenStakingManagerCompletedValidatorRegistrationIterator is returned from FilterCompletedValidatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedValidatorRegistration events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorRegistrationIterator struct { - Event *ERC20TokenStakingManagerCompletedValidatorRegistration // Event containing the contract specifics and raw log +// ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator is returned from FilterCompletedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRegistration events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator struct { + Event *ERC20TokenStakingManagerCompletedDelegatorRegistration // 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 @@ -1387,7 +1378,7 @@ type ERC20TokenStakingManagerCompletedValidatorRegistrationIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Next() bool { +func (it *ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1396,7 +1387,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Next() if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorRegistration) + it.Event = new(ERC20TokenStakingManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1411,7 +1402,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Next() // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorRegistration) + it.Event = new(ERC20TokenStakingManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1427,53 +1418,61 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Next() } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Error() error { +func (it *ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Close() error { +func (it *ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// ERC20TokenStakingManagerCompletedValidatorRegistration represents a CompletedValidatorRegistration event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorRegistration struct { +// ERC20TokenStakingManagerCompletedDelegatorRegistration represents a CompletedDelegatorRegistration event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedDelegatorRegistration struct { + DelegationID [32]byte ValidationID [32]byte - NodeID []byte - Weight uint64 + StartTime *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorRegistration is a free log retrieval operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// FilterCompletedDelegatorRegistration is a free log retrieval operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorRegistration(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorRegistrationIterator, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator, 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, "CompletedValidatorRegistration", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerCompletedValidatorRegistrationIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorRegistration", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerCompletedDelegatorRegistrationIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorRegistration is a free log subscription operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// WatchCompletedDelegatorRegistration is a free log subscription operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorRegistration(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorRegistration, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedDelegatorRegistration, 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, "CompletedValidatorRegistration", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1483,8 +1482,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ERC20TokenStakingManagerCompletedValidatorRegistration) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { + event := new(ERC20TokenStakingManagerCompletedDelegatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -1505,21 +1504,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete }), nil } -// ParseCompletedValidatorRegistration is a log parse operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// ParseCompletedDelegatorRegistration is a log parse operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorRegistration(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorRegistration, error) { - event := new(ERC20TokenStakingManagerCompletedValidatorRegistration) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedDelegatorRegistration(log types.Log) (*ERC20TokenStakingManagerCompletedDelegatorRegistration, error) { + event := new(ERC20TokenStakingManagerCompletedDelegatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ERC20TokenStakingManagerCompletedValidatorRemovalIterator is returned from FilterCompletedValidatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedValidatorRemoval events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorRemovalIterator struct { - Event *ERC20TokenStakingManagerCompletedValidatorRemoval // Event containing the contract specifics and raw log +// ERC20TokenStakingManagerCompletedDelegatorRemovalIterator is returned from FilterCompletedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRemoval events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedDelegatorRemovalIterator struct { + Event *ERC20TokenStakingManagerCompletedDelegatorRemoval // 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 @@ -1533,7 +1532,7 @@ type ERC20TokenStakingManagerCompletedValidatorRemovalIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Next() bool { +func (it *ERC20TokenStakingManagerCompletedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1542,7 +1541,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Next() bool if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorRemoval) + it.Event = new(ERC20TokenStakingManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1557,7 +1556,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Next() bool // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorRemoval) + it.Event = new(ERC20TokenStakingManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1573,51 +1572,62 @@ func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Next() bool } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Error() error { +func (it *ERC20TokenStakingManagerCompletedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Close() error { +func (it *ERC20TokenStakingManagerCompletedDelegatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// ERC20TokenStakingManagerCompletedValidatorRemoval represents a CompletedValidatorRemoval event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorRemoval struct { +// ERC20TokenStakingManagerCompletedDelegatorRemoval represents a CompletedDelegatorRemoval event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedDelegatorRemoval struct { + DelegationID [32]byte ValidationID [32]byte + Rewards *big.Int + Fees *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorRemoval is a free log retrieval operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// FilterCompletedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorRemoval(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorRemovalIterator, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedDelegatorRemovalIterator, 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, "CompletedValidatorRemoval", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerCompletedValidatorRemovalIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorRemoval", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerCompletedDelegatorRemovalIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorRemoval is a free log subscription operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// WatchCompletedDelegatorRemoval is a free log subscription operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorRemoval(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorRemoval, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedDelegatorRemoval, 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, "CompletedValidatorRemoval", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1627,8 +1637,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ERC20TokenStakingManagerCompletedValidatorRemoval) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { + event := new(ERC20TokenStakingManagerCompletedDelegatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -1649,21 +1659,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete }), nil } -// ParseCompletedValidatorRemoval is a log parse operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// ParseCompletedDelegatorRemoval is a log parse operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorRemoval(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorRemoval, error) { - event := new(ERC20TokenStakingManagerCompletedValidatorRemoval) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedDelegatorRemoval(log types.Log) (*ERC20TokenStakingManagerCompletedDelegatorRemoval, error) { + event := new(ERC20TokenStakingManagerCompletedDelegatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log return event, nil } -// ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator is returned from FilterCompletedValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for CompletedValidatorWeightUpdate events raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator struct { - Event *ERC20TokenStakingManagerCompletedValidatorWeightUpdate // Event containing the contract specifics and raw log +// ERC20TokenStakingManagerCompletedValidatorRegistrationIterator is returned from FilterCompletedValidatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedValidatorRegistration events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorRegistrationIterator struct { + Event *ERC20TokenStakingManagerCompletedValidatorRegistration // 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 @@ -1677,7 +1687,7 @@ type ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() bool { +func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1686,7 +1696,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1701,7 +1711,7 @@ func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1717,53 +1727,53 @@ func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Error() error { +func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Close() error { +func (it *ERC20TokenStakingManagerCompletedValidatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// ERC20TokenStakingManagerCompletedValidatorWeightUpdate represents a CompletedValidatorWeightUpdate event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerCompletedValidatorWeightUpdate struct { +// ERC20TokenStakingManagerCompletedValidatorRegistration represents a CompletedValidatorRegistration event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorRegistration struct { ValidationID [32]byte - Nonce uint64 + NodeID []byte Weight uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorWeightUpdate is a free log retrieval operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// FilterCompletedValidatorRegistration is a free log retrieval operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator, error) { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorRegistration(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorRegistrationIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorRegistration", validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorWeightUpdate", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerCompletedValidatorRegistrationIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorRegistration", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorWeightUpdate is a free log subscription operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// WatchCompletedValidatorRegistration is a free log subscription operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorWeightUpdate, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorRegistration(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorRegistration, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorRegistration", validationIDRule) if err != nil { return nil, err } @@ -1773,8 +1783,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { + event := new(ERC20TokenStakingManagerCompletedValidatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { return err } event.Raw = log @@ -1795,21 +1805,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchComplete }), nil } -// ParseCompletedValidatorWeightUpdate is a log parse operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// ParseCompletedValidatorRegistration is a log parse operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorWeightUpdate(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorWeightUpdate, error) { - event := new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorRegistration(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorRegistration, error) { + event := new(ERC20TokenStakingManagerCompletedValidatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// 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 +// ERC20TokenStakingManagerCompletedValidatorRemovalIterator is returned from FilterCompletedValidatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedValidatorRemoval events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorRemovalIterator struct { + Event *ERC20TokenStakingManagerCompletedValidatorRemoval // 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 @@ -1823,7 +1833,7 @@ type ERC20TokenStakingManagerDelegationEndedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerDelegationEndedIterator) Next() bool { +func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1832,7 +1842,7 @@ func (it *ERC20TokenStakingManagerDelegationEndedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegationEnded) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1847,7 +1857,7 @@ func (it *ERC20TokenStakingManagerDelegationEndedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegationEnded) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1863,62 +1873,51 @@ func (it *ERC20TokenStakingManagerDelegationEndedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerDelegationEndedIterator) Error() error { +func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerDelegationEndedIterator) Close() error { +func (it *ERC20TokenStakingManagerCompletedValidatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// ERC20TokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the ERC20TokenStakingManager contract. -type ERC20TokenStakingManagerDelegationEnded struct { - DelegationID [32]byte +// ERC20TokenStakingManagerCompletedValidatorRemoval represents a CompletedValidatorRemoval event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorRemoval struct { ValidationID [32]byte - Rewards *big.Int - Fees *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// FilterCompletedValidatorRemoval is a free log retrieval operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerDelegationEndedIterator, error) { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorRemoval(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorRemovalIterator, 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, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorRemoval", validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerDelegationEndedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerCompletedValidatorRemovalIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorRemoval", logs: logs, sub: sub}, nil } -// WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// WatchCompletedValidatorRemoval is a free log subscription operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorRemoval(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorRemoval, 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, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorRemoval", validationIDRule) if err != nil { return nil, err } @@ -1928,8 +1927,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegati 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 { + event := new(ERC20TokenStakingManagerCompletedValidatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { return err } event.Raw = log @@ -1950,21 +1949,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegati }), nil } -// ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// ParseCompletedValidatorRemoval is a log parse operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*ERC20TokenStakingManagerDelegationEnded, error) { - event := new(ERC20TokenStakingManagerDelegationEnded) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorRemoval(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorRemoval, error) { + event := new(ERC20TokenStakingManagerCompletedValidatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", 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 +// ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator is returned from FilterCompletedValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for CompletedValidatorWeightUpdate events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator struct { + Event *ERC20TokenStakingManagerCompletedValidatorWeightUpdate // 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 @@ -1978,7 +1977,7 @@ type ERC20TokenStakingManagerDelegatorAddedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Next() bool { +func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1987,7 +1986,7 @@ func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorAdded) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2002,7 +2001,7 @@ func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorAdded) + it.Event = new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2018,73 +2017,53 @@ func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Error() error { +func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerDelegatorAddedIterator) Close() error { +func (it *ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator) 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 +// ERC20TokenStakingManagerCompletedValidatorWeightUpdate represents a CompletedValidatorWeightUpdate event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerCompletedValidatorWeightUpdate struct { + ValidationID [32]byte + Nonce uint64 + Weight uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// FilterCompletedValidatorWeightUpdate is a free log retrieval operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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) { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterCompletedValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator, 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) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerDelegatorAddedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerCompletedValidatorWeightUpdateIterator{contract: _ERC20TokenStakingManager.contract, event: "CompletedValidatorWeightUpdate", logs: logs, sub: sub}, nil } -// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// WatchCompletedValidatorWeightUpdate is a free log subscription operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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) { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchCompletedValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerCompletedValidatorWeightUpdate, 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) } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) if err != nil { return nil, err } @@ -2094,8 +2073,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato 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 { + event := new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { return err } event.Raw = log @@ -2116,21 +2095,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato }), nil } -// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// ParseCompletedValidatorWeightUpdate is a log parse operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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 { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseCompletedValidatorWeightUpdate(log types.Log) (*ERC20TokenStakingManagerCompletedValidatorWeightUpdate, error) { + event := new(ERC20TokenStakingManagerCompletedValidatorWeightUpdate) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", 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 +// 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 @@ -2144,7 +2123,7 @@ type ERC20TokenStakingManagerDelegatorRegisteredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Next() bool { +func (it *ERC20TokenStakingManagerInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2153,7 +2132,7 @@ func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorRegistered) + it.Event = new(ERC20TokenStakingManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2168,7 +2147,7 @@ func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorRegistered) + it.Event = new(ERC20TokenStakingManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2184,61 +2163,41 @@ func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Error() error { +func (it *ERC20TokenStakingManagerInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerDelegatorRegisteredIterator) Close() error { +func (it *ERC20TokenStakingManagerInitializedIterator) 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 - StartTime *big.Int - Raw types.Log // Blockchain specific contextual infos +// ERC20TokenStakingManagerInitialized represents a Initialized event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerDelegatorRegisteredIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } +// Solidity: event Initialized(uint64 version) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC20TokenStakingManagerInitializedIterator, error) { - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "Initialized") if err != nil { return nil, err } - return &ERC20TokenStakingManagerDelegatorRegisteredIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRegistered, 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) - } +// 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, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "Initialized") if err != nil { return nil, err } @@ -2248,8 +2207,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato 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 { + event := new(ERC20TokenStakingManagerInitialized) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { return err } event.Raw = log @@ -2270,21 +2229,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato }), nil } -// ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*ERC20TokenStakingManagerDelegatorRegistered, error) { - event := new(ERC20TokenStakingManagerDelegatorRegistered) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { +// 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 } -// 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 +// ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator is returned from FilterInitiatedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRegistration events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator struct { + Event *ERC20TokenStakingManagerInitiatedDelegatorRegistration // 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 @@ -2298,7 +2257,7 @@ type ERC20TokenStakingManagerDelegatorRemovalInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Next() bool { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2307,7 +2266,7 @@ func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Next() bo if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorRemovalInitialized) + it.Event = new(ERC20TokenStakingManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2322,7 +2281,7 @@ func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Next() bo // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerDelegatorRemovalInitialized) + it.Event = new(ERC20TokenStakingManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2338,28 +2297,33 @@ func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Next() bo } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator) 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 - Raw types.Log // Blockchain specific contextual infos +// ERC20TokenStakingManagerInitiatedDelegatorRegistration represents a InitiatedDelegatorRegistration event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitiatedDelegatorRegistration 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 } -// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// FilterInitiatedDelegatorRegistration is a free log retrieval operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerDelegatorRemovalInitializedIterator, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitiatedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -2369,18 +2333,22 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegat 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, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerDelegatorRemovalInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerInitiatedDelegatorRegistrationIterator{contract: _ERC20TokenStakingManager.contract, event: "InitiatedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// WatchInitiatedDelegatorRegistration is a free log subscription operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitiatedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitiatedDelegatorRegistration, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -2390,8 +2358,12 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato 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, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } @@ -2401,8 +2373,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato 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 { + event := new(ERC20TokenStakingManagerInitiatedDelegatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -2423,21 +2395,21 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato }), nil } -// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// ParseInitiatedDelegatorRegistration is a log parse operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerDelegatorRemovalInitialized, error) { - event := new(ERC20TokenStakingManagerDelegatorRemovalInitialized) - if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitiatedDelegatorRegistration(log types.Log) (*ERC20TokenStakingManagerInitiatedDelegatorRegistration, error) { + event := new(ERC20TokenStakingManagerInitiatedDelegatorRegistration) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", 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 +// ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator is returned from FilterInitiatedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRemoval events raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator struct { + Event *ERC20TokenStakingManagerInitiatedDelegatorRemoval // 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 @@ -2451,7 +2423,7 @@ type ERC20TokenStakingManagerInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *ERC20TokenStakingManagerInitializedIterator) Next() bool { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2460,7 +2432,7 @@ func (it *ERC20TokenStakingManagerInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerInitialized) + it.Event = new(ERC20TokenStakingManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2475,7 +2447,7 @@ func (it *ERC20TokenStakingManagerInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(ERC20TokenStakingManagerInitialized) + it.Event = new(ERC20TokenStakingManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2491,41 +2463,60 @@ func (it *ERC20TokenStakingManagerInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC20TokenStakingManagerInitializedIterator) Error() error { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *ERC20TokenStakingManagerInitializedIterator) Close() error { +func (it *ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator) 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 +// ERC20TokenStakingManagerInitiatedDelegatorRemoval represents a InitiatedDelegatorRemoval event raised by the ERC20TokenStakingManager contract. +type ERC20TokenStakingManagerInitiatedDelegatorRemoval struct { + DelegationID [32]byte + ValidationID [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// FilterInitiatedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event Initialized(uint64 version) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC20TokenStakingManagerInitializedIterator, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitiatedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator, error) { - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "Initialized") + 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, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &ERC20TokenStakingManagerInitializedIterator{contract: _ERC20TokenStakingManager.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &ERC20TokenStakingManagerInitiatedDelegatorRemovalIterator{contract: _ERC20TokenStakingManager.contract, event: "InitiatedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// WatchInitiatedDelegatorRemoval is a free log subscription operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event Initialized(uint64 version) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialized) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitiatedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitiatedDelegatorRemoval, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "Initialized") + 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, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -2535,8 +2526,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitiali 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 { + event := new(ERC20TokenStakingManagerInitiatedDelegatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -2557,12 +2548,12 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitiali }), nil } -// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// ParseInitiatedDelegatorRemoval is a log parse operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// 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 { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitiatedDelegatorRemoval(log types.Log) (*ERC20TokenStakingManagerInitiatedDelegatorRemoval, error) { + event := new(ERC20TokenStakingManagerInitiatedDelegatorRemoval) + if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log diff --git a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go index 0d5175691..18a7469aa 100644 --- a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go +++ b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go @@ -93,19 +93,10 @@ type ValidatorMessagesValidationPeriod struct { Weight uint64 } -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID []byte - BlsPublicKey []byte - RegistrationExpiry uint64 - RemainingBalanceOwner PChainOwner - DisableOwner PChainOwner -} - // NativeTokenStakingManagerMetaData contains all meta data concerning the NativeTokenStakingManager contract. var NativeTokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_MINTER\",\"outputs\":[{\"internalType\":\"contractINativeMinter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615bce380380615bce83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615a818061014d5f395ff3fe608060405260043610610249575f3560e01c80638280a25a11610134578063ba3a4b97116100b3578063c974d1b611610078578063c974d1b6146106c2578063ce161f14146106d6578063d5f20ff614610712578063df93d8de1461073e578063fb8b11dd14610754578063fd7ac5e714610773575f80fd5b8063ba3a4b971461062a578063bb0b193814610649578063bc5fbfec1461065d578063bee0a03f14610690578063c599e24f146106af575f80fd5b8063a3a65e48116100f9578063a3a65e48146105ab578063a9778a7a1461039d578063af2f5feb146105ca578063afb98096146105dd578063b771b3bc14610610575f80fd5b80638280a25a1461051b5780638ef34c981461052f57806393e245981461054e5780639681d9401461056d5780639ae064471461058c575f80fd5b806337b9be8f116101cb57806360ad77841161019057806360ad77841461046d578063620658561461048c578063732214f8146104ab57806376f78621146104be5780637d8d2f77146104dd57806380dd672f146104fc575f80fd5b806337b9be8f146103c55780633a1cfff6146103e45780635dc1f535146104035780635dd6a6cb1461042557806360305d6214610444575f80fd5b806320d91b7a1161021157806320d91b7a146102f657806325e1c776146103155780632e2194d814610334578063329c3e121461036b57806335455ded1461039d575f80fd5b80630118acc41461024d5780630322ed981461026e5780630ba512d11461028d578063151d30d1146102ac5780631ec44724146102d7575b5f80fd5b348015610258575f80fd5b5061026c610267366004614ab4565b610792565b005b348015610279575f80fd5b5061026c610288366004614aef565b6107a3565b348015610298575f80fd5b5061026c6102a7366004614b06565b610a36565b3480156102b7575f80fd5b506102c0600a81565b60405160ff90911681526020015b60405180910390f35b3480156102e2575f80fd5b5061026c6102f1366004614ab4565b610b13565b348015610301575f80fd5b5061026c610310366004614b1d565b610b1f565b348015610320575f80fd5b5061026c61032f366004614b6b565b61108d565b34801561033f575f80fd5b5061035361034e366004614aef565b611101565b6040516001600160401b0390911681526020016102ce565b348015610376575f80fd5b506103856001600160991b0181565b6040516001600160a01b0390911681526020016102ce565b3480156103a8575f80fd5b506103b261271081565b60405161ffff90911681526020016102ce565b3480156103d0575f80fd5b5061026c6103df366004614ba0565b611155565b3480156103ef575f80fd5b5061026c6103fe366004614ab4565b611168565b34801561040e575f80fd5b50610417611174565b6040519081526020016102ce565b348015610430575f80fd5b5061026c61043f366004614ba0565b611183565b34801561044f575f80fd5b50610458601481565b60405163ffffffff90911681526020016102ce565b348015610478575f80fd5b5061026c610487366004614b6b565b61118f565b348015610497575f80fd5b506104176104a6366004614c02565b6113e0565b3480156104b6575f80fd5b506104175f81565b3480156104c9575f80fd5b5061026c6104d8366004614ab4565b611400565b3480156104e8575f80fd5b5061026c6104f7366004614ba0565b61140c565b348015610507575f80fd5b5061026c610516366004614b6b565b611418565b348015610526575f80fd5b506102c0603081565b34801561053a575f80fd5b5061026c610549366004614c1d565b61160b565b348015610559575f80fd5b5061026c610568366004614aef565b6116bc565b348015610578575f80fd5b50610417610587366004614c4b565b611750565b348015610597575f80fd5b5061026c6105a6366004614ba0565b611829565b3480156105b6575f80fd5b506104176105c5366004614c4b565b611835565b6104176105d8366004614c75565b611a30565b3480156105e8575f80fd5b506104177f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b34801561061b575f80fd5b506103856005600160991b0181565b348015610635575f80fd5b5061026c610644366004614aef565b611a64565b348015610654575f80fd5b50610353611cbd565b348015610668575f80fd5b506104177fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0081565b34801561069b575f80fd5b5061026c6106aa366004614aef565b611cdf565b6104176106bd366004614aef565b611dfb565b3480156106cd575f80fd5b506102c0601481565b3480156106e1575f80fd5b506106f56106f0366004614c4b565b611e27565b604080519283526001600160401b039091166020830152016102ce565b34801561071d575f80fd5b5061073161072c366004614aef565b611faa565b6040516102ce9190614d4b565b348015610749575f80fd5b506103536202a30081565b34801561075f575f80fd5b5061026c61076e366004614c1d565b6120f9565b34801561077e575f80fd5b5061041761078d366004614e01565b612190565b61079e8383835f6121c8565b505050565b5f6107ac6121f4565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff16908111156107e6576107e6614cd6565b60058111156107f7576107f7614cd6565b815260200160018201805461080b90614e6c565b80601f016020809104026020016040519081016040528092919081815260200182805461083790614e6c565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156108fa576108fa614cd6565b14610936575f8381526005830160205260409081902054905163170cc93360e21b815261092d9160ff1690600401614e9e565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156109ad573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109d49190810190614fa7565b6040518263ffffffff1660e01b81526004016109f09190614fd8565b6020604051808303815f875af1158015610a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a309190614fea565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610a7f575080546001600160401b03808416911610155b15610a9d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610ac783612218565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610a308383835f61222c565b5f610b286121f4565b600781015490915060ff1615610b5157604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb89190614fea565b836020013514610be1576040516372b0a7e760e11b81526020840135600482015260240161092d565b30610bf26060850160408601615001565b6001600160a01b031614610c3557610c106060840160408501615001565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161092d565b5f610c43606085018561501c565b905090505f805b828163ffffffff161015610e83575f610c66606088018861501c565b8363ffffffff16818110610c7c57610c7c615061565b9050602002810190610c8e9190615075565b610c97906150e0565b80516040519192505f916006880191610caf9161515b565b90815260200160405180910390205414610cdf57805160405163a41f772f60e01b815261092d9190600401614fd8565b5f6002885f013584604051602001610d0e92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610d289161515b565b602060405180830381855afa158015610d43573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d669190614fea565b90508086600601835f0151604051610d7e919061515b565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610dbe90826151b0565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b031990931692909217909155610e2d908561527f565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f01518460400151604051610e6892919061529f565b60405180910390a2505080610e7c906152c9565b9050610c4a565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610ec6910460ff16836152eb565b6001600160401b03161015610ef957604051633e1a785160e01b81526001600160401b038216600482015260240161092d565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610f1d87612561565b604001516040518263ffffffff1660e01b8152600401610f3d9190614fd8565b602060405180830381865af4158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c9190614fea565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610fb69190615441565b5f60405180830381865af4158015610fd0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ff79190810190614fa7565b90505f60028260405161100a919061515b565b602060405180830381855afa158015611025573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906110489190614fea565b90508281146110745760405163baaea89d60e01b8152600481018290526024810184905260440161092d565b5050506007909201805460ff1916600117905550505050565b61109682612677565b6110b6576040516330efa98b60e01b81526004810183905260240161092d565b5f6110c083611faa565b51905060028160058111156110d7576110d7614cd6565b146110f7578060405163170cc93360e21b815260040161092d9190614e9e565b610a3083836126a0565b5f8061110b61293f565b6003015461111990846154d5565b905080158061112e57506001600160401b0381115b1561114f5760405163222d164360e21b81526004810184905260240161092d565b92915050565b6111618484848461222c565b5050505050565b610a308383835f612963565b5f61117d6121f4565b54919050565b610a3084848484612baa565b5f61119861293f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156111d1576111d1614cd6565b60038111156111e2576111e2614cd6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61125882611faa565b905060018351600381111561126f5761126f614cd6565b14611290578251604051633b0d540d60e21b815261092d91906004016154f4565b6004815160058111156112a5576112a5614cd6565b036112bb576112b386612bd6565b505050505050565b8260a001516001600160401b031681608001516001600160401b03161015611359575f806112e887611e27565b9150915081841461131457846040015160405163089938b360e11b815260040161092d91815260200190565b8460a001516001600160401b0316816001600160401b0316101561135657604051632e19bc2d60e11b81526001600160401b038216600482015260240161092d565b50505b5f868152600785016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559151918252839188917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a3505050505050565b5f6113e961293f565b6003015461114f906001600160401b03841661550e565b61079e8383835f612baa565b61116184848484612963565b611420612da7565b5f61142961293f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561146257611462614cd6565b600381111561147357611473614cd6565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156114ec576114ec614cd6565b1461150d578051604051633b0d540d60e21b815261092d91906004016154f4565b5f61151b8260400151611faa565b9050600461152c8360400151611faa565b51600581111561153e5761153e614cd6565b1415801561156557508160c001516001600160401b031681608001516001600160401b0316105b156115e5575f8061157586611e27565b91509150818460400151146115a05760405163089938b360e11b81526004810183905260240161092d565b806001600160401b03168460c001516001600160401b031611156115e257604051632e19bc2d60e11b81526001600160401b038216600482015260240161092d565b50505b6115ee85612bd6565b50505061160760015f80516020615a2c83398151915255565b5050565b5f61161461293f565b90506001600160a01b0382166116485760405163caa903f960e01b81526001600160a01b038316600482015260240161092d565b5f8381526006820160205260409020546001600160a01b0316331461168e57335b604051636e2ccd7560e11b81526001600160a01b03909116600482015260240161092d565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6116c561293f565b90505f6116d183611faa565b51905060048160058111156116e8576116e8614cd6565b14611708578060405163170cc93360e21b815260040161092d9190614e9e565b5f8381526006830160205260409020546001600160a01b0316331461172d5733611669565b5f83815260068301602052604090205461079e906001600160a01b031684612df1565b5f611759612da7565b5f61176261293f565b90505f8061176f85612e1b565b9150915061177c82612677565b61178a5750915061180e9050565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b039182169116806117cc5750805b6004835160058111156117e1576117e1614cd6565b036117f0576117f08185612df1565b6118068261180185604001516113e0565b6131d0565b509193505050505b61182460015f80516020615a2c83398151915255565b919050565b610a30848484846121c8565b5f8061183f6121f4565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61186687612561565b604001516040518263ffffffff1660e01b81526004016118869190614fd8565b6040805180830381865af41580156118a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c49190615525565b91509150806118ea57604051632d07135360e01b8152811515600482015260240161092d565b5f8281526004840160205260409020805461190490614e6c565b90505f036119285760405163089938b360e11b81526004810183905260240161092d565b60015f838152600580860160205260409091205460ff169081111561194f5761194f614cd6565b14611982575f8281526005840160205260409081902054905163170cc93360e21b815261092d9160ff1690600401614e9e565b5f828152600484016020526040812061199a91614a00565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db6293611a2093600190910192600160c01b90920416906155c1565b60405180910390a2509392505050565b5f611a39612da7565b611a45848484346131e3565b9050611a5d60015f80516020615a2c83398151915255565b9392505050565b5f611a6d61293f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611aa657611aa6614cd6565b6003811115611ab757611ab7614cd6565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611b3057611b30614cd6565b14158015611b515750600381516003811115611b4e57611b4e614cd6565b14155b15611b72578051604051633b0d540d60e21b815261092d91906004016154f4565b5f611b808260400151611faa565b905080606001516001600160401b03165f03611bb2576040516339b894f960e21b81526004810185905260240161092d565b604080830151606083015160a0840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611c2093906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611c3a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c619190810190614fa7565b6040518263ffffffff1660e01b8152600401611c7d9190614fd8565b6020604051808303815f875af1158015611c99573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111619190614fea565b5f611cc66121f4565b60030154600160401b90046001600160401b0316919050565b5f611ce86121f4565b5f8381526004820160205260409020805491925090611d0690614e6c565b90505f03611d2a5760405163089938b360e11b81526004810183905260240161092d565b60015f838152600580840160205260409091205460ff1690811115611d5157611d51614cd6565b14611d84575f8281526005820160205260409081902054905163170cc93360e21b815261092d9160ff1690600401614e9e565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611dbb92016155d3565b6020604051808303815f875af1158015611dd7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079e9190614fea565b5f611e04612da7565b611e0f823334613412565b905061182460015f80516020615a2c83398151915255565b5f805f611e3384612561565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b8152600401611e739190614fd8565b606060405180830381865af4158015611e8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eb291906155e5565b9250925092505f611ec16121f4565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b909204161015611f1557604051632e19bc2d60e11b81526001600160401b038416600482015260240161092d565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff990611f9590869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b611fb2614a37565b5f611fbb6121f4565b5f84815260058083016020526040918290208251610100810190935280549394509192839160ff90911690811115611ff557611ff5614cd6565b600581111561200657612006614cd6565b815260200160018201805461201a90614e6c565b80601f016020809104026020016040519081016040528092919081815260200182805461204690614e6c565b80156120915780601f1061206857610100808354040283529160200191612091565b820191905f5260205f20905b81548152906001019060200180831161207457829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b6001600160a01b03811661212b5760405163caa903f960e01b81526001600160a01b038216600482015260240161092d565b5f61213461293f565b5f8481526007820160205260409020549091506001600160a01b036101009091041633146121625733611669565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f8061219a6121f4565b90508060060184846040516121b092919061561a565b90815260200160405180910390205491505092915050565b6121d48484848461222c565b610a3057604051631036cf9160e11b81526004810185905260240161092d565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0090565b612220613652565b6122298161369d565b50565b5f8061223661293f565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561226f5761226f614cd6565b600381111561228057612280614cd6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6122f682611faa565b905060028351600381111561230d5761230d614cd6565b1461232e578251604051633b0d540d60e21b815261092d91906004016154f4565b60208301516001600160a01b031633146123ca575f8281526006850160205260409020546001600160a01b031633146123675733611669565b5f82815260068501602052604090205460c082015161239691600160b01b90046001600160401b03169061527f565b6001600160401b03164210156123ca5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161092d565b6002815160058111156123df576123df614cd6565b036125015760028401546080840151612401916001600160401b03169061527f565b6001600160401b03164210156124355760405163fb6ce63f60e01b81526001600160401b034216600482015260240161092d565b87156124475761244582886126a0565b505b5f8981526007850160205260409020805460ff19166003179055606083015160a082015161248091849161247b9190615629565b613717565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b03909316929092179091556124c384888c6138e1565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a3151594506125599350505050565b60048151600581111561251657612516614cd6565b0361253d5761252683878b6138e1565b5061253089612bd6565b6001945050505050612559565b805160405163170cc93360e21b815261092d9190600401614e9e565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156125c5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125ec9190810190615649565b915091508061260e57604051636b2f19e960e01b815260040160405180910390fd5b815115612634578151604051636ba589a560e01b8152600481019190915260240161092d565b60208201516001600160a01b031615612670576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161092d565b5092915050565b5f8061268161293f565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156126eb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526127129190810190615649565b915091508061273457604051636b2f19e960e01b815260040160405180910390fd5b5f61273d61293f565b600581015484519192501461276b578251604051636ba589a560e01b8152600481019190915260240161092d565b60208301516001600160a01b0316156127a7576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161092d565b60208301516001600160a01b0316156127e3576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161092d565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016128209190614fd8565b6040805180830381865af415801561283a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285e91906156d9565b915091508188146128855760405163089938b360e11b81526004810189905260240161092d565b5f8881526006840160205260409020600101546001600160401b039081169082161115612916575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2612934565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f8061296d61293f565b905061297886613acf565b5f61298287611faa565b905061298d87612677565b61299c57600192505050612559565b5f8781526006830160205260409020546001600160a01b031633146129c15733611669565b5f87815260068301602052604090205460c08201516129f091600160b01b90046001600160401b03169061527f565b6001600160401b03168160e001516001600160401b03161015612a375760e081015160405163fb6ce63f60e01b81526001600160401b03909116600482015260240161092d565b5f8615612a4f57612a4888876126a0565b9050612a6d565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f90612a92906113e0565b60c086015160e0808801516040519185901b6001600160e01b031916825260048201939093526001600160401b0391821660248201819052604482015291811660648301528516608482015260a401602060405180830381865afa158015612afc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b209190614fea565b90506001600160a01b038616612b4c575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612b6b9084906156fc565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b612bb684848484612963565b610a3057604051635bff683f60e11b81526004810185905260240161092d565b5f612bdf61293f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612c1857612c18614cd6565b6003811115612c2957612c29614cd6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612c9d613dba565b8260800151612cac919061527f565b6001600160401b0316421015612ce05760405163fb6ce63f60e01b81526001600160401b034216600482015260240161092d565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680612d3b575060208201515b5f80612d48838886613dd5565b91509150612d61856020015161180187606001516113e0565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f80516020615a2c833981519152805460011901612dd857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f80516020615a2c83398151915255565b5f612dfa61293f565b5f838152600a8201602052604081208054919055909150610a308482613e82565b5f612e24614a37565b5f612e2d6121f4565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612e5488612561565b604001516040518263ffffffff1660e01b8152600401612e749190614fd8565b6040805180830381865af4158015612e8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb29190615525565b915091508015612ed957604051632d07135360e01b8152811515600482015260240161092d565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff90911690811115612f1157612f11614cd6565b6005811115612f2257612f22614cd6565b8152602001600182018054612f3690614e6c565b80601f0160208091040260200160405190810160405280929190818152602001828054612f6290614e6c565b8015612fad5780601f10612f8457610100808354040283529160200191612fad565b820191905f5260205f20905b815481529060010190602001808311612f9057829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c0909101529091508151600581111561302557613025614cd6565b14158015613046575060018151600581111561304357613043614cd6565b14155b1561306757805160405163170cc93360e21b815261092d9190600401614e9e565b60038151600581111561307c5761307c614cd6565b0361308a576004815261308f565b600581525b8360060181602001516040516130a5919061515b565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff19169060019084908111156130e8576130e8614cd6565b02179055506020820151600182019061310190826151b0565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b6116076001600160a01b03831682613ee0565b5f806131ed61293f565b600281015490915061ffff600160401b90910481169086161080613216575061271061ffff8616115b1561323a57604051635f12e6c360e11b815261ffff8616600482015260240161092d565b60028101546001600160401b039081169085161015613276576040516202a06d60e11b81526001600160401b038516600482015260240161092d565b80548310806132885750806001015483115b156132a95760405163222d164360e21b81526004810184905260240161092d565b825f6132b482611101565b90505f61337b6132c48a8061570f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506133059250505060208c018c61570f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506133499250505060608d0160408e01614c02565b61335660608e018e615751565b61335f90615765565b61336c60808f018f615751565b61337590615765565b87613f73565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f8061341c61293f565b90505f61342884611101565b90505f61343487611faa565b905061343f87612677565b61345f576040516330efa98b60e01b81526004810188905260240161092d565b60028151600581111561347457613474614cd6565b1461349557805160405163170cc93360e21b815261092d9190600401614e9e565b5f828260a001516134a6919061527f565b905083600201600a9054906101000a90046001600160401b031682604001516134cf91906152eb565b6001600160401b0316816001600160401b0316111561350c57604051636d51fe0560e11b81526001600160401b038216600482015260240161092d565b5f806135188a84613717565b915091505f8a8360405160200161354692919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661369b57604051631afcd79f60e31b815260040160405180910390fd5b565b6136a5613652565b6136ae8161432c565b6136b6614345565b612229606082013560808301356136d360c0850160a08601614c02565b6136e360e0860160c0870161582c565b6136f4610100870160e08801615845565b61010087013561370c61014089016101208a01615001565b886101400135614355565b5f805f6137226121f4565b5f868152600582016020526040902060020154909150600160c01b90046001600160401b03166137528582614517565b5f61375c87614784565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613800573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526138279190810190614fa7565b6040518263ffffffff1660e01b81526004016138439190614fd8565b6020604051808303815f875af115801561385f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138839190614fea565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b5f806138eb61293f565b90505f6138fb8660400151611faa565b90505f60038251600581111561391357613913614cd6565b1480613931575060048251600581111561392f5761392f614cd6565b145b15613941575060e081015161397e565b60028251600581111561395657613956614cd6565b0361396257504261397e565b815160405163170cc93360e21b815261092d9190600401614e9e565b86608001516001600160401b0316816001600160401b0316116139a6575f9350505050611a5d565b600483015460608801515f916001600160a01b031690634f22429f906139cb906113e0565b60c086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa158015613a4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a709190614fea565b90506001600160a01b038716613a8857876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b5f613ad86121f4565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff1690811115613b1257613b12614cd6565b6005811115613b2357613b23614cd6565b8152602001600182018054613b3790614e6c565b80601f0160208091040260200160405190810160405280929190818152602001828054613b6390614e6c565b8015613bae5780601f10613b8557610100808354040283529160200191613bae565b820191905f5260205f20905b815481529060010190602001808311613b9157829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c09091015290915081516005811115613c2657613c26614cd6565b14613c59575f8381526005830160205260409081902054905163170cc93360e21b815261092d9160ff1690600401614e9e565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff1916906001908490811115613c9e57613c9e614cd6565b021790555060208201516001820190613cb790826151b0565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f613d578482613717565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a0015142604051613dac939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b5f613dc36121f4565b600101546001600160401b0316919050565b5f805f613de061293f565b5f86815260088201602052604081208054908290559192509081908015613e74575f87815260068501602052604090205461271090613e2a90600160a01b900461ffff168361550e565b613e3491906154d5565b91508184600a015f8981526020019081526020015f205f828254613e5891906156fc565b90915550613e6890508282615865565b9250613e748984613e82565b509097909650945050505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613ece575f80fd5b505af11580156112b3573d5f803e3d5ffd5b80471015613f035760405163cd78605960e01b815230600482015260240161092d565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613f4c576040519150601f19603f3d011682016040523d82523d5f602084013e613f51565b606091505b505090508061079e57604051630a12f52160e11b815260040160405180910390fd5b5f613f7c6121f4565b6007015460ff16613fa057604051637fab81e560e01b815260040160405180910390fd5b5f613fa96121f4565b905042866001600160401b0316111580613fd85750613fcb6202a300426156fc565b866001600160401b031610155b1561400157604051635879da1360e11b81526001600160401b038716600482015260240161092d565b60038101546001600160401b039061402490600160401b900482168583166156fc565b111561404e57604051633e1a785160e01b81526001600160401b038416600482015260240161092d565b614057856147ed565b614060846147ed565b86516030146140875786516040516326475b2f60e11b815260040161092d91815260200190565b87515f036140aa5787604051633e08a12560e11b815260040161092d9190614fd8565b5f801b81600601896040516140bf919061515b565b908152602001604051809103902054146140ee578760405163a41f772f60e01b815260040161092d9190614fd8565b6140f8835f614517565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b815260040161417891906158de565b5f60405180830381865af4158015614192573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141b99190810190615995565b5f828152600486016020526040902091935091506141d782826151b0565b5081836006018b6040516141eb919061515b565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90614227908590600401614fd8565b6020604051808303815f875af1158015614243573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142679190614fea565b5f8481526005860160205260409020805460ff191660019081178255919250016142918c826151b0565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf90614315908e9085908e908c906159d8565b60405180910390a250909998505050505050505050565b614334613652565b61433c61490c565b61222981614914565b61434d613652565b61369b6149f8565b61435d613652565b5f61436661293f565b905061ffff8616158061437e575061271061ffff8716115b156143a257604051635f12e6c360e11b815261ffff8716600482015260240161092d565b878911156143c65760405163222d164360e21b8152600481018a905260240161092d565b60ff851615806143d95750600a60ff8616115b156143fc5760405163170db35960e31b815260ff8616600482015260240161092d565b614404613dba565b6001600160401b0316876001600160401b03161015614440576040516202a06d60e11b81526001600160401b038816600482015260240161092d565b835f036144605760405163a733007160e01b815260040160405180910390fd5b8161448157604051632f6bd1db60e01b81526004810183905260240161092d565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f6145206121f4565b90505f826001600160401b0316846001600160401b0316111561454e576145478385615629565b905061455b565b6145588484615629565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806145c85750600184015481516145c4916001600160401b0316906156fc565b8210155b156145f0576001600160401b038084166060830152828252604082015116602082015261460f565b8281606001818151614602919061527f565b6001600160401b03169052505b606081015161461f9060646152eb565b602082015160018601546001600160401b03929092169161464a9190600160401b900460ff166152eb565b6001600160401b0316101561468357606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161092d565b8581604001818151614695919061527f565b6001600160401b03169052506040810180518691906146b5908390615629565b6001600160401b0316905250600184015460408201516064916146e391600160401b90910460ff16906152eb565b6001600160401b0316101561471c576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161092d565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8061478e6121f4565b5f84815260058201602052604090206002018054919250906008906147c290600160401b90046001600160401b0316615a10565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b805163ffffffff16158015614806575060208101515115155b1561483a57805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161092d565b602081015151815163ffffffff16111561487d57805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161092d565b60015b81602001515181101561160757602082015161489d600183615865565b815181106148ad576148ad615061565b60200260200101516001600160a01b0316826020015182815181106148d4576148d4615061565b60200260200101516001600160a01b0316101561490457604051630dbc8d5f60e31b815260040160405180910390fd5b600101614880565b61369b613652565b61491c613652565b5f6149256121f4565b823581559050601461493d6060840160408501615845565b60ff16118061495c57506149576060830160408401615845565b60ff16155b15614990576149716060830160408401615845565b604051634a59bbff60e11b815260ff909116600482015260240161092d565b6149a06060830160408401615845565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556149d16040830160208401614c02565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612dde613652565b508054614a0c90614e6c565b5f825580601f10614a1b575050565b601f0160209004905f5260205f20908101906122299190614a7c565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b80821115614a90575f8155600101614a7d565b5090565b8015158114612229575f80fd5b803563ffffffff81168114611824575f80fd5b5f805f60608486031215614ac6575f80fd5b833592506020840135614ad881614a94565b9150614ae660408501614aa1565b90509250925092565b5f60208284031215614aff575f80fd5b5035919050565b5f6101608284031215614b17575f80fd5b50919050565b5f8060408385031215614b2e575f80fd5b82356001600160401b03811115614b43575f80fd5b830160808186031215614b54575f80fd5b9150614b6260208401614aa1565b90509250929050565b5f8060408385031215614b7c575f80fd5b82359150614b6260208401614aa1565b6001600160a01b0381168114612229575f80fd5b5f805f8060808587031215614bb3575f80fd5b843593506020850135614bc581614a94565b9250614bd360408601614aa1565b91506060850135614be381614b8c565b939692955090935050565b6001600160401b0381168114612229575f80fd5b5f60208284031215614c12575f80fd5b8135611a5d81614bee565b5f8060408385031215614c2e575f80fd5b823591506020830135614c4081614b8c565b809150509250929050565b5f60208284031215614c5b575f80fd5b611a5d82614aa1565b803561ffff81168114611824575f80fd5b5f805f60608486031215614c87575f80fd5b83356001600160401b03811115614c9c575f80fd5b840160a08187031215614cad575f80fd5b9250614cbb60208501614c64565b91506040840135614ccb81614bee565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614cfa57614cfa614cd6565b9052565b5f5b83811015614d18578181015183820152602001614d00565b50505f910152565b5f8151808452614d37816020860160208601614cfe565b601f01601f19169290920160200192915050565b60208152614d5d602082018351614cea565b5f6020830151610100806040850152614d7a610120850183614d20565b915060408501516001600160401b03808216606087015280606088015116608087015250506080850151614db960a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b5f8060208385031215614e12575f80fd5b82356001600160401b0380821115614e28575f80fd5b818501915085601f830112614e3b575f80fd5b813581811115614e49575f80fd5b866020828501011115614e5a575f80fd5b60209290920196919550909350505050565b600181811c90821680614e8057607f821691505b602082108103614b1757634e487b7160e01b5f52602260045260245ffd5b6020810161114f8284614cea565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614ee257614ee2614eac565b60405290565b604080519081016001600160401b0381118282101715614ee257614ee2614eac565b604051601f8201601f191681016001600160401b0381118282101715614f3257614f32614eac565b604052919050565b5f6001600160401b03821115614f5257614f52614eac565b50601f01601f191660200190565b5f82601f830112614f6f575f80fd5b8151614f82614f7d82614f3a565b614f0a565b818152846020838601011115614f96575f80fd5b612559826020830160208701614cfe565b5f60208284031215614fb7575f80fd5b81516001600160401b03811115614fcc575f80fd5b61255984828501614f60565b602081525f611a5d6020830184614d20565b5f60208284031215614ffa575f80fd5b5051919050565b5f60208284031215615011575f80fd5b8135611a5d81614b8c565b5f808335601e19843603018112615031575f80fd5b8301803591506001600160401b0382111561504a575f80fd5b6020019150600581901b36038213156138da575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615089575f80fd5b9190910192915050565b5f82601f8301126150a2575f80fd5b81356150b0614f7d82614f3a565b8181528460208386010111156150c4575f80fd5b816020850160208301375f918101602001919091529392505050565b5f606082360312156150f0575f80fd5b6150f8614ec0565b82356001600160401b038082111561510e575f80fd5b61511a36838701615093565b8352602085013591508082111561512f575f80fd5b5061513c36828601615093565b602083015250604083013561515081614bee565b604082015292915050565b5f8251615089818460208701614cfe565b601f82111561079e57805f5260205f20601f840160051c810160208510156151915750805b601f840160051c820191505b81811015611161575f815560010161519d565b81516001600160401b038111156151c9576151c9614eac565b6151dd816151d78454614e6c565b8461516c565b602080601f831160018114615210575f84156151f95750858301515b5f19600386901b1c1916600185901b1785556112b3565b5f85815260208120601f198616915b8281101561523e5788860151825594840194600190910190840161521f565b508582101561525b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156126705761267061526b565b604081525f6152b16040830185614d20565b90506001600160401b03831660208301529392505050565b5f63ffffffff8083168181036152e1576152e161526b565b6001019392505050565b6001600160401b0381811683821602808216919082811461530e5761530e61526b565b505092915050565b5f808335601e1984360301811261532b575f80fd5b83016020810192503590506001600160401b03811115615349575f80fd5b8036038213156138da575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561543457848303601f19018952813536889003605e190181126153bb575f80fd5b870160606153c98280615316565b8287526153d98388018284615357565b925050506153e986830183615316565b868303888801526153fb838284615357565b92505050604080830135925061541083614bee565b6001600160401b039290921694909101939093529783019790830190600101615396565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561546581614b8c565b6001600160a01b031660608381019190915283013536849003601e1901811261548c575f80fd5b83016020810190356001600160401b038111156154a7575f80fd5b8060051b36038213156154b8575f80fd5b6080808501526154cc60a08501828461537f565b95945050505050565b5f826154ef57634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061550857615508614cd6565b91905290565b808202811582820484141761114f5761114f61526b565b5f8060408385031215615536575f80fd5b825191506020830151614c4081614a94565b5f815461555481614e6c565b808552602060018381168015615571576001811461558b576155b6565b60ff1985168884015283151560051b8801830195506155b6565b865f52825f205f5b858110156155ae5781548a8201860152908301908401615593565b890184019650505b505050505092915050565b604081525f6152b16040830185615548565b602081525f611a5d6020830184615548565b5f805f606084860312156155f7575f80fd5b83519250602084015161560981614bee565b6040850151909250614ccb81614bee565b818382375f9101908152919050565b6001600160401b038281168282160390808211156126705761267061526b565b5f806040838503121561565a575f80fd5b82516001600160401b0380821115615670575f80fd5b9084019060608287031215615683575f80fd5b61568b614ec0565b82518152602083015161569d81614b8c565b60208201526040830151828111156156b3575f80fd5b6156bf88828601614f60565b6040830152508094505050506020830151614c4081614a94565b5f80604083850312156156ea575f80fd5b825191506020830151614c4081614bee565b8082018082111561114f5761114f61526b565b5f808335601e19843603018112615724575f80fd5b8301803591506001600160401b0382111561573d575f80fd5b6020019150368190038213156138da575f80fd5b5f8235603e19833603018112615089575f80fd5b5f60408236031215615775575f80fd5b61577d614ee8565b61578683614aa1565b81526020808401356001600160401b03808211156157a2575f80fd5b9085019036601f8301126157b4575f80fd5b8135818111156157c6576157c6614eac565b8060051b91506157d7848301614f0a565b81815291830184019184810190368411156157f0575f80fd5b938501935b8385101561581a578435925061580a83614b8c565b82825293850193908501906157f5565b94860194909452509295945050505050565b5f6020828403121561583c575f80fd5b611a5d82614c64565b5f60208284031215615855575f80fd5b813560ff81168114611a5d575f80fd5b8181038181111561114f5761114f61526b565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158d35784516001600160a01b031682529383019360019290920191908301906158aa565b509695505050505050565b60208152815160208201525f602083015160e06040840152615904610100840182614d20565b90506040840151601f19808584030160608601526159228383614d20565b92506001600160401b03606087015116608086015260808601519150808584030160a08601526159528383615878565b925060a08601519150808584030160c0860152506159708282615878565b91505060c084015161598d60e08501826001600160401b03169052565b509392505050565b5f80604083850312156159a6575f80fd5b8251915060208301516001600160401b038111156159c2575f80fd5b6159ce85828601614f60565b9150509250929050565b608081525f6159ea6080830187614d20565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b5f6001600160401b038083168181036152e1576152e161526b56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220fefa8a178e8407d7ad158aabc54689418e8ddd5f996bf78177d3f37d09d805b164736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_MINTER\",\"outputs\":[{\"internalType\":\"contractINativeMinter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initiateDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"initiateValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615b51380380615b5183398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615a048061014d5f395ff3fe608060405260043610610249575f3560e01c80638af5499e11610134578063bb0b1938116100b3578063cc71bbba11610078578063cc71bbba146106b7578063ce161f14146106d6578063d5f20ff614610712578063df93d8de1461073e578063fb8b11dd14610754578063fd7ac5e714610773575f80fd5b8063bb0b19381461062a578063bc5fbfec1461063e578063bee0a03f14610671578063c974d1b614610690578063cacd9755146106a4575f80fd5b8063a9778a7a116100f9578063a9778a7a1461041b578063aac80c391461059f578063afb98096146105be578063b2c1712e146105f1578063b771b3bc14610610575f80fd5b80638af5499e146105045780638ef34c981461052357806393e24598146105425780639681d94014610561578063a3a65e4814610580575f80fd5b80632aa56638116101cb5780635dc1f535116101905780635dc1f5351461046257806360305d621461047657806360ad77841461049f57806362065856146104be578063732214f8146104dd5780638280a25a146104f0575f80fd5b80632aa56638146103935780632e2194d8146103b2578063329c3e12146103e957806335455ded1461041b5780634b396bcc14610443575f80fd5b806320d91b7a1161021157806320d91b7a146102f6578063245dafcb1461031557806325e1c77614610334578063264dc6031461035357806327bf60cd14610374575f80fd5b80630322ed981461024d5780630ba512d11461026e578063134096451461028d578063151d30d1146102ac57806316679564146102d7575b5f80fd5b348015610258575f80fd5b5061026c6102673660046149e1565b610792565b005b348015610279575f80fd5b5061026c6102883660046149f8565b610a25565b348015610298575f80fd5b5061026c6102a7366004614a22565b610b02565b3480156102b7575f80fd5b506102c0600a81565b60405160ff90911681526020015b60405180910390f35b3480156102e2575f80fd5b5061026c6102f1366004614a59565b610cf5565b348015610301575f80fd5b5061026c610310366004614a94565b610d01565b348015610320575f80fd5b5061026c61032f3660046149e1565b61126f565b34801561033f575f80fd5b5061026c61034e366004614a22565b6114cf565b610366610361366004614cec565b611543565b6040519081526020016102ce565b34801561037f575f80fd5b5061026c61038e366004614a59565b61157f565b34801561039e575f80fd5b5061026c6103ad366004614a59565b61158b565b3480156103bd575f80fd5b506103d16103cc3660046149e1565b61159c565b6040516001600160401b0390911681526020016102ce565b3480156103f4575f80fd5b506104036001600160991b0181565b6040516001600160a01b0390911681526020016102ce565b348015610426575f80fd5b5061043061271081565b60405161ffff90911681526020016102ce565b34801561044e575f80fd5b5061026c61045d366004614dc1565b6115f0565b34801561046d575f80fd5b506103666115fc565b348015610481575f80fd5b5061048a601481565b60405163ffffffff90911681526020016102ce565b3480156104aa575f80fd5b5061026c6104b9366004614a22565b61160b565b3480156104c9575f80fd5b506103666104d8366004614e0f565b61185c565b3480156104e8575f80fd5b506103665f81565b3480156104fb575f80fd5b506102c0603081565b34801561050f575f80fd5b5061026c61051e366004614dc1565b61187c565b34801561052e575f80fd5b5061026c61053d366004614e2a565b611888565b34801561054d575f80fd5b5061026c61055c3660046149e1565b611939565b34801561056c575f80fd5b5061036661057b366004614e58565b6119cd565b34801561058b575f80fd5b5061036661059a366004614e58565b611aa6565b3480156105aa575f80fd5b5061026c6105b9366004614dc1565b611ca1565b3480156105c9575f80fd5b506103667f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b3480156105fc575f80fd5b5061026c61060b366004614a59565b611cad565b34801561061b575f80fd5b506104036005600160991b0181565b348015610635575f80fd5b506103d1611cb9565b348015610649575f80fd5b506103667fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0081565b34801561067c575f80fd5b5061026c61068b3660046149e1565b611cdb565b34801561069b575f80fd5b506102c0601481565b6103666106b23660046149e1565b611df7565b3480156106c2575f80fd5b5061026c6106d1366004614dc1565b611e23565b3480156106e1575f80fd5b506106f56106f0366004614e58565b611e2f565b604080519283526001600160401b039091166020830152016102ce565b34801561071d575f80fd5b5061073161072c3660046149e1565b611fb2565b6040516102ce9190614ee6565b348015610749575f80fd5b506103d16202a30081565b34801561075f575f80fd5b5061026c61076e366004614e2a565b612101565b34801561077e575f80fd5b5061036661078d366004614f9c565b612198565b5f61079b6121d0565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff16908111156107d5576107d5614e71565b60058111156107e6576107e6614e71565b81526020016001820180546107fa90615007565b80601f016020809104026020016040519081016040528092919081815260200182805461082690615007565b80156108715780601f1061084857610100808354040283529160200191610871565b820191905f5260205f20905b81548152906001019060200180831161085457829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156108e9576108e9614e71565b14610925575f8381526005830160205260409081902054905163170cc93360e21b815261091c9160ff1690600401615039565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561099c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109c39190810190615089565b6040518263ffffffff1660e01b81526004016109df91906150ba565b6020604051808303815f875af11580156109fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1f91906150cc565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610a6e575080546001600160401b03808416911610155b15610a8c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610ab6836121f4565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610b0a612208565b5f610b1361223f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115610b4c57610b4c614e71565b6003811115610b5d57610b5d614e71565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101529050600381516003811115610bd657610bd6614e71565b14610bf7578051604051633b0d540d60e21b815261091c91906004016150e3565b5f610c058260400151611fb2565b90506004610c168360400151611fb2565b516005811115610c2857610c28614e71565b14158015610c4f57508160c001516001600160401b031681608001516001600160401b0316105b15610ccf575f80610c5f86611e2f565b9150915081846040015114610c8a5760405163089938b360e11b81526004810183905260240161091c565b806001600160401b03168460c001516001600160401b03161115610ccc57604051632e19bc2d60e11b81526001600160401b038216600482015260240161091c565b50505b610cd885612263565b505050610cf160015f805160206159af83398151915255565b5050565b610a1f8383835f612447565b5f610d0a6121d0565b600781015490915060ff1615610d3357604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9a91906150cc565b836020013514610dc3576040516372b0a7e760e11b81526020840135600482015260240161091c565b30610dd460608501604086016150fd565b6001600160a01b031614610e1757610df260608401604085016150fd565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161091c565b5f610e256060850185615118565b905090505f805b828163ffffffff161015611065575f610e486060880188615118565b8363ffffffff16818110610e5e57610e5e61515d565b9050602002810190610e709190615171565b610e799061518f565b80516040519192505f916006880191610e919161520a565b90815260200160405180910390205414610ec157805160405163a41f772f60e01b815261091c91906004016150ba565b5f6002885f013584604051602001610ef092919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610f0a9161520a565b602060405180830381855afa158015610f25573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610f4891906150cc565b90508086600601835f0151604051610f60919061520a565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610fa0908261525f565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b03199093169290921790915561100f908561532e565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f0151846040015160405161104a92919061534e565b60405180910390a250508061105e90615378565b9050610e2c565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b03841681029190911790915560018401546064916110a8910460ff168361539a565b6001600160401b031610156110db57604051633e1a785160e01b81526001600160401b038216600482015260240161091c565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846110ff8761268e565b604001516040518263ffffffff1660e01b815260040161111f91906150ba565b602060405180830381865af415801561113a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115e91906150cc565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b815260040161119891906154f0565b5f60405180830381865af41580156111b2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111d99190810190615089565b90505f6002826040516111ec919061520a565b602060405180830381855afa158015611207573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061122a91906150cc565b90508281146112565760405163baaea89d60e01b8152600481018290526024810184905260440161091c565b5050506007909201805460ff1916600117905550505050565b5f61127861223f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156112b1576112b1614e71565b60038111156112c2576112c2614e71565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101529091508151600381111561133b5761133b614e71565b1415801561135c575060038151600381111561135957611359614e71565b14155b1561137d578051604051633b0d540d60e21b815261091c91906004016150e3565b5f61138b8260400151611fb2565b905080606001516001600160401b03165f036113bd576040516339b894f960e21b81526004810185905260240161091c565b604080830151606083015160a0840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f9361142b93906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611445573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261146c9190810190615089565b6040518263ffffffff1660e01b815260040161148891906150ba565b6020604051808303815f875af11580156114a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c891906150cc565b5050505050565b6114d8826127a4565b6114f8576040516330efa98b60e01b81526004810183905260240161091c565b5f61150283611fb2565b519050600281600581111561151957611519614e71565b14611539578060405163170cc93360e21b815260040161091c9190615039565b610a1f83836127cd565b5f61154c612208565b61155c8888888888888834612a69565b905061157460015f805160206159af83398151915255565b979650505050505050565b610a1f8383835f612be6565b6115978383835f612f13565b505050565b5f806115a661223f565b600301546115b49084615584565b90508015806115c957506001600160401b0381115b156115ea5760405163222d164360e21b81526004810184905260240161091c565b92915050565b6114c884848484612447565b5f6116056121d0565b54919050565b5f61161461223f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561164d5761164d614e71565b600381111561165e5761165e614e71565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6116d482611fb2565b90506001835160038111156116eb576116eb614e71565b1461170c578251604051633b0d540d60e21b815261091c91906004016150e3565b60048151600581111561172157611721614e71565b036117375761172f86612263565b505050505050565b8260a001516001600160401b031681608001516001600160401b031610156117d5575f8061176487611e2f565b9150915081841461179057846040015160405163089938b360e11b815260040161091c91815260200190565b8460a001516001600160401b0316816001600160401b031610156117d257604051632e19bc2d60e11b81526001600160401b038216600482015260240161091c565b50505b5f868152600785016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559151918252839188917f3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa910160405180910390a3505050505050565b5f61186561223f565b600301546115ea906001600160401b0384166155a3565b610a1f84848484612f13565b5f61189161223f565b90506001600160a01b0382166118c55760405163caa903f960e01b81526001600160a01b038316600482015260240161091c565b5f8381526006820160205260409020546001600160a01b0316331461190b57335b604051636e2ccd7560e11b81526001600160a01b03909116600482015260240161091c565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f61194261223f565b90505f61194e83611fb2565b519050600481600581111561196557611965614e71565b14611985578060405163170cc93360e21b815260040161091c9190615039565b5f8381526006830160205260409020546001600160a01b031633146119aa57336118e6565b5f838152600683016020526040902054611597906001600160a01b031684612f3f565b5f6119d6612208565b5f6119df61223f565b90505f806119ec85612f69565b915091506119f9826127a4565b611a0757509150611a8b9050565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680611a495750805b600483516005811115611a5e57611a5e614e71565b03611a6d57611a6d8185612f3f565b611a8382611a7e856040015161185c565b61331e565b509193505050505b611aa160015f805160206159af83398151915255565b919050565b5f80611ab06121d0565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f611ad78761268e565b604001516040518263ffffffff1660e01b8152600401611af791906150ba565b6040805180830381865af4158015611b11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3591906155ba565b9150915080611b5b57604051632d07135360e01b8152811515600482015260240161091c565b5f82815260048401602052604090208054611b7590615007565b90505f03611b995760405163089938b360e11b81526004810183905260240161091c565b60015f838152600580860160205260409091205460ff1690811115611bc057611bc0614e71565b14611bf3575f8281526005840160205260409081902054905163170cc93360e21b815261091c9160ff1690600401615039565b5f8281526004840160205260408120611c0b9161494d565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db6293611c9193600190910192600160c01b9092041690615656565b60405180910390a2509392505050565b6114c884848484612be6565b6115978383835f613331565b5f611cc26121d0565b60030154600160401b90046001600160401b0316919050565b5f611ce46121d0565b5f8381526004820160205260409020805491925090611d0290615007565b90505f03611d265760405163089938b360e11b81526004810183905260240161091c565b60015f838152600580840160205260409091205460ff1690811115611d4d57611d4d614e71565b14611d80575f8281526005820160205260409081902054905163170cc93360e21b815261091c9160ff1690600401615039565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611db79201615668565b6020604051808303815f875af1158015611dd3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159791906150cc565b5f611e00612208565b611e0b82333461335d565b9050611aa160015f805160206159af83398151915255565b610a1f84848484613331565b5f805f611e3b8461268e565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b8152600401611e7b91906150ba565b606060405180830381865af4158015611e96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eba919061567a565b9250925092505f611ec96121d0565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b909204161015611f1d57604051632e19bc2d60e11b81526001600160401b038416600482015260240161091c565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff990611f9d90869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b611fba614984565b5f611fc36121d0565b5f84815260058083016020526040918290208251610100810190935280549394509192839160ff90911690811115611ffd57611ffd614e71565b600581111561200e5761200e614e71565b815260200160018201805461202290615007565b80601f016020809104026020016040519081016040528092919081815260200182805461204e90615007565b80156120995780601f1061207057610100808354040283529160200191612099565b820191905f5260205f20905b81548152906001019060200180831161207c57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b6001600160a01b0381166121335760405163caa903f960e01b81526001600160a01b038216600482015260240161091c565b5f61213c61223f565b5f8481526007820160205260409020549091506001600160a01b0361010090910416331461216a57336118e6565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f806121a26121d0565b90508060060184846040516121b89291906156ba565b90815260200160405180910390205491505092915050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0090565b6121fc61359f565b612205816135ea565b50565b5f805160206159af83398151915280546001190161223957604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f61226c61223f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156122a5576122a5614e71565b60038111156122b6576122b6614e71565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015281015190915061232a613664565b8260800151612339919061532e565b6001600160401b031642101561236d5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161091c565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b0316806123c8575060208201515b5f806123d583888661367f565b915091506123ee8560200151611a7e876060015161185c565b6040805183815260208101839052859189917f5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e910160405180910390a350505050505050565b60015f805160206159af83398151915255565b5f8061245161223f565b905061245c8661372c565b5f61246687611fb2565b9050612471876127a4565b61248057600192505050612686565b5f8781526006830160205260409020546001600160a01b031633146124a557336118e6565b5f87815260068301602052604090205460c08201516124d491600160b01b90046001600160401b03169061532e565b6001600160401b03168160e001516001600160401b0316101561251b5760e081015160405163fb6ce63f60e01b81526001600160401b03909116600482015260240161091c565b5f86156125335761252c88876127cd565b9050612551565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906125769061185c565b60c086015160e0808801516040519185901b6001600160e01b031916825260048201939093526001600160401b0391821660248201819052604482015291811660648301528516608482015260a401602060405180830381865afa1580156125e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260491906150cc565b90506001600160a01b038616612630575f8981526006850160205260409020546001600160a01b031695505b5f898152600a850160205260408120805483929061264f9084906156c9565b90915550505f898152600b94909401602052604090932080546001600160a01b0319166001600160a01b0387161790555050151590505b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156126f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261271991908101906156dc565b915091508061273b57604051636b2f19e960e01b815260040160405180910390fd5b815115612761578151604051636ba589a560e01b8152600481019190915260240161091c565b60208201516001600160a01b03161561279d576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161091c565b5092915050565b5f806127ae61223f565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612818573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261283f91908101906156dc565b915091508061286157604051636b2f19e960e01b815260040160405180910390fd5b5f61286a61223f565b6005810154845191925014612898578251604051636ba589a560e01b8152600481019190915260240161091c565b60208301516001600160a01b0316156128d4576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161091c565b60208301516001600160a01b031615612910576020830151604051624de75d60e31b81526001600160a01b03909116600482015260240161091c565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b815260040161294d91906150ba565b6040805180830381865af4158015612967573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061298b919061576c565b915091508188146129b25760405163089938b360e11b81526004810189905260240161091c565b5f8881526006840160205260409020600101546001600160401b039081169082161115612a43575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2611574565b50505f95865260060160205250506040909220600101546001600160401b031692915050565b5f80612a7361223f565b600281015490915061ffff600160401b90910481169086161080612a9c575061271061ffff8616115b15612ac057604051635f12e6c360e11b815261ffff8616600482015260240161091c565b60028101546001600160401b039081169085161015612afc576040516202a06d60e11b81526001600160401b038516600482015260240161091c565b8054831080612b0e5750806001015483115b15612b2f5760405163222d164360e21b81526004810184905260240161091c565b825f612b3a8261159c565b90505f612b4b8d8d8d8d8d87613a17565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b03191690961790955550939998505050505050505050565b5f80612bf061223f565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612c2957612c29614e71565b6003811115612c3a57612c3a614e71565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f612cb082611fb2565b9050600283516003811115612cc757612cc7614e71565b14612ce8578251604051633b0d540d60e21b815261091c91906004016150e3565b60208301516001600160a01b03163314612d84575f8281526006850160205260409020546001600160a01b03163314612d2157336118e6565b5f82815260068501602052604090205460c0820151612d5091600160b01b90046001600160401b03169061532e565b6001600160401b0316421015612d845760405163fb6ce63f60e01b81526001600160401b034216600482015260240161091c565b600281516005811115612d9957612d99614e71565b03612ebb5760028401546080840151612dbb916001600160401b03169061532e565b6001600160401b0316421015612def5760405163fb6ce63f60e01b81526001600160401b034216600482015260240161091c565b8715612e0157612dff82886127cd565b505b5f8981526007850160205260409020805460ff19166003179055606083015160a0820151612e3a918491612e35919061578f565b613dd0565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b0390931692909217909155612e7d84888c613f9a565b9050828a7f5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf60405160405180910390a3151594506126869350505050565b600481516005811115612ed057612ed0614e71565b03612ef757612ee083878b613f9a565b50612eea89612263565b6001945050505050612686565b805160405163170cc93360e21b815261091c9190600401615039565b612f1f84848484612be6565b610a1f57604051631036cf9160e11b81526004810185905260240161091c565b5f612f4861223f565b5f838152600a8201602052604081208054919055909150610a1f8482614188565b5f612f72614984565b5f612f7b6121d0565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612fa28861268e565b604001516040518263ffffffff1660e01b8152600401612fc291906150ba565b6040805180830381865af4158015612fdc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300091906155ba565b91509150801561302757604051632d07135360e01b8152811515600482015260240161091c565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff9091169081111561305f5761305f614e71565b600581111561307057613070614e71565b815260200160018201805461308490615007565b80601f01602080910402602001604051908101604052809291908181526020018280546130b090615007565b80156130fb5780601f106130d2576101008083540402835291602001916130fb565b820191905f5260205f20905b8154815290600101906020018083116130de57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c0909101529091508151600581111561317357613173614e71565b14158015613194575060018151600581111561319157613191614e71565b14155b156131b557805160405163170cc93360e21b815261091c9190600401615039565b6003815160058111156131ca576131ca614e71565b036131d857600481526131dd565b600581525b8360060181602001516040516131f3919061520a565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561323657613236614e71565b02179055506020820151600182019061324f908261525f565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b610cf16001600160a01b038316826141e6565b61333d84848484612447565b610a1f57604051635bff683f60e11b81526004810185905260240161091c565b5f8061336761223f565b90505f6133738461159c565b90505f61337f87611fb2565b905061338a876127a4565b6133aa576040516330efa98b60e01b81526004810188905260240161091c565b6002815160058111156133bf576133bf614e71565b146133e057805160405163170cc93360e21b815261091c9190600401615039565b5f828260a001516133f1919061532e565b905083600201600a9054906101000a90046001600160401b0316826040015161341a919061539a565b6001600160401b0316816001600160401b0316111561345757604051636d51fe0560e11b81526001600160401b038216600482015260240161091c565b5f806134638a84613dd0565b915091505f8a8360405160200161349192919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d19060800160405180910390a496505050505050505b9392505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166135e857604051631afcd79f60e31b815260040160405180910390fd5b565b6135f261359f565b6135fb81614279565b613603614292565b6122056060820135608083013561362060c0850160a08601614e0f565b61363060e0860160c087016157af565b613641610100870160e088016157c8565b61010087013561365961014089016101208a016150fd565b8861014001356142a2565b5f61366d6121d0565b600101546001600160401b0316919050565b5f805f61368a61223f565b5f8681526008820160205260408120805490829055919250908190801561371e575f878152600685016020526040902054612710906136d490600160a01b900461ffff16836155a3565b6136de9190615584565b91508184600a015f8981526020019081526020015f205f82825461370291906156c9565b90915550613712905082826157e8565b925061371e8984614188565b509097909650945050505050565b5f6137356121d0565b5f838152600580830160205260408083208151610100810190925280549495509293909291839160ff169081111561376f5761376f614e71565b600581111561378057613780614e71565b815260200160018201805461379490615007565b80601f01602080910402602001604051908101604052809291908181526020018280546137c090615007565b801561380b5780601f106137e25761010080835404028352916020019161380b565b820191905f5260205f20905b8154815290600101906020018083116137ee57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c0909101529091508151600581111561388357613883614e71565b146138b6575f8381526005830160205260409081902054905163170cc93360e21b815261091c9160ff1690600401615039565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff19169060019084908111156138fb576138fb614e71565b021790555060208201516001820190613914908261525f565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f6139b48482613dd0565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a0015142604051613a09939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b5f613a206121d0565b6007015460ff16613a4457604051637fab81e560e01b815260040160405180910390fd5b5f613a4d6121d0565b905042866001600160401b0316111580613a7c5750613a6f6202a300426156c9565b866001600160401b031610155b15613aa557604051635879da1360e11b81526001600160401b038716600482015260240161091c565b60038101546001600160401b0390613ac890600160401b900482168583166156c9565b1115613af257604051633e1a785160e01b81526001600160401b038416600482015260240161091c565b613afb85614464565b613b0484614464565b8651603014613b2b5786516040516326475b2f60e11b815260040161091c91815260200190565b87515f03613b4e5787604051633e08a12560e11b815260040161091c91906150ba565b5f801b8160060189604051613b63919061520a565b90815260200160405180910390205414613b92578760405163a41f772f60e01b815260040161091c91906150ba565b613b9c835f614583565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613c1c9190615861565b5f60405180830381865af4158015613c36573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613c5d9190810190615918565b5f82815260048601602052604090209193509150613c7b828261525f565b5081836006018b604051613c8f919061520a565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613ccb9085906004016150ba565b6020604051808303815f875af1158015613ce7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d0b91906150cc565b5f8481526005860160205260409020805460ff19166001908117825591925001613d358c8261525f565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf90613db9908e9085908e908c9061595b565b60405180910390a250909998505050505050505050565b5f805f613ddb6121d0565b5f868152600582016020526040902060020154909150600160c01b90046001600160401b0316613e0b8582614583565b5f613e15876147f0565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613eb9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613ee09190810190615089565b6040518263ffffffff1660e01b8152600401613efc91906150ba565b6020604051808303815f875af1158015613f18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f3c91906150cc565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b5f80613fa461223f565b90505f613fb48660400151611fb2565b90505f600382516005811115613fcc57613fcc614e71565b1480613fea5750600482516005811115613fe857613fe8614e71565b145b15613ffa575060e0810151614037565b60028251600581111561400f5761400f614e71565b0361401b575042614037565b815160405163170cc93360e21b815261091c9190600401615039565b86608001516001600160401b0316816001600160401b03161161405f575f9350505050613598565b600483015460608801515f916001600160a01b031690634f22429f906140849061185c565b60c086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa158015614105573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061412991906150cc565b90506001600160a01b03871661414157876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b1580156141d4575f80fd5b505af115801561172f573d5f803e3d5ffd5b804710156142095760405163cd78605960e01b815230600482015260240161091c565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114614252576040519150601f19603f3d011682016040523d82523d5f602084013e614257565b606091505b505090508061159757604051630a12f52160e11b815260040160405180910390fd5b61428161359f565b614289614859565b61220581614861565b61429a61359f565b6135e8614945565b6142aa61359f565b5f6142b361223f565b905061ffff861615806142cb575061271061ffff8716115b156142ef57604051635f12e6c360e11b815261ffff8716600482015260240161091c565b878911156143135760405163222d164360e21b8152600481018a905260240161091c565b60ff851615806143265750600a60ff8616115b156143495760405163170db35960e31b815260ff8616600482015260240161091c565b614351613664565b6001600160401b0316876001600160401b0316101561438d576040516202a06d60e11b81526001600160401b038816600482015260240161091c565b835f036143ad5760405163a733007160e01b815260040160405180910390fd5b816143ce57604051632f6bd1db60e01b81526004810183905260240161091c565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b805163ffffffff1615801561447d575060208101515115155b156144b157805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161091c565b602081015151815163ffffffff1611156144f457805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161091c565b60015b816020015151811015610cf15760208201516145146001836157e8565b815181106145245761452461515d565b60200260200101516001600160a01b03168260200151828151811061454b5761454b61515d565b60200260200101516001600160a01b0316101561457b57604051630dbc8d5f60e31b815260040160405180910390fd5b6001016144f7565b5f61458c6121d0565b90505f826001600160401b0316846001600160401b031611156145ba576145b3838561578f565b90506145c7565b6145c4848461578f565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b9004909216606082015242911580614634575060018401548151614630916001600160401b0316906156c9565b8210155b1561465c576001600160401b038084166060830152828252604082015116602082015261467b565b828160600181815161466e919061532e565b6001600160401b03169052505b606081015161468b90606461539a565b602082015160018601546001600160401b0392909216916146b69190600160401b900460ff1661539a565b6001600160401b031610156146ef57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161091c565b8581604001818151614701919061532e565b6001600160401b031690525060408101805186919061472190839061578f565b6001600160401b03169052506001840154604082015160649161474f91600160401b90910460ff169061539a565b6001600160401b03161015614788576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161091c565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f806147fa6121d0565b5f848152600582016020526040902060020180549192509060089061482e90600160401b90046001600160401b0316615993565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b6135e861359f565b61486961359f565b5f6148726121d0565b823581559050601461488a60608401604085016157c8565b60ff1611806148a957506148a460608301604084016157c8565b60ff16155b156148dd576148be60608301604084016157c8565b604051634a59bbff60e11b815260ff909116600482015260240161091c565b6148ed60608301604084016157c8565b60018201805460ff92909216600160401b0260ff60401b1990921691909117905561491e6040830160208401614e0f565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b61243461359f565b50805461495990615007565b5f825580601f10614968575050565b601f0160209004905f5260205f209081019061220591906149c9565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b808211156149dd575f81556001016149ca565b5090565b5f602082840312156149f1575f80fd5b5035919050565b5f6101608284031215614a09575f80fd5b50919050565b803563ffffffff81168114611aa1575f80fd5b5f8060408385031215614a33575f80fd5b82359150614a4360208401614a0f565b90509250929050565b8015158114612205575f80fd5b5f805f60608486031215614a6b575f80fd5b833592506020840135614a7d81614a4c565b9150614a8b60408501614a0f565b90509250925092565b5f8060408385031215614aa5575f80fd5b82356001600160401b03811115614aba575f80fd5b830160808186031215614acb575f80fd5b9150614a4360208401614a0f565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715614b0f57614b0f614ad9565b60405290565b604051606081016001600160401b0381118282101715614b0f57614b0f614ad9565b604051601f8201601f191681016001600160401b0381118282101715614b5f57614b5f614ad9565b604052919050565b5f6001600160401b03821115614b7f57614b7f614ad9565b50601f01601f191660200190565b5f82601f830112614b9c575f80fd5b8135614baf614baa82614b67565b614b37565b818152846020838601011115614bc3575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160401b0381168114612205575f80fd5b8035611aa181614bdf565b6001600160a01b0381168114612205575f80fd5b5f60408284031215614c22575f80fd5b614c2a614aed565b9050614c3582614a0f565b81526020808301356001600160401b0380821115614c51575f80fd5b818501915085601f830112614c64575f80fd5b813581811115614c7657614c76614ad9565b8060051b9150614c87848301614b37565b8181529183018401918481019088841115614ca0575f80fd5b938501935b83851015614cca5784359250614cba83614bfe565b8282529385019390850190614ca5565b808688015250505050505092915050565b803561ffff81168114611aa1575f80fd5b5f805f805f805f60e0888a031215614d02575f80fd5b87356001600160401b0380821115614d18575f80fd5b614d248b838c01614b8d565b985060208a0135915080821115614d39575f80fd5b614d458b838c01614b8d565b9750614d5360408b01614bf3565b965060608a0135915080821115614d68575f80fd5b614d748b838c01614c12565b955060808a0135915080821115614d89575f80fd5b50614d968a828b01614c12565b935050614da560a08901614cdb565b9150614db360c08901614bf3565b905092959891949750929550565b5f805f8060808587031215614dd4575f80fd5b843593506020850135614de681614a4c565b9250614df460408601614a0f565b91506060850135614e0481614bfe565b939692955090935050565b5f60208284031215614e1f575f80fd5b813561359881614bdf565b5f8060408385031215614e3b575f80fd5b823591506020830135614e4d81614bfe565b809150509250929050565b5f60208284031215614e68575f80fd5b61359882614a0f565b634e487b7160e01b5f52602160045260245ffd5b60068110614e9557614e95614e71565b9052565b5f5b83811015614eb3578181015183820152602001614e9b565b50505f910152565b5f8151808452614ed2816020860160208601614e99565b601f01601f19169290920160200192915050565b60208152614ef8602082018351614e85565b5f6020830151610100806040850152614f15610120850183614ebb565b915060408501516001600160401b03808216606087015280606088015116608087015250506080850151614f5460a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b5f8060208385031215614fad575f80fd5b82356001600160401b0380821115614fc3575f80fd5b818501915085601f830112614fd6575f80fd5b813581811115614fe4575f80fd5b866020828501011115614ff5575f80fd5b60209290920196919550909350505050565b600181811c9082168061501b57607f821691505b602082108103614a0957634e487b7160e01b5f52602260045260245ffd5b602081016115ea8284614e85565b5f82601f830112615056575f80fd5b8151615064614baa82614b67565b818152846020838601011115615078575f80fd5b612686826020830160208701614e99565b5f60208284031215615099575f80fd5b81516001600160401b038111156150ae575f80fd5b61268684828501615047565b602081525f6135986020830184614ebb565b5f602082840312156150dc575f80fd5b5051919050565b60208101600483106150f7576150f7614e71565b91905290565b5f6020828403121561510d575f80fd5b813561359881614bfe565b5f808335601e1984360301811261512d575f80fd5b8301803591506001600160401b03821115615146575f80fd5b6020019150600581901b3603821315613f93575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615185575f80fd5b9190910192915050565b5f6060823603121561519f575f80fd5b6151a7614b15565b82356001600160401b03808211156151bd575f80fd5b6151c936838701614b8d565b835260208501359150808211156151de575f80fd5b506151eb36828601614b8d565b60208301525060408301356151ff81614bdf565b604082015292915050565b5f8251615185818460208701614e99565b601f82111561159757805f5260205f20601f840160051c810160208510156152405750805b601f840160051c820191505b818110156114c8575f815560010161524c565b81516001600160401b0381111561527857615278614ad9565b61528c816152868454615007565b8461521b565b602080601f8311600181146152bf575f84156152a85750858301515b5f19600386901b1c1916600185901b17855561172f565b5f85815260208120601f198616915b828110156152ed578886015182559484019460019091019084016152ce565b508582101561530a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561279d5761279d61531a565b604081525f6153606040830185614ebb565b90506001600160401b03831660208301529392505050565b5f63ffffffff8083168181036153905761539061531a565b6001019392505050565b6001600160401b038181168382160280821691908281146153bd576153bd61531a565b505092915050565b5f808335601e198436030181126153da575f80fd5b83016020810192503590506001600160401b038111156153f8575f80fd5b803603821315613f93575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156154e357848303601f19018952813536889003605e1901811261546a575f80fd5b8701606061547882806153c5565b8287526154888388018284615406565b92505050615498868301836153c5565b868303888801526154aa838284615406565b9250505060408083013592506154bf83614bdf565b6001600160401b039290921694909101939093529783019790830190600101615445565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561551481614bfe565b6001600160a01b031660608381019190915283013536849003601e1901811261553b575f80fd5b83016020810190356001600160401b03811115615556575f80fd5b8060051b3603821315615567575f80fd5b60808085015261557b60a08501828461542e565b95945050505050565b5f8261559e57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176115ea576115ea61531a565b5f80604083850312156155cb575f80fd5b825191506020830151614e4d81614a4c565b5f81546155e981615007565b80855260206001838116801561560657600181146156205761564b565b60ff1985168884015283151560051b88018301955061564b565b865f52825f205f5b858110156156435781548a8201860152908301908401615628565b890184019650505b505050505092915050565b604081525f61536060408301856155dd565b602081525f61359860208301846155dd565b5f805f6060848603121561568c575f80fd5b83519250602084015161569e81614bdf565b60408501519092506156af81614bdf565b809150509250925092565b818382375f9101908152919050565b808201808211156115ea576115ea61531a565b5f80604083850312156156ed575f80fd5b82516001600160401b0380821115615703575f80fd5b9084019060608287031215615716575f80fd5b61571e614b15565b82518152602083015161573081614bfe565b6020820152604083015182811115615746575f80fd5b61575288828601615047565b6040830152508094505050506020830151614e4d81614a4c565b5f806040838503121561577d575f80fd5b825191506020830151614e4d81614bdf565b6001600160401b0382811682821603908082111561279d5761279d61531a565b5f602082840312156157bf575f80fd5b61359882614cdb565b5f602082840312156157d8575f80fd5b813560ff81168114613598575f80fd5b818103818111156115ea576115ea61531a565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158565784516001600160a01b0316825293830193600192909201919083019061582d565b509695505050505050565b60208152815160208201525f602083015160e06040840152615887610100840182614ebb565b90506040840151601f19808584030160608601526158a58383614ebb565b92506001600160401b03606087015116608086015260808601519150808584030160a08601526158d583836157fb565b925060a08601519150808584030160c0860152506158f382826157fb565b91505060c084015161591060e08501826001600160401b03169052565b509392505050565b5f8060408385031215615929575f80fd5b8251915060208301516001600160401b03811115615945575f80fd5b61595185828601615047565b9150509250929050565b608081525f61596d6080830187614ebb565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b5f6001600160401b038083168181036153905761539061531a56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212208c55df90a8c15efc920358718e40412a9fa567e0f6dfae1abf431d1fbf456ee564736f6c63430008190033", } // NativeTokenStakingManagerABI is the input ABI used to generate the binding from. @@ -920,25 +911,25 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Co return _NativeTokenStakingManager.Contract.CompleteDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "completeEndDelegation", delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) CompleteDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "completeDelegatorRemoval", delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.CompleteEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.CompleteDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, messageIndex) } // CompleteValidatorRegistration is a paid mutator transaction binding the contract method 0xa3a65e48. @@ -1004,88 +995,88 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Co return _NativeTokenStakingManager.Contract.CompleteValidatorWeightUpdate(&_NativeTokenStakingManager.TransactOpts, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "forceInitializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "forceInitiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "forceInitializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "forceInitiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndDelegation0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateDelegatorRemoval0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndDelegation0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateDelegatorRemoval0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "forceInitializeEndValidation", validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "forceInitiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateValidatorRemoval(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateValidatorRemoval(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "forceInitializeEndValidation0", validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ForceInitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "forceInitiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndValidation0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateValidatorRemoval0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ForceInitializeEndValidation0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ForceInitiateValidatorRemoval0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } // Initialize is a paid mutator transaction binding the contract method 0x0ba512d1. @@ -1109,151 +1100,151 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) In return _NativeTokenStakingManager.Contract.Initialize(&_NativeTokenStakingManager.TransactOpts, settings) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, conversionData, messageIndex) } -// InitializeDelegatorRegistration is a paid mutator transaction binding the contract method 0xc599e24f. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, conversionData, messageIndex) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0xcacd9755. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateDelegatorRegistration(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateDelegatorRegistration", validationID) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0xcacd9755. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRegistration is a paid mutator transaction binding the contract method 0xcacd9755. // -// 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) +// Solidity: function initiateDelegatorRegistration(bytes32 validationID) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateDelegatorRegistration(validationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRegistration(&_NativeTokenStakingManager.TransactOpts, validationID) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndDelegation0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndDelegation0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRemoval(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRemoval0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateDelegatorRemoval0(&_NativeTokenStakingManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x264dc603. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeEndValidation0", validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateValidatorRegistration(opts *bind.TransactOpts, nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateValidatorRegistration", nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x264dc603. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0x264dc603. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeEndValidation0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint16 delegationFeeBips, uint64 minStakeDuration) payable returns(bytes32) +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, delegationFeeBips uint16, minStakeDuration uint64) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRegistration(&_NativeTokenStakingManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, delegationFeeBips, minStakeDuration) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xaf2f5feb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xaf2f5feb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRemoval(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0xaf2f5feb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRemoval(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) InitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "initiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRemoval0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.InitializeValidatorSet(&_NativeTokenStakingManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address rewardRecipient) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, rewardRecipient common.Address) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.InitiateValidatorRemoval0(&_NativeTokenStakingManager.TransactOpts, validationID, includeUptimeProof, messageIndex, rewardRecipient) } // ResendEndValidatorMessage is a paid mutator transaction binding the contract method 0x0322ed98. @@ -1298,25 +1289,25 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Re return _NativeTokenStakingManager.Contract.ResendRegisterValidatorMessage(&_NativeTokenStakingManager.TransactOpts, validationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// 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) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactor) ResendUpdateDelegator(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.contract.Transact(opts, "resendUpdateDelegator", delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendUpdateDelegator(&_NativeTokenStakingManager.TransactOpts, delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _NativeTokenStakingManager.Contract.ResendUpdateDelegation(&_NativeTokenStakingManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _NativeTokenStakingManager.Contract.ResendUpdateDelegator(&_NativeTokenStakingManager.TransactOpts, delegationID) } // SubmitUptimeProof is a paid mutator transaction binding the contract method 0x25e1c776. @@ -1340,9 +1331,9 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerTransactorSession) Su return _NativeTokenStakingManager.Contract.SubmitUptimeProof(&_NativeTokenStakingManager.TransactOpts, validationID, messageIndex) } -// NativeTokenStakingManagerCompletedValidatorRegistrationIterator is returned from FilterCompletedValidatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedValidatorRegistration events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorRegistrationIterator struct { - Event *NativeTokenStakingManagerCompletedValidatorRegistration // Event containing the contract specifics and raw log +// NativeTokenStakingManagerCompletedDelegatorRegistrationIterator is returned from FilterCompletedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRegistration events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedDelegatorRegistrationIterator struct { + Event *NativeTokenStakingManagerCompletedDelegatorRegistration // 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 @@ -1356,7 +1347,7 @@ type NativeTokenStakingManagerCompletedValidatorRegistrationIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Next() bool { +func (it *NativeTokenStakingManagerCompletedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1365,7 +1356,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Next( if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorRegistration) + it.Event = new(NativeTokenStakingManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1380,7 +1371,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Next( // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorRegistration) + it.Event = new(NativeTokenStakingManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1396,53 +1387,61 @@ func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Next( } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Error() error { +func (it *NativeTokenStakingManagerCompletedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Close() error { +func (it *NativeTokenStakingManagerCompletedDelegatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// NativeTokenStakingManagerCompletedValidatorRegistration represents a CompletedValidatorRegistration event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorRegistration struct { +// NativeTokenStakingManagerCompletedDelegatorRegistration represents a CompletedDelegatorRegistration event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedDelegatorRegistration struct { + DelegationID [32]byte ValidationID [32]byte - NodeID []byte - Weight uint64 + StartTime *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorRegistration is a free log retrieval operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// FilterCompletedDelegatorRegistration is a free log retrieval operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorRegistration(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorRegistrationIterator, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerCompletedDelegatorRegistrationIterator, 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, "CompletedValidatorRegistration", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerCompletedValidatorRegistrationIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorRegistration", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerCompletedDelegatorRegistrationIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorRegistration is a free log subscription operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// WatchCompletedDelegatorRegistration is a free log subscription operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorRegistration(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorRegistration, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedDelegatorRegistration, 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, "CompletedValidatorRegistration", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1452,8 +1451,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(NativeTokenStakingManagerCompletedValidatorRegistration) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { + event := new(NativeTokenStakingManagerCompletedDelegatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -1474,21 +1473,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple }), nil } -// ParseCompletedValidatorRegistration is a log parse operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. +// ParseCompletedDelegatorRegistration is a log parse operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorRegistration(log types.Log) (*NativeTokenStakingManagerCompletedValidatorRegistration, error) { - event := new(NativeTokenStakingManagerCompletedValidatorRegistration) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedDelegatorRegistration(log types.Log) (*NativeTokenStakingManagerCompletedDelegatorRegistration, error) { + event := new(NativeTokenStakingManagerCompletedDelegatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// NativeTokenStakingManagerCompletedValidatorRemovalIterator is returned from FilterCompletedValidatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedValidatorRemoval events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorRemovalIterator struct { - Event *NativeTokenStakingManagerCompletedValidatorRemoval // Event containing the contract specifics and raw log +// NativeTokenStakingManagerCompletedDelegatorRemovalIterator is returned from FilterCompletedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRemoval events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedDelegatorRemovalIterator struct { + Event *NativeTokenStakingManagerCompletedDelegatorRemoval // 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 @@ -1502,7 +1501,7 @@ type NativeTokenStakingManagerCompletedValidatorRemovalIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Next() bool { +func (it *NativeTokenStakingManagerCompletedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1511,7 +1510,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Next() boo if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorRemoval) + it.Event = new(NativeTokenStakingManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1526,7 +1525,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Next() boo // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorRemoval) + it.Event = new(NativeTokenStakingManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1542,51 +1541,62 @@ func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Next() boo } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Error() error { +func (it *NativeTokenStakingManagerCompletedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Close() error { +func (it *NativeTokenStakingManagerCompletedDelegatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// NativeTokenStakingManagerCompletedValidatorRemoval represents a CompletedValidatorRemoval event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorRemoval struct { +// NativeTokenStakingManagerCompletedDelegatorRemoval represents a CompletedDelegatorRemoval event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedDelegatorRemoval struct { + DelegationID [32]byte ValidationID [32]byte + Rewards *big.Int + Fees *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorRemoval is a free log retrieval operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// FilterCompletedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorRemoval(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorRemovalIterator, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerCompletedDelegatorRemovalIterator, 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, "CompletedValidatorRemoval", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerCompletedValidatorRemovalIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorRemoval", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerCompletedDelegatorRemovalIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorRemoval is a free log subscription operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// WatchCompletedDelegatorRemoval is a free log subscription operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorRemoval(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorRemoval, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedDelegatorRemoval, 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, "CompletedValidatorRemoval", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1596,8 +1606,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(NativeTokenStakingManagerCompletedValidatorRemoval) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { + event := new(NativeTokenStakingManagerCompletedDelegatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -1618,21 +1628,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple }), nil } -// ParseCompletedValidatorRemoval is a log parse operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. +// ParseCompletedDelegatorRemoval is a log parse operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorRemoval(log types.Log) (*NativeTokenStakingManagerCompletedValidatorRemoval, error) { - event := new(NativeTokenStakingManagerCompletedValidatorRemoval) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedDelegatorRemoval(log types.Log) (*NativeTokenStakingManagerCompletedDelegatorRemoval, error) { + event := new(NativeTokenStakingManagerCompletedDelegatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log return event, nil } -// NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator is returned from FilterCompletedValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for CompletedValidatorWeightUpdate events raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator struct { - Event *NativeTokenStakingManagerCompletedValidatorWeightUpdate // Event containing the contract specifics and raw log +// NativeTokenStakingManagerCompletedValidatorRegistrationIterator is returned from FilterCompletedValidatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedValidatorRegistration events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorRegistrationIterator struct { + Event *NativeTokenStakingManagerCompletedValidatorRegistration // 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 @@ -1646,7 +1656,7 @@ type NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() bool { +func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1655,7 +1665,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Next( if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) + it.Event = new(NativeTokenStakingManagerCompletedValidatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1670,7 +1680,7 @@ func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Next( // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) + it.Event = new(NativeTokenStakingManagerCompletedValidatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1686,53 +1696,53 @@ func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Next( } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Error() error { +func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Close() error { +func (it *NativeTokenStakingManagerCompletedValidatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// NativeTokenStakingManagerCompletedValidatorWeightUpdate represents a CompletedValidatorWeightUpdate event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerCompletedValidatorWeightUpdate struct { +// NativeTokenStakingManagerCompletedValidatorRegistration represents a CompletedValidatorRegistration event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorRegistration struct { ValidationID [32]byte - Nonce uint64 + NodeID []byte Weight uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterCompletedValidatorWeightUpdate is a free log retrieval operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// FilterCompletedValidatorRegistration is a free log retrieval operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator, error) { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorRegistration(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorRegistrationIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorRegistration", validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorWeightUpdate", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerCompletedValidatorRegistrationIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorRegistration", logs: logs, sub: sub}, nil } -// WatchCompletedValidatorWeightUpdate is a free log subscription operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// WatchCompletedValidatorRegistration is a free log subscription operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorWeightUpdate, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorRegistration(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorRegistration, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorRegistration", validationIDRule) if err != nil { return nil, err } @@ -1742,8 +1752,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { + event := new(NativeTokenStakingManagerCompletedValidatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { return err } event.Raw = log @@ -1764,21 +1774,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchComple }), nil } -// ParseCompletedValidatorWeightUpdate is a log parse operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. +// ParseCompletedValidatorRegistration is a log parse operation binding the contract event 0x77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db62. // -// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorWeightUpdate(log types.Log) (*NativeTokenStakingManagerCompletedValidatorWeightUpdate, error) { - event := new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { +// Solidity: event CompletedValidatorRegistration(bytes32 indexed validationID, bytes nodeID, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorRegistration(log types.Log) (*NativeTokenStakingManagerCompletedValidatorRegistration, error) { + event := new(NativeTokenStakingManagerCompletedValidatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// 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 +// NativeTokenStakingManagerCompletedValidatorRemovalIterator is returned from FilterCompletedValidatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedValidatorRemoval events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorRemovalIterator struct { + Event *NativeTokenStakingManagerCompletedValidatorRemoval // 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 @@ -1792,7 +1802,7 @@ type NativeTokenStakingManagerDelegationEndedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerDelegationEndedIterator) Next() bool { +func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1801,7 +1811,7 @@ func (it *NativeTokenStakingManagerDelegationEndedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegationEnded) + it.Event = new(NativeTokenStakingManagerCompletedValidatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1816,7 +1826,7 @@ func (it *NativeTokenStakingManagerDelegationEndedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegationEnded) + it.Event = new(NativeTokenStakingManagerCompletedValidatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1832,62 +1842,51 @@ func (it *NativeTokenStakingManagerDelegationEndedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerDelegationEndedIterator) Error() error { +func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerDelegationEndedIterator) Close() error { +func (it *NativeTokenStakingManagerCompletedValidatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// NativeTokenStakingManagerDelegationEnded represents a DelegationEnded event raised by the NativeTokenStakingManager contract. -type NativeTokenStakingManagerDelegationEnded struct { - DelegationID [32]byte +// NativeTokenStakingManagerCompletedValidatorRemoval represents a CompletedValidatorRemoval event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorRemoval struct { ValidationID [32]byte - Rewards *big.Int - Fees *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// FilterCompletedValidatorRemoval is a free log retrieval operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerDelegationEndedIterator, error) { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorRemoval(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorRemovalIterator, 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, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorRemoval", validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerDelegationEndedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerCompletedValidatorRemovalIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorRemoval", logs: logs, sub: sub}, nil } -// WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// WatchCompletedValidatorRemoval is a free log subscription operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorRemoval(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorRemoval, 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, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorRemoval", validationIDRule) if err != nil { return nil, err } @@ -1897,8 +1896,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega 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 { + event := new(NativeTokenStakingManagerCompletedValidatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", log); err != nil { return err } event.Raw = log @@ -1919,21 +1918,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega }), nil } -// ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// ParseCompletedValidatorRemoval is a log parse operation binding the contract event 0xafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegationEnded(log types.Log) (*NativeTokenStakingManagerDelegationEnded, error) { - event := new(NativeTokenStakingManagerDelegationEnded) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { +// Solidity: event CompletedValidatorRemoval(bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorRemoval(log types.Log) (*NativeTokenStakingManagerCompletedValidatorRemoval, error) { + event := new(NativeTokenStakingManagerCompletedValidatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorRemoval", 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 +// NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator is returned from FilterCompletedValidatorWeightUpdate and is used to iterate over the raw logs and unpacked data for CompletedValidatorWeightUpdate events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator struct { + Event *NativeTokenStakingManagerCompletedValidatorWeightUpdate // 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 @@ -1947,7 +1946,7 @@ type NativeTokenStakingManagerDelegatorAddedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerDelegatorAddedIterator) Next() bool { +func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1956,7 +1955,7 @@ func (it *NativeTokenStakingManagerDelegatorAddedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorAdded) + it.Event = new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1971,7 +1970,7 @@ func (it *NativeTokenStakingManagerDelegatorAddedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorAdded) + it.Event = new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1987,73 +1986,53 @@ func (it *NativeTokenStakingManagerDelegatorAddedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerDelegatorAddedIterator) Error() error { +func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerDelegatorAddedIterator) Close() error { +func (it *NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator) 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 +// NativeTokenStakingManagerCompletedValidatorWeightUpdate represents a CompletedValidatorWeightUpdate event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerCompletedValidatorWeightUpdate struct { + ValidationID [32]byte + Nonce uint64 + Weight uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// FilterCompletedValidatorWeightUpdate is a free log retrieval operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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) { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterCompletedValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator, 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) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerDelegatorAddedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerCompletedValidatorWeightUpdateIterator{contract: _NativeTokenStakingManager.contract, event: "CompletedValidatorWeightUpdate", logs: logs, sub: sub}, nil } -// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// WatchCompletedValidatorWeightUpdate is a free log subscription operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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) { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchCompletedValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerCompletedValidatorWeightUpdate, 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) } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "CompletedValidatorWeightUpdate", validationIDRule) if err != nil { return nil, err } @@ -2063,8 +2042,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega 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 { + event := new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", log); err != nil { return err } event.Raw = log @@ -2085,21 +2064,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega }), nil } -// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// ParseCompletedValidatorWeightUpdate is a log parse operation binding the contract event 0xc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9. // -// 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 { +// Solidity: event CompletedValidatorWeightUpdate(bytes32 indexed validationID, uint64 nonce, uint64 weight) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseCompletedValidatorWeightUpdate(log types.Log) (*NativeTokenStakingManagerCompletedValidatorWeightUpdate, error) { + event := new(NativeTokenStakingManagerCompletedValidatorWeightUpdate) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "CompletedValidatorWeightUpdate", 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 +// 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 @@ -2113,7 +2092,7 @@ type NativeTokenStakingManagerDelegatorRegisteredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Next() bool { +func (it *NativeTokenStakingManagerInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2122,7 +2101,7 @@ func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorRegistered) + it.Event = new(NativeTokenStakingManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2137,7 +2116,7 @@ func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorRegistered) + it.Event = new(NativeTokenStakingManagerInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2153,61 +2132,41 @@ func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Error() error { +func (it *NativeTokenStakingManagerInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerDelegatorRegisteredIterator) Close() error { +func (it *NativeTokenStakingManagerInitializedIterator) 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 - StartTime *big.Int - Raw types.Log // Blockchain specific contextual infos +// NativeTokenStakingManagerInitialized represents a Initialized event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerDelegatorRegisteredIterator, error) { - - var delegationIDRule []interface{} - for _, delegationIDItem := range delegationID { - delegationIDRule = append(delegationIDRule, delegationIDItem) - } - var validationIDRule []interface{} - for _, validationIDItem := range validationID { - validationIDRule = append(validationIDRule, validationIDItem) - } +// Solidity: event Initialized(uint64 version) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*NativeTokenStakingManagerInitializedIterator, error) { - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "Initialized") if err != nil { return nil, err } - return &NativeTokenStakingManagerDelegatorRegisteredIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRegistered, 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) - } +// 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, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "Initialized") if err != nil { return nil, err } @@ -2217,8 +2176,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega 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 { + event := new(NativeTokenStakingManagerInitialized) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "Initialized", log); err != nil { return err } event.Raw = log @@ -2239,21 +2198,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega }), nil } -// ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRegistered(log types.Log) (*NativeTokenStakingManagerDelegatorRegistered, error) { - event := new(NativeTokenStakingManagerDelegatorRegistered) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { +// 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 } -// 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 +// NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator is returned from FilterInitiatedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRegistration events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator struct { + Event *NativeTokenStakingManagerInitiatedDelegatorRegistration // 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 @@ -2267,7 +2226,7 @@ type NativeTokenStakingManagerDelegatorRemovalInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Next() bool { +func (it *NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2276,7 +2235,7 @@ func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Next() b if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorRemovalInitialized) + it.Event = new(NativeTokenStakingManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2291,7 +2250,7 @@ func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Next() b // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerDelegatorRemovalInitialized) + it.Event = new(NativeTokenStakingManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2307,28 +2266,33 @@ func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Next() b } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Error() error { +func (it *NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerDelegatorRemovalInitializedIterator) Close() error { +func (it *NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator) 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 - Raw types.Log // Blockchain specific contextual infos +// NativeTokenStakingManagerInitiatedDelegatorRegistration represents a InitiatedDelegatorRegistration event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitiatedDelegatorRegistration 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 } -// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// FilterInitiatedDelegatorRegistration is a free log retrieval operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerDelegatorRemovalInitializedIterator, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitiatedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -2338,18 +2302,22 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDeleg 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, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerDelegatorRemovalInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerInitiatedDelegatorRegistrationIterator{contract: _NativeTokenStakingManager.contract, event: "InitiatedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// WatchInitiatedDelegatorRegistration is a free log subscription operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitiatedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitiatedDelegatorRegistration, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -2359,8 +2327,12 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega 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, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } @@ -2370,8 +2342,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega 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 { + event := new(NativeTokenStakingManagerInitiatedDelegatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -2392,21 +2364,21 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega }), nil } -// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// ParseInitiatedDelegatorRegistration is a log parse operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerDelegatorRemovalInitialized, error) { - event := new(NativeTokenStakingManagerDelegatorRemovalInitialized) - if err := _NativeTokenStakingManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitiatedDelegatorRegistration(log types.Log) (*NativeTokenStakingManagerInitiatedDelegatorRegistration, error) { + event := new(NativeTokenStakingManagerInitiatedDelegatorRegistration) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", 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 +// NativeTokenStakingManagerInitiatedDelegatorRemovalIterator is returned from FilterInitiatedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRemoval events raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitiatedDelegatorRemovalIterator struct { + Event *NativeTokenStakingManagerInitiatedDelegatorRemoval // 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 @@ -2420,7 +2392,7 @@ type NativeTokenStakingManagerInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *NativeTokenStakingManagerInitializedIterator) Next() bool { +func (it *NativeTokenStakingManagerInitiatedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2429,7 +2401,7 @@ func (it *NativeTokenStakingManagerInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerInitialized) + it.Event = new(NativeTokenStakingManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2444,7 +2416,7 @@ func (it *NativeTokenStakingManagerInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(NativeTokenStakingManagerInitialized) + it.Event = new(NativeTokenStakingManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2460,41 +2432,60 @@ func (it *NativeTokenStakingManagerInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *NativeTokenStakingManagerInitializedIterator) Error() error { +func (it *NativeTokenStakingManagerInitiatedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *NativeTokenStakingManagerInitializedIterator) Close() error { +func (it *NativeTokenStakingManagerInitiatedDelegatorRemovalIterator) 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 +// NativeTokenStakingManagerInitiatedDelegatorRemoval represents a InitiatedDelegatorRemoval event raised by the NativeTokenStakingManager contract. +type NativeTokenStakingManagerInitiatedDelegatorRemoval struct { + DelegationID [32]byte + ValidationID [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// FilterInitiatedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event Initialized(uint64 version) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialized(opts *bind.FilterOpts) (*NativeTokenStakingManagerInitializedIterator, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitiatedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*NativeTokenStakingManagerInitiatedDelegatorRemovalIterator, error) { - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "Initialized") + 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, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &NativeTokenStakingManagerInitializedIterator{contract: _NativeTokenStakingManager.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &NativeTokenStakingManagerInitiatedDelegatorRemovalIterator{contract: _NativeTokenStakingManager.contract, event: "InitiatedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// WatchInitiatedDelegatorRemoval is a free log subscription operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event Initialized(uint64 version) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialized) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitiatedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitiatedDelegatorRemoval, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "Initialized") + 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, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -2504,8 +2495,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitia 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 { + event := new(NativeTokenStakingManagerInitiatedDelegatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -2526,12 +2517,12 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitia }), nil } -// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. +// ParseInitiatedDelegatorRemoval is a log parse operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// 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 { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitiatedDelegatorRemoval(log types.Log) (*NativeTokenStakingManagerInitiatedDelegatorRemoval, error) { + event := new(NativeTokenStakingManagerInitiatedDelegatorRemoval) + if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log diff --git a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go index dcd990e46..9183e6ac5 100644 --- a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go +++ b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go @@ -80,19 +80,10 @@ type ValidatorMessagesValidationPeriod struct { Weight uint64 } -// ValidatorRegistrationInput is an auto generated low-level Go binding around an user-defined struct. -type ValidatorRegistrationInput struct { - NodeID []byte - BlsPublicKey []byte - RegistrationExpiry uint64 - RemainingBalanceOwner PChainOwner - DisableOwner PChainOwner -} - // PoAValidatorManagerMetaData contains all meta data concerning the PoAValidatorManager contract. var PoAValidatorManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b5060405161390938038061390983398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6137bc8061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063a3a65e48116100bf578063ce161f1411610079578063ce161f14146102f5578063d588c18f14610325578063d5f20ff614610338578063df93d8de14610358578063f2fde38b14610362578063fd7ac5e714610375575f80fd5b8063a3a65e481461025a578063b771b3bc1461026d578063bb0b19381461027b578063bc5fbfec146102c6578063bee0a03f146102da578063c974d1b6146102ed575f80fd5b8063732214f811610110578063732214f8146101bc5780638280a25a146101c35780638da5cb5b146101dd5780639681d9401461022157806397fb70d4146102345780639ba96b8614610247575f80fd5b80630322ed981461014c57806320d91b7a146101615780635dc1f5351461017457806360305d6214610197578063715018a6146101b4575b5f80fd5b61015f61015a3660046128e8565b610388565b005b61015f61016f366004612917565b610626565b5f80516020613747833981519152545b6040519081526020015b60405180910390f35b61019f601481565b60405163ffffffff909116815260200161018e565b61015f610bb9565b6101845f81565b6101cb603081565b60405160ff909116815260200161018e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b61018461022f366004612965565b610bcc565b61015f6102423660046128e8565b610bdf565b610184610255366004612992565b610bf3565b610184610268366004612965565b610cc9565b6102096005600160991b0181565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0354600160401b90046001600160401b03165b6040516001600160401b03909116815260200161018e565b6101845f8051602061374783398151915281565b61015f6102e83660046128e8565b610ec7565b6101cb601481565b610308610303366004612965565b611008565b604080519283526001600160401b0390911660208301520161018e565b61015f6103333660046129f8565b611197565b61034b6103463660046128e8565b6112a5565b60405161018e9190612aaa565b6102ae6202a30081565b61015f610370366004612b60565b6113ff565b610184610383366004612b82565b611439565b5f8181525f8051602061376783398151915260205260408082208151610100810190925280545f8051602061374783398151915293929190829060ff1660058111156103d6576103d6612a29565b60058111156103e7576103e7612a29565b81526020016001820180546103fb90612bed565b80601f016020809104026020016040519081016040528092919081815260200182805461042790612bed565b80156104725780601f1061044957610100808354040283529160200191610472565b820191905f5260205f20905b81548152906001019060200180831161045557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156104ea576104ea612a29565b14610526575f8381526005830160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612c25565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561059d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105c49190810190612d36565b6040518263ffffffff1660e01b81526004016105e09190612d67565b6020604051808303815f875af11580156105fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106209190612d79565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206137478339815191529060ff161561067857604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106df9190612d79565b836020013514610708576040516372b0a7e760e11b81526020840135600482015260240161051d565b306107196060850160408601612b60565b6001600160a01b03161461075c576107376060840160408501612b60565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161051d565b5f61076a6060850185612d90565b905090505f805b828163ffffffff1610156109aa575f61078d6060880188612d90565b8363ffffffff168181106107a3576107a3612dd5565b90506020028101906107b59190612de9565b6107be90612e54565b80516040519192505f9160068801916107d691612ecf565b9081526020016040518091039020541461080657805160405163a41f772f60e01b815261051d9190600401612d67565b5f6002885f01358460405160200161083592919091825260e01b6001600160e01b031916602082015260240190565b60408051601f198184030181529082905261084f91612ecf565b602060405180830381855afa15801561086a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061088d9190612d79565b90508086600601835f01516040516108a59190612ecf565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108e59082612f2b565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b0319909316929092179091556109549085612ffe565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f0151846040015160405161098f92919061301e565b60405180910390a25050806109a390613048565b9050610771565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b03841681029190911790915560018401546064916109f2910460ff168361306a565b6001600160401b03161015610a2557604051633e1a785160e01b81526001600160401b038216600482015260240161051d565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610a4987611494565b604001516040518263ffffffff1660e01b8152600401610a699190612d67565b602060405180830381865af4158015610a84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa89190612d79565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610ae291906131c0565b5f60405180830381865af4158015610afc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b239190810190612d36565b90505f600282604051610b369190612ecf565b602060405180830381855afa158015610b51573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610b749190612d79565b9050828114610ba05760405163baaea89d60e01b8152600481018290526024810184905260440161051d565b5050506007909201805460ff1916600117905550505050565b610bc16115aa565b610bca5f611605565b565b5f80610bd783611675565b509392505050565b610be76115aa565b610bf081611a2d565b50565b5f610bfc6115aa565b610cc0610c098480613254565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c4a925050506020860186613254565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c8e925050506060870160408801613296565b610c9b60608801886132b1565b610ca4906132c5565b610cb160808901896132b1565b610cba906132c5565b87611d23565b90505b92915050565b5f5f80516020613747833981519152818073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610cfd87611494565b604001516040518263ffffffff1660e01b8152600401610d1d9190612d67565b6040805180830381865af4158015610d37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5b919061339b565b9150915080610d8157604051632d07135360e01b8152811515600482015260240161051d565b5f82815260048401602052604090208054610d9b90612bed565b90505f03610dbf5760405163089938b360e11b81526004810183905260240161051d565b60015f838152600580860160205260409091205460ff1690811115610de657610de6612a29565b14610e19575f8281526005840160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612c25565b5f8281526004840160205260408120610e3191612854565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db6293610eb793600190910192600160c01b9092041690613435565b60405180910390a2509392505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206137478339815191529190610f0e90612bed565b90505f03610f325760405163089938b360e11b81526004810183905260240161051d565b60015f838152600580840160205260409091205460ff1690811115610f5957610f59612a29565b14610f8c575f8281526005820160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612c25565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610fc39201613447565b6020604051808303815f875af1158015610fdf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110039190612d79565b505050565b5f805f61101484611494565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b81526004016110549190612d67565b606060405180830381865af415801561106f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110939190613459565b9250925092505f6110ae5f8051602061374783398151915290565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b90920416101561110257604051632e19bc2d60e11b81526001600160401b038416600482015260240161051d565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff99061118290869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156111db5750825b90505f826001600160401b031660011480156111f65750303b155b905081158015611204575080155b156112225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561124c57845460ff60401b1916600160401b1785555b61125687876120f6565b831561129c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6112ad61288b565b5f8281525f805160206137678339815191526020526040908190208151610100810190925280545f80516020613747833981519152929190829060ff1660058111156112fb576112fb612a29565b600581111561130c5761130c612a29565b815260200160018201805461132090612bed565b80601f016020809104026020016040519081016040528092919081815260200182805461134c90612bed565b80156113975780601f1061136e57610100808354040283529160200191611397565b820191905f5260205f20905b81548152906001019060200180831161137a57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b6114076115aa565b6001600160a01b03811661143057604051631e4fbdf760e01b81525f600482015260240161051d565b610bf081611605565b6040515f905f80516020613747833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb069061147c9086908690613499565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156114f8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261151f91908101906134a8565b915091508061154157604051636b2f19e960e01b815260040160405180910390fd5b815115611567578151604051636ba589a560e01b8152600481019190915260240161051d565b60208201516001600160a01b0316156115a3576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161051d565b5092915050565b336115dc7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610bca5760405163118cdaa760e01b815233600482015260240161051d565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f61167e61288b565b5f805160206137478339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6116b188611494565b604001516040518263ffffffff1660e01b81526004016116d19190612d67565b6040805180830381865af41580156116eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061170f919061339b565b91509150801561173657604051632d07135360e01b8152811515600482015260240161051d565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff9091169081111561176e5761176e612a29565b600581111561177f5761177f612a29565b815260200160018201805461179390612bed565b80601f01602080910402602001604051908101604052809291908181526020018280546117bf90612bed565b801561180a5780601f106117e15761010080835404028352916020019161180a565b820191905f5260205f20905b8154815290600101906020018083116117ed57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c0909101529091508151600581111561188257611882612a29565b141580156118a357506001815160058111156118a0576118a0612a29565b14155b156118c457805160405163170cc93360e21b815261051d9190600401612c25565b6003815160058111156118d9576118d9612a29565b036118e757600481526118ec565b600581525b8360060181602001516040516119029190612ecf565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561194557611945612a29565b02179055506020820151600182019061195e9082612f2b565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b5f8181525f8051602061376783398151915260205260408082208151610100810190925280545f8051602061374783398151915293929190829060ff166005811115611a7b57611a7b612a29565b6005811115611a8c57611a8c612a29565b8152602001600182018054611aa090612bed565b80601f0160208091040260200160405190810160405280929190818152602001828054611acc90612bed565b8015611b175780601f10611aee57610100808354040283529160200191611b17565b820191905f5260205f20905b815481529060010190602001808311611afa57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c09091015290915081516005811115611b8f57611b8f612a29565b14611bc2575f8381526005830160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612c25565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff1916906001908490811115611c0757611c07612a29565b021790555060208201516001820190611c209082612f2b565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f611cc08482612114565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a0015142604051611d15939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611d6757604051637fab81e560e01b815260040160405180910390fd5b5f80516020613747833981519152426001600160401b038716111580611da25750611d956202a30042613535565b866001600160401b031610155b15611dcb57604051635879da1360e11b81526001600160401b038716600482015260240161051d565b60038101546001600160401b0390611dee90600160401b90048216858316613535565b1115611e1857604051633e1a785160e01b81526001600160401b038416600482015260240161051d565b611e21856122eb565b611e2a846122eb565b8651603014611e515786516040516326475b2f60e11b815260040161051d91815260200190565b87515f03611e745787604051633e08a12560e11b815260040161051d9190612d67565b5f801b8160060189604051611e899190612ecf565b90815260200160405180910390205414611eb8578760405163a41f772f60e01b815260040161051d9190612d67565b611ec2835f61240a565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611f4291906135ae565b5f60405180830381865af4158015611f5c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f83919081019061365d565b5f82815260048601602052604090209193509150611fa18282612f2b565b5081836006018b604051611fb59190612ecf565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611ff1908590600401612d67565b6020604051808303815f875af115801561200d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120319190612d79565b5f8481526005860160205260409020805460ff1916600190811782559192500161205b8c82612f2b565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf906120df908e9085908e908c906136a0565b60405180910390a250909998505050505050505050565b6120fe612674565b612107826126bd565b612110816126d6565b5050565b5f8281525f80516020613767833981519152602052604081206002015481905f8051602061374783398151915290600160c01b90046001600160401b031661215c858261240a565b5f612166876126e7565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561220a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122319190810190612d36565b6040518263ffffffff1660e01b815260040161224d9190612d67565b6020604051808303815f875af1158015612269573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061228d9190612d79565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b805163ffffffff16158015612304575060208101515115155b1561233857805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161051d565b602081015151815163ffffffff16111561237b57805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161051d565b60015b81602001515181101561211057602082015161239b6001836136d8565b815181106123ab576123ab612dd5565b60200260200101516001600160a01b0316826020015182815181106123d2576123d2612dd5565b60200260200101516001600160a01b0316101561240257604051630dbc8d5f60e31b815260040160405180910390fd5b60010161237e565b5f805160206137478339815191525f6001600160401b03808416908516111561243e5761243783856136eb565b905061244b565b61244884846136eb565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806124b85750600184015481516124b4916001600160401b031690613535565b8210155b156124e0576001600160401b03808416606083015282825260408201511660208201526124ff565b82816060018181516124f29190612ffe565b6001600160401b03169052505b606081015161250f90606461306a565b602082015160018601546001600160401b03929092169161253a9190600160401b900460ff1661306a565b6001600160401b0316101561257357606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161051d565b85816040018181516125859190612ffe565b6001600160401b03169052506040810180518691906125a59083906136eb565b6001600160401b0316905250600184015460408201516064916125d391600160401b90910460ff169061306a565b6001600160401b0316101561260c576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161051d565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610bca57604051631afcd79f60e31b815260040160405180910390fd5b6126c5612674565b6126cd61275c565b610bf081612764565b6126de612674565b610bf08161284c565b5f8181525f805160206137678339815191526020526040812060020180545f80516020613747833981519152919060089061273190600160401b90046001600160401b031661370b565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610bca612674565b61276c612674565b80355f8051602061374783398151915290815560146127916060840160408501613726565b60ff1611806127b057506127ab6060830160408401613726565b60ff16155b156127e4576127c56060830160408401613726565b604051634a59bbff60e11b815260ff909116600482015260240161051d565b6127f46060830160408401613726565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556128256040830160208401613296565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b611407612674565b50805461286090612bed565b5f825580601f1061286f575050565b601f0160209004905f5260205f2090810190610bf091906128d0565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b808211156128e4575f81556001016128d1565b5090565b5f602082840312156128f8575f80fd5b5035919050565b803563ffffffff81168114612912575f80fd5b919050565b5f8060408385031215612928575f80fd5b82356001600160401b0381111561293d575f80fd5b83016080818603121561294e575f80fd5b915061295c602084016128ff565b90509250929050565b5f60208284031215612975575f80fd5b610cc0826128ff565b6001600160401b0381168114610bf0575f80fd5b5f80604083850312156129a3575f80fd5b82356001600160401b038111156129b8575f80fd5b830160a081860312156129c9575f80fd5b915060208301356129d98161297e565b809150509250929050565b6001600160a01b0381168114610bf0575f80fd5b5f808284036080811215612a0a575f80fd5b6060811215612a17575f80fd5b5082915060608301356129d9816129e4565b634e487b7160e01b5f52602160045260245ffd5b60068110612a5957634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b83811015612a77578181015183820152602001612a5f565b50505f910152565b5f8151808452612a96816020860160208601612a5d565b601f01601f19169290920160200192915050565b60208152612abc602082018351612a3d565b5f6020830151610100806040850152612ad9610120850183612a7f565b915060408501516001600160401b03808216606087015280606088015116608087015250506080850151612b1860a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b5f60208284031215612b70575f80fd5b8135612b7b816129e4565b9392505050565b5f8060208385031215612b93575f80fd5b82356001600160401b0380821115612ba9575f80fd5b818501915085601f830112612bbc575f80fd5b813581811115612bca575f80fd5b866020828501011115612bdb575f80fd5b60209290920196919550909350505050565b600181811c90821680612c0157607f821691505b602082108103612c1f57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610cc38284612a3d565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612c6957612c69612c33565b60405290565b604080519081016001600160401b0381118282101715612c6957612c69612c33565b604051601f8201601f191681016001600160401b0381118282101715612cb957612cb9612c33565b604052919050565b5f6001600160401b03821115612cd957612cd9612c33565b50601f01601f191660200190565b5f82601f830112612cf6575f80fd5b8151612d09612d0482612cc1565b612c91565b818152846020838601011115612d1d575f80fd5b612d2e826020830160208701612a5d565b949350505050565b5f60208284031215612d46575f80fd5b81516001600160401b03811115612d5b575f80fd5b612d2e84828501612ce7565b602081525f610cc06020830184612a7f565b5f60208284031215612d89575f80fd5b5051919050565b5f808335601e19843603018112612da5575f80fd5b8301803591506001600160401b03821115612dbe575f80fd5b6020019150600581901b36038213156122e4575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612dfd575f80fd5b9190910192915050565b5f82601f830112612e16575f80fd5b8135612e24612d0482612cc1565b818152846020838601011115612e38575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612e64575f80fd5b612e6c612c47565b82356001600160401b0380821115612e82575f80fd5b612e8e36838701612e07565b83526020850135915080821115612ea3575f80fd5b50612eb036828601612e07565b6020830152506040830135612ec48161297e565b604082015292915050565b5f8251612dfd818460208701612a5d565b601f82111561100357805f5260205f20601f840160051c81016020851015612f055750805b601f840160051c820191505b81811015612f24575f8155600101612f11565b5050505050565b81516001600160401b03811115612f4457612f44612c33565b612f5881612f528454612bed565b84612ee0565b602080601f831160018114612f8b575f8415612f745750858301515b5f19600386901b1c1916600185901b178555612fe2565b5f85815260208120601f198616915b82811015612fb957888601518255948401946001909101908401612f9a565b5085821015612fd657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156115a3576115a3612fea565b604081525f6130306040830185612a7f565b90506001600160401b03831660208301529392505050565b5f63ffffffff80831681810361306057613060612fea565b6001019392505050565b6001600160401b0381811683821602808216919082811461308d5761308d612fea565b505092915050565b5f808335601e198436030181126130aa575f80fd5b83016020810192503590506001600160401b038111156130c8575f80fd5b8036038213156122e4575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156131b357848303601f19018952813536889003605e1901811261313a575f80fd5b870160606131488280613095565b82875261315883880182846130d6565b9250505061316886830183613095565b8683038888015261317a8382846130d6565b92505050604080830135925061318f8361297e565b6001600160401b039290921694909101939093529783019790830190600101613115565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356131e4816129e4565b6001600160a01b031660608381019190915283013536849003601e1901811261320b575f80fd5b83016020810190356001600160401b03811115613226575f80fd5b8060051b3603821315613237575f80fd5b60808085015261324b60a0850182846130fe565b95945050505050565b5f808335601e19843603018112613269575f80fd5b8301803591506001600160401b03821115613282575f80fd5b6020019150368190038213156122e4575f80fd5b5f602082840312156132a6575f80fd5b8135612b7b8161297e565b5f8235603e19833603018112612dfd575f80fd5b5f604082360312156132d5575f80fd5b6132dd612c6f565b6132e6836128ff565b81526020808401356001600160401b0380821115613302575f80fd5b9085019036601f830112613314575f80fd5b81358181111561332657613326612c33565b8060051b9150613337848301612c91565b8181529183018401918481019036841115613350575f80fd5b938501935b8385101561337a578435925061336a836129e4565b8282529385019390850190613355565b94860194909452509295945050505050565b80518015158114612912575f80fd5b5f80604083850312156133ac575f80fd5b8251915061295c6020840161338c565b5f81546133c881612bed565b8085526020600183811680156133e557600181146133ff5761342a565b60ff1985168884015283151560051b88018301955061342a565b865f52825f205f5b858110156134225781548a8201860152908301908401613407565b890184019650505b505050505092915050565b604081525f61303060408301856133bc565b602081525f610cc060208301846133bc565b5f805f6060848603121561346b575f80fd5b83519250602084015161347d8161297e565b604085015190925061348e8161297e565b809150509250925092565b818382375f9101908152919050565b5f80604083850312156134b9575f80fd5b82516001600160401b03808211156134cf575f80fd5b90840190606082870312156134e2575f80fd5b6134ea612c47565b8251815260208301516134fc816129e4565b6020820152604083015182811115613512575f80fd5b61351e88828601612ce7565b604083015250935061295c9150506020840161338c565b80820180821115610cc357610cc3612fea565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156135a35784516001600160a01b0316825293830193600192909201919083019061357a565b509695505050505050565b60208152815160208201525f602083015160e060408401526135d4610100840182612a7f565b90506040840151601f19808584030160608601526135f28383612a7f565b92506001600160401b03606087015116608086015260808601519150808584030160a08601526136228383613548565b925060a08601519150808584030160c0860152506136408282613548565b91505060c0840151610bd760e08501826001600160401b03169052565b5f806040838503121561366e575f80fd5b8251915060208301516001600160401b0381111561368a575f80fd5b61369685828601612ce7565b9150509250929050565b608081525f6136b26080830187612a7f565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b81810381811115610cc357610cc3612fea565b6001600160401b038281168282160390808211156115a3576115a3612fea565b5f6001600160401b0380831681810361306057613060612fea565b5f60208284031215613736575f80fd5b813560ff81168114612b7b575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a26469706673582212200791f69edd437d04d0e564251d830362412ff8a5d0aa30e4b69042271c35f22c64736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"CompletedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"CompletedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"registrationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"validatorWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"weightUpdateMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitiatedValidatorWeightUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"RegisteredInitialValidator\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRemoval\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorWeightUpdate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sentNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receivedNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"initiateValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1TotalWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b5060405161388a38038061388a83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b61373d8061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c8063b771b3bc116100bf578063d588c18f11610079578063d588c18f14610312578063d5f20ff614610325578063df93d8de14610345578063ed285ae11461034f578063f2fde38b14610362578063fd7ac5e714610375575f80fd5b8063b771b3bc1461025a578063bb0b193814610268578063bc5fbfec146102b3578063bee0a03f146102c7578063c974d1b6146102da578063ce161f14146102e2575f80fd5b8063732214f811610110578063732214f8146101bc5780638280a25a146101c35780638da5cb5b146101dd5780639681d94014610221578063a3a65e4814610234578063b6e6a2ca14610247575f80fd5b80630322ed981461014c57806320d91b7a146101615780635dc1f5351461017457806360305d6214610197578063715018a6146101b4575b5f80fd5b61015f61015a366004612835565b610388565b005b61015f61016f366004612864565b610626565b5f805160206136c8833981519152545b6040519081526020015b60405180910390f35b61019f601481565b60405163ffffffff909116815260200161018e565b61015f610bb9565b6101845f81565b6101cb603081565b60405160ff909116815260200161018e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b61018461022f3660046128b2565b610bcc565b6101846102423660046128b2565b610bdf565b61015f610255366004612835565b610ddd565b6102096005600160991b0181565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0354600160401b90046001600160401b03165b6040516001600160401b03909116815260200161018e565b6101845f805160206136c883398151915281565b61015f6102d5366004612835565b610df1565b6101cb601481565b6102f56102f03660046128b2565b610f32565b604080519283526001600160401b0390911660208301520161018e565b61015f6103203660046128e6565b6110c1565b610338610333366004612835565b6111cf565b60405161018e91906129a3565b61029b6202a30081565b61018461035d366004612c47565b611329565b61015f610370366004612d0b565b61134b565b610184610383366004612d26565b611385565b5f8181525f805160206136e883398151915260205260408082208151610100810190925280545f805160206136c883398151915293929190829060ff1660058111156103d6576103d6612922565b60058111156103e7576103e7612922565b81526020016001820180546103fb90612d91565b80601f016020809104026020016040519081016040528092919081815260200182805461042790612d91565b80156104725780601f1061044957610100808354040283529160200191610472565b820191905f5260205f20905b81548152906001019060200180831161045557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156104ea576104ea612922565b14610526575f8381526005830160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612dc9565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561059d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105c49190810190612e21565b6040518263ffffffff1660e01b81526004016105e09190612e52565b6020604051808303815f875af11580156105fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106209190612e64565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136c88339815191529060ff161561067857604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106df9190612e64565b836020013514610708576040516372b0a7e760e11b81526020840135600482015260240161051d565b306107196060850160408601612d0b565b6001600160a01b03161461075c576107376060840160408501612d0b565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161051d565b5f61076a6060850185612e7b565b905090505f805b828163ffffffff1610156109aa575f61078d6060880188612e7b565b8363ffffffff168181106107a3576107a3612ec0565b90506020028101906107b59190612ed4565b6107be90612ef2565b80516040519192505f9160068801916107d691612f6d565b9081526020016040518091039020541461080657805160405163a41f772f60e01b815261051d9190600401612e52565b5f6002885f01358460405160200161083592919091825260e01b6001600160e01b031916602082015260240190565b60408051601f198184030181529082905261084f91612f6d565b602060405180830381855afa15801561086a573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061088d9190612e64565b90508086600601835f01516040516108a59190612f6d565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108e59082612fc9565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b0394851667ffffffffffffffff60801b90941693909317600160c01b858516021790556003018054429093166001600160801b031990931692909217909155610954908561309c565b9350807fbfde2b10dd8e49db1d84164b7468fa64c5c67a02b148fee0473a9b71b9b981f2835f0151846040015160405161098f9291906130bc565b60405180910390a25050806109a3906130e6565b9050610771565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b03841681029190911790915560018401546064916109f2910460ff1683613108565b6001600160401b03161015610a2557604051633e1a785160e01b81526001600160401b038216600482015260240161051d565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610a49876113e1565b604001516040518263ffffffff1660e01b8152600401610a699190612e52565b602060405180830381865af4158015610a84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa89190612e64565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610ae2919061325e565b5f60405180830381865af4158015610afc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b239190810190612e21565b90505f600282604051610b369190612f6d565b602060405180830381855afa158015610b51573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610b749190612e64565b9050828114610ba05760405163baaea89d60e01b8152600481018290526024810184905260440161051d565b5050506007909201805460ff1916600117905550505050565b610bc16114f7565b610bca5f611552565b565b5f80610bd7836115c2565b509392505050565b5f5f805160206136c8833981519152818073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610c13876113e1565b604001516040518263ffffffff1660e01b8152600401610c339190612e52565b6040805180830381865af4158015610c4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c719190613301565b9150915080610c9757604051632d07135360e01b8152811515600482015260240161051d565b5f82815260048401602052604090208054610cb190612d91565b90505f03610cd55760405163089938b360e11b81526004810183905260240161051d565b60015f838152600580860160205260409091205460ff1690811115610cfc57610cfc612922565b14610d2f575f8281526005840160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612dc9565b5f8281526004840160205260408120610d47916127a1565b5f82815260058401602052604090819020805460ff1916600290811782556003820180546001600160401b0342811667ffffffffffffffff199092169190911790915590820154925185937f77db78281b26839241ace5413ded40b79d347f4862aadef5b975516b9111db6293610dcd93600190910192600160c01b909204169061339b565b60405180910390a2509392505050565b610de56114f7565b610dee8161197a565b50565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136c88339815191529190610e3890612d91565b90505f03610e5c5760405163089938b360e11b81526004810183905260240161051d565b60015f838152600580840160205260409091205460ff1690811115610e8357610e83612922565b14610eb6575f8281526005820160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612dc9565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610eed92016133ad565b6020604051808303815f875af1158015610f09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2d9190612e64565b505050565b5f805f610f3e846113e1565b90505f805f73__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f85604001516040518263ffffffff1660e01b8152600401610f7e9190612e52565b606060405180830381865af4158015610f99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fbd91906133bf565b9250925092505f610fd85f805160206136c883398151915290565b5f8581526005820160205260409020600201549091506001600160401b03808516600160401b90920416101561102c57604051632e19bc2d60e11b81526001600160401b038416600482015260240161051d565b5f8481526005820160205260409081902060020180546001600160401b038616600160801b0267ffffffffffffffff60801b199091161790555184907fc917996591802ecedcfced71321d4bb5320f7dfbacf5477dffe1dbf8b8839ff9906110ac90869086906001600160401b0392831681529116602082015260400190565b60405180910390a25091969095509350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156111055750825b90505f826001600160401b031660011480156111205750303b155b90508115801561112e575080155b1561114c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561117657845460ff60401b1916600160401b1785555b6111808787611c70565b83156111c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6111d76127d8565b5f8281525f805160206136e88339815191526020526040908190208151610100810190925280545f805160206136c8833981519152929190829060ff16600581111561122557611225612922565b600581111561123657611236612922565b815260200160018201805461124a90612d91565b80601f016020809104026020016040519081016040528092919081815260200182805461127690612d91565b80156112c15780601f10611298576101008083540402835291602001916112c1565b820191905f5260205f20905b8154815290600101906020018083116112a457829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039093015480841660a08401520490911660c0909101529392505050565b5f6113326114f7565b611340878787878787611c8e565b979650505050505050565b6113536114f7565b6001600160a01b03811661137c57604051631e4fbdf760e01b81525f600482015260240161051d565b610dee81611552565b6040515f905f805160206136c8833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906113c890869086906133ff565b9081526020016040518091039020549150505b92915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015611445573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261146c919081019061340e565b915091508061148e57604051636b2f19e960e01b815260040160405180910390fd5b8151156114b4578151604051636ba589a560e01b8152600481019190915260240161051d565b60208201516001600160a01b0316156114f0576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161051d565b5092915050565b336115297f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610bca5760405163118cdaa760e01b815233600482015260240161051d565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f6115cb6127d8565b5f805160206136c88339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6115fe886113e1565b604001516040518263ffffffff1660e01b815260040161161e9190612e52565b6040805180830381865af4158015611638573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165c9190613301565b91509150801561168357604051632d07135360e01b8152811515600482015260240161051d565b5f8281526005808501602052604080832081516101008101909252805491929091839160ff909116908111156116bb576116bb612922565b60058111156116cc576116cc612922565b81526020016001820180546116e090612d91565b80601f016020809104026020016040519081016040528092919081815260200182805461170c90612d91565b80156117575780601f1061172e57610100808354040283529160200191611757565b820191905f5260205f20905b81548152906001019060200180831161173a57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b80830482166040850152600160801b830482166060850152600160c01b9092048116608084015260039384015480821660a0850152919091041660c090910152909150815160058111156117cf576117cf612922565b141580156117f057506001815160058111156117ed576117ed612922565b14155b1561181157805160405163170cc93360e21b815261051d9190600401612dc9565b60038151600581111561182657611826612922565b036118345760048152611839565b600581525b83600601816020015160405161184f9190612f6d565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561189257611892612922565b0217905550602082015160018201906118ab9082612fc9565b506040828101516002830180546060860151608087015160a08801516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08601516003909501805460e09097015195841696909116959095179390911602919091179091555183907fafaccef7080649a725bc30a35359a257a4a27225be352875c80bdf6b5f04080c905f90a29196919550909350505050565b5f8181525f805160206136e883398151915260205260408082208151610100810190925280545f805160206136c883398151915293929190829060ff1660058111156119c8576119c8612922565b60058111156119d9576119d9612922565b81526020016001820180546119ed90612d91565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1990612d91565b8015611a645780601f10611a3b57610100808354040283529160200191611a64565b820191905f5260205f20905b815481529060010190602001808311611a4757829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b80830482166040860152600160801b830482166060860152600160c01b9092048116608085015260039094015480851660a08501520490921660c09091015290915081516005811115611adc57611adc612922565b14611b0f575f8381526005830160205260409081902054905163170cc93360e21b815261051d9160ff1690600401612dc9565b60038152426001600160401b031660e08201525f83815260058381016020526040909120825181548493839160ff1916906001908490811115611b5457611b54612922565b021790555060208201516001820190611b6d9082612fc9565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031994851617600160401b9387168402176001600160801b0316600160801b928716929092026001600160c01b031691909117600160c01b918616919091021790925560c08501516003909401805460e090960151948416959091169490941792909116021790555f611c0d8482612061565b915050837fbae388a94e7f18411fe57098f12f418b8e1a8273e0532a90188a3a059b897273828460a0015142604051611c62939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a250505050565b611c78612238565b611c8182612281565b611c8a8161229a565b5050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611cd257604051637fab81e560e01b815260040160405180910390fd5b5f805160206136c8833981519152426001600160401b038716111580611d0d5750611d006202a3004261349b565b866001600160401b031610155b15611d3657604051635879da1360e11b81526001600160401b038716600482015260240161051d565b60038101546001600160401b0390611d5990600160401b9004821685831661349b565b1115611d8357604051633e1a785160e01b81526001600160401b038416600482015260240161051d565b611d8c856122ab565b611d95846122ab565b8651603014611dbc5786516040516326475b2f60e11b815260040161051d91815260200190565b87515f03611ddf5787604051633e08a12560e11b815260040161051d9190612e52565b5f801b8160060189604051611df49190612f6d565b90815260200160405180910390205414611e23578760405163a41f772f60e01b815260040161051d9190612e52565b611e2d835f6123ca565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63eb97ce516040518060e00160405280865f015481526020018d81526020018c81526020018b6001600160401b031681526020018a8152602001898152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611ead9190613514565b5f60405180830381865af4158015611ec7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611eee91908101906135c3565b5f82815260048601602052604090209193509150611f0c8282612fc9565b5081836006018b604051611f209190612f6d565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611f5c908590600401612e52565b6020604051808303815f875af1158015611f78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9c9190612e64565b5f8481526005860160205260409020805460ff19166001908117825591925001611fc68c82612fc9565b505f83815260058501602052604090819020600281018054600160c01b6001600160401b038b1690810267ffffffffffffffff60801b9092161717905560030180546001600160801b03191690555183907f6444121f9363bfb7959b7aeb4e0770f929069e868013c3d1d807647d6ab9adaf9061204a908e9085908e908c90613606565b60405180910390a250909998505050505050505050565b5f8281525f805160206136e8833981519152602052604081206002015481905f805160206136c883398151915290600160c01b90046001600160401b03166120a985826123ca565b5f6120b387612634565b5f88815260058501602052604080822060020180546001600160c01b0316600160c01b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015612157573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261217e9190810190612e21565b6040518263ffffffff1660e01b815260040161219a9190612e52565b6020604051808303815f875af11580156121b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121da9190612e64565b604080516001600160401b038581168252602082018490528a1681830152905191925089917f6e350dd49b060d87f297206fd309234ed43156d890ced0f139ecf704310481d39181900360600190a2909450925050505b9250929050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610bca57604051631afcd79f60e31b815260040160405180910390fd5b612289612238565b6122916126a9565b610dee816126b1565b6122a2612238565b610dee81612799565b805163ffffffff161580156122c4575060208101515115155b156122f857805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161051d565b602081015151815163ffffffff16111561233b57805160208201515160405163c08a0f1d60e01b815263ffffffff9092166004830152602482015260440161051d565b60015b816020015151811015611c8a57602082015161235b60018361363e565b8151811061236b5761236b612ec0565b60200260200101516001600160a01b03168260200151828151811061239257612392612ec0565b60200260200101516001600160a01b031610156123c257604051630dbc8d5f60e31b815260040160405180910390fd5b60010161233e565b5f805160206136c88339815191525f6001600160401b0380841690851611156123fe576123f78385613651565b905061240b565b6124088484613651565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b9004909216606082015242911580612478575060018401548151612474916001600160401b03169061349b565b8210155b156124a0576001600160401b03808416606083015282825260408201511660208201526124bf565b82816060018181516124b2919061309c565b6001600160401b03169052505b60608101516124cf906064613108565b602082015160018601546001600160401b0392909216916124fa9190600160401b900460ff16613108565b6001600160401b0316101561253357606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161051d565b8581604001818151612545919061309c565b6001600160401b0316905250604081018051869190612565908390613651565b6001600160401b03169052506001840154604082015160649161259391600160401b90910460ff1690613108565b6001600160401b031610156125cc576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161051d565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f805160206136e88339815191526020526040812060020180545f805160206136c8833981519152919060089061267e90600160401b90046001600160401b0316613671565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610bca612238565b6126b9612238565b80355f805160206136c883398151915290815560146126de606084016040850161368c565b60ff1611806126fd57506126f8606083016040840161368c565b60ff16155b1561273157612712606083016040840161368c565b604051634a59bbff60e11b815260ff909116600482015260240161051d565b612741606083016040840161368c565b60018201805460ff92909216600160401b0260ff60401b1990921691909117905561277260408301602084016136ac565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b611353612238565b5080546127ad90612d91565b5f825580601f106127bc575050565b601f0160209004905f5260205f2090810190610dee919061281d565b604080516101008101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c0820181905260e09091015290565b5b80821115612831575f815560010161281e565b5090565b5f60208284031215612845575f80fd5b5035919050565b803563ffffffff8116811461285f575f80fd5b919050565b5f8060408385031215612875575f80fd5b82356001600160401b0381111561288a575f80fd5b83016080818603121561289b575f80fd5b91506128a96020840161284c565b90509250929050565b5f602082840312156128c2575f80fd5b6128cb8261284c565b9392505050565b6001600160a01b0381168114610dee575f80fd5b5f8082840360808112156128f8575f80fd5b6060811215612905575f80fd5b508291506060830135612917816128d2565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061295257634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b83811015612970578181015183820152602001612958565b50505f910152565b5f815180845261298f816020860160208601612956565b601f01601f19169290920160200192915050565b602081526129b5602082018351612936565b5f60208301516101008060408501526129d2610120850183612978565b915060408501516001600160401b03808216606087015280606088015116608087015250506080850151612a1160a08601826001600160401b03169052565b5060a08501516001600160401b03811660c08601525060c08501516001600160401b03811660e08601525060e08501516001600160401b038116858301525090949350505050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612a8f57612a8f612a59565b60405290565b604051606081016001600160401b0381118282101715612a8f57612a8f612a59565b604051601f8201601f191681016001600160401b0381118282101715612adf57612adf612a59565b604052919050565b5f6001600160401b03821115612aff57612aff612a59565b50601f01601f191660200190565b5f82601f830112612b1c575f80fd5b8135612b2f612b2a82612ae7565b612ab7565b818152846020838601011115612b43575f80fd5b816020850160208301375f918101602001919091529392505050565b6001600160401b0381168114610dee575f80fd5b803561285f81612b5f565b5f60408284031215612b8e575f80fd5b612b96612a6d565b9050612ba18261284c565b81526020808301356001600160401b0380821115612bbd575f80fd5b818501915085601f830112612bd0575f80fd5b813581811115612be257612be2612a59565b8060051b9150612bf3848301612ab7565b8181529183018401918481019088841115612c0c575f80fd5b938501935b83851015612c365784359250612c26836128d2565b8282529385019390850190612c11565b808688015250505050505092915050565b5f805f805f8060c08789031215612c5c575f80fd5b86356001600160401b0380821115612c72575f80fd5b612c7e8a838b01612b0d565b97506020890135915080821115612c93575f80fd5b612c9f8a838b01612b0d565b9650612cad60408a01612b73565b95506060890135915080821115612cc2575f80fd5b612cce8a838b01612b7e565b94506080890135915080821115612ce3575f80fd5b50612cf089828a01612b7e565b925050612cff60a08801612b73565b90509295509295509295565b5f60208284031215612d1b575f80fd5b81356128cb816128d2565b5f8060208385031215612d37575f80fd5b82356001600160401b0380821115612d4d575f80fd5b818501915085601f830112612d60575f80fd5b813581811115612d6e575f80fd5b866020828501011115612d7f575f80fd5b60209290920196919550909350505050565b600181811c90821680612da557607f821691505b602082108103612dc357634e487b7160e01b5f52602260045260245ffd5b50919050565b602081016113db8284612936565b5f82601f830112612de6575f80fd5b8151612df4612b2a82612ae7565b818152846020838601011115612e08575f80fd5b612e19826020830160208701612956565b949350505050565b5f60208284031215612e31575f80fd5b81516001600160401b03811115612e46575f80fd5b612e1984828501612dd7565b602081525f6128cb6020830184612978565b5f60208284031215612e74575f80fd5b5051919050565b5f808335601e19843603018112612e90575f80fd5b8301803591506001600160401b03821115612ea9575f80fd5b6020019150600581901b3603821315612231575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612ee8575f80fd5b9190910192915050565b5f60608236031215612f02575f80fd5b612f0a612a95565b82356001600160401b0380821115612f20575f80fd5b612f2c36838701612b0d565b83526020850135915080821115612f41575f80fd5b50612f4e36828601612b0d565b6020830152506040830135612f6281612b5f565b604082015292915050565b5f8251612ee8818460208701612956565b601f821115610f2d57805f5260205f20601f840160051c81016020851015612fa35750805b601f840160051c820191505b81811015612fc2575f8155600101612faf565b5050505050565b81516001600160401b03811115612fe257612fe2612a59565b612ff681612ff08454612d91565b84612f7e565b602080601f831160018114613029575f84156130125750858301515b5f19600386901b1c1916600185901b178555613080565b5f85815260208120601f198616915b8281101561305757888601518255948401946001909101908401613038565b508582101561307457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156114f0576114f0613088565b604081525f6130ce6040830185612978565b90506001600160401b03831660208301529392505050565b5f63ffffffff8083168181036130fe576130fe613088565b6001019392505050565b6001600160401b0381811683821602808216919082811461312b5761312b613088565b505092915050565b5f808335601e19843603018112613148575f80fd5b83016020810192503590506001600160401b03811115613166575f80fd5b803603821315612231575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561325157848303601f19018952813536889003605e190181126131d8575f80fd5b870160606131e68280613133565b8287526131f68388018284613174565b9250505061320686830183613133565b86830388880152613218838284613174565b92505050604080830135925061322d83612b5f565b6001600160401b0392909216949091019390935297830197908301906001016131b3565b5090979650505050505050565b6020815281356020820152602082013560408201525f6040830135613282816128d2565b6001600160a01b031660608381019190915283013536849003601e190181126132a9575f80fd5b83016020810190356001600160401b038111156132c4575f80fd5b8060051b36038213156132d5575f80fd5b6080808501526132e960a08501828461319c565b95945050505050565b8051801515811461285f575f80fd5b5f8060408385031215613312575f80fd5b825191506128a9602084016132f2565b5f815461332e81612d91565b80855260206001838116801561334b576001811461336557613390565b60ff1985168884015283151560051b880183019550613390565b865f52825f205f5b858110156133885781548a820186015290830190840161336d565b890184019650505b505050505092915050565b604081525f6130ce6040830185613322565b602081525f6128cb6020830184613322565b5f805f606084860312156133d1575f80fd5b8351925060208401516133e381612b5f565b60408501519092506133f481612b5f565b809150509250925092565b818382375f9101908152919050565b5f806040838503121561341f575f80fd5b82516001600160401b0380821115613435575f80fd5b9084019060608287031215613448575f80fd5b613450612a95565b825181526020830151613462816128d2565b6020820152604083015182811115613478575f80fd5b61348488828601612dd7565b60408301525093506128a9915050602084016132f2565b808201808211156113db576113db613088565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156135095784516001600160a01b031682529383019360019290920191908301906134e0565b509695505050505050565b60208152815160208201525f602083015160e0604084015261353a610100840182612978565b90506040840151601f19808584030160608601526135588383612978565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261358883836134ae565b925060a08601519150808584030160c0860152506135a682826134ae565b91505060c0840151610bd760e08501826001600160401b03169052565b5f80604083850312156135d4575f80fd5b8251915060208301516001600160401b038111156135f0575f80fd5b6135fc85828601612dd7565b9150509250929050565b608081525f6136186080830187612978565b6020830195909552506001600160401b0392831660408201529116606090910152919050565b818103818111156113db576113db613088565b6001600160401b038281168282160390808211156114f0576114f0613088565b5f6001600160401b038083168181036130fe576130fe613088565b5f6020828403121561369c575f80fd5b813560ff811681146128cb575f80fd5b5f602082840312156136bc575f80fd5b81356128cb81612b5f56fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a264697066735822122052f4c0f8e0b9626ebc248c9a5bbfe5d04d9af9052f4c89dacae6343f5fb139d564736f6c63430008190033", } // PoAValidatorManagerABI is the input ABI used to generate the binding from. @@ -721,67 +712,67 @@ func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) Initialize(set return _PoAValidatorManager.Contract.Initialize(&_PoAValidatorManager.TransactOpts, settings, initialOwner) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// 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) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// Solidity: function initializeEndValidation(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, conversionData, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x97fb70d4. +// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. // -// Solidity: function initializeEndValidation(bytes32 validationID) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeEndValidation(validationID [32]byte) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeEndValidation(&_PoAValidatorManager.TransactOpts, validationID) +// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, conversionData, messageIndex) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x9ba96b86. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0xed285ae1. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitiateValidatorRegistration(opts *bind.TransactOpts, nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initiateValidatorRegistration", nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, weight) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x9ba96b86. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0xed285ae1. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitiateValidatorRegistration(&_PoAValidatorManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, weight) } -// InitializeValidatorRegistration is a paid mutator transaction binding the contract method 0x9ba96b86. +// InitiateValidatorRegistration is a paid mutator transaction binding the contract method 0xed285ae1. // -// Solidity: function initializeValidatorRegistration((bytes,bytes,uint64,(uint32,address[]),(uint32,address[])) 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) +// Solidity: function initiateValidatorRegistration(bytes nodeID, bytes blsPublicKey, uint64 registrationExpiry, (uint32,address[]) remainingBalanceOwner, (uint32,address[]) disableOwner, uint64 weight) returns(bytes32 validationID) +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitiateValidatorRegistration(nodeID []byte, blsPublicKey []byte, registrationExpiry uint64, remainingBalanceOwner PChainOwner, disableOwner PChainOwner, weight uint64) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitiateValidatorRegistration(&_PoAValidatorManager.TransactOpts, nodeID, blsPublicKey, registrationExpiry, remainingBalanceOwner, disableOwner, weight) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb6e6a2ca. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitializeValidatorSet(opts *bind.TransactOpts, conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.contract.Transact(opts, "initializeValidatorSet", conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactor) InitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.contract.Transact(opts, "initiateValidatorRemoval", validationID) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb6e6a2ca. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerSession) InitiateValidatorRemoval(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitiateValidatorRemoval(&_PoAValidatorManager.TransactOpts, validationID) } -// InitializeValidatorSet is a paid mutator transaction binding the contract method 0x20d91b7a. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb6e6a2ca. // -// Solidity: function initializeValidatorSet((bytes32,bytes32,address,(bytes,bytes,uint64)[]) conversionData, uint32 messageIndex) returns() -func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitializeValidatorSet(conversionData ConversionData, messageIndex uint32) (*types.Transaction, error) { - return _PoAValidatorManager.Contract.InitializeValidatorSet(&_PoAValidatorManager.TransactOpts, conversionData, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID) returns() +func (_PoAValidatorManager *PoAValidatorManagerTransactorSession) InitiateValidatorRemoval(validationID [32]byte) (*types.Transaction, error) { + return _PoAValidatorManager.Contract.InitiateValidatorRemoval(&_PoAValidatorManager.TransactOpts, validationID) } // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. diff --git a/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go b/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go index 2fc70bcaf..13e84fd3c 100644 --- a/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go +++ b/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go @@ -63,7 +63,7 @@ type ValidatorMessagesValidationPeriod struct { // IPoSValidatorManagerMetaData contains all meta data concerning the IPoSValidatorManager contract. var IPoSValidatorManagerMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"CompletedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRegistration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InitiatedDelegatorRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"forceInitiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"forceInitiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"initiateDelegatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"initiateValidatorRemoval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IPoSValidatorManagerABI is the input ABI used to generate the binding from. @@ -296,214 +296,214 @@ func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) CompleteDele return _IPoSValidatorManager.Contract.CompleteDelegatorRegistration(&_IPoSValidatorManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) CompleteEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "completeEndDelegation", delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) CompleteDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "completeDelegatorRemoval", delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.CompleteEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.CompleteDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, messageIndex) } -// CompleteEndDelegation is a paid mutator transaction binding the contract method 0x80dd672f. +// CompleteDelegatorRemoval is a paid mutator transaction binding the contract method 0x13409645. // -// Solidity: function completeEndDelegation(bytes32 delegationID, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) CompleteEndDelegation(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.CompleteEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, messageIndex) +// Solidity: function completeDelegatorRemoval(bytes32 delegationID, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) CompleteDelegatorRemoval(delegationID [32]byte, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.CompleteDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "forceInitializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "forceInitiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation is a paid mutator transaction binding the contract method 0x1ec44724. +// ForceInitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x27bf60cd. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "forceInitializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "forceInitiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndDelegation0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateDelegatorRemoval0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// ForceInitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x37b9be8f. +// ForceInitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0xaac80c39. // -// Solidity: function forceInitializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndDelegation0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateDelegatorRemoval0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "forceInitializeEndValidation", validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "forceInitiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndValidation(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateValidatorRemoval(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation is a paid mutator transaction binding the contract method 0x3a1cfff6. +// ForceInitiateValidatorRemoval is a paid mutator transaction binding the contract method 0x16679564. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndValidation(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateValidatorRemoval(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "forceInitializeEndValidation0", validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ForceInitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "forceInitiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, recipientAddress) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndValidation0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateValidatorRemoval0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) } -// ForceInitializeEndValidation0 is a paid mutator transaction binding the contract method 0x7d8d2f77. +// ForceInitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0x4b396bcc. // -// Solidity: function forceInitializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ForceInitializeEndValidation0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function forceInitiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ForceInitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ForceInitiateValidatorRemoval0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitializeEndDelegation(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "initializeEndDelegation", delegationID, includeUptimeProof, messageIndex) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitiateDelegatorRemoval(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "initiateDelegatorRemoval", delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation is a paid mutator transaction binding the contract method 0x0118acc4. +// InitiateDelegatorRemoval is a paid mutator transaction binding the contract method 0x2aa56638. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitializeEndDelegation(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndDelegation(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitiateDelegatorRemoval(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateDelegatorRemoval(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitializeEndDelegation0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "initializeEndDelegation0", delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitiateDelegatorRemoval0(opts *bind.TransactOpts, delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "initiateDelegatorRemoval0", delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndDelegation0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateDelegatorRemoval0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndDelegation0 is a paid mutator transaction binding the contract method 0x9ae06447. +// InitiateDelegatorRemoval0 is a paid mutator transaction binding the contract method 0x8af5499e. // -// Solidity: function initializeEndDelegation(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitializeEndDelegation0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndDelegation0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateDelegatorRemoval(bytes32 delegationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitiateDelegatorRemoval0(delegationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateDelegatorRemoval0(&_IPoSValidatorManager.TransactOpts, delegationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitializeEndValidation(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "initializeEndValidation", validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitiateValidatorRemoval(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "initiateValidatorRemoval", validationID, includeUptimeProof, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndValidation(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateValidatorRemoval(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeEndValidation is a paid mutator transaction binding the contract method 0x5dd6a6cb. +// InitiateValidatorRemoval is a paid mutator transaction binding the contract method 0xb2c1712e. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitializeEndValidation(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndValidation(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitiateValidatorRemoval(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateValidatorRemoval(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitializeEndValidation0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "initializeEndValidation0", validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) InitiateValidatorRemoval0(opts *bind.TransactOpts, validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "initiateValidatorRemoval0", validationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndValidation0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateValidatorRemoval0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) } -// InitializeEndValidation0 is a paid mutator transaction binding the contract method 0x76f78621. +// InitiateValidatorRemoval0 is a paid mutator transaction binding the contract method 0xcc71bbba. // -// Solidity: function initializeEndValidation(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitializeEndValidation0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.InitializeEndValidation0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex) +// Solidity: function initiateValidatorRemoval(bytes32 validationID, bool includeUptimeProof, uint32 messageIndex, address recipientAddress) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) InitiateValidatorRemoval0(validationID [32]byte, includeUptimeProof bool, messageIndex uint32, recipientAddress common.Address) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.InitiateValidatorRemoval0(&_IPoSValidatorManager.TransactOpts, validationID, includeUptimeProof, messageIndex, recipientAddress) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ResendUpdateDelegation(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { - return _IPoSValidatorManager.contract.Transact(opts, "resendUpdateDelegation", delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactor) ResendUpdateDelegator(opts *bind.TransactOpts, delegationID [32]byte) (*types.Transaction, error) { + return _IPoSValidatorManager.contract.Transact(opts, "resendUpdateDelegator", delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ResendUpdateDelegation(&_IPoSValidatorManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ResendUpdateDelegator(&_IPoSValidatorManager.TransactOpts, delegationID) } -// ResendUpdateDelegation is a paid mutator transaction binding the contract method 0xba3a4b97. +// ResendUpdateDelegator is a paid mutator transaction binding the contract method 0x245dafcb. // -// Solidity: function resendUpdateDelegation(bytes32 delegationID) returns() -func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ResendUpdateDelegation(delegationID [32]byte) (*types.Transaction, error) { - return _IPoSValidatorManager.Contract.ResendUpdateDelegation(&_IPoSValidatorManager.TransactOpts, delegationID) +// Solidity: function resendUpdateDelegator(bytes32 delegationID) returns() +func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) ResendUpdateDelegator(delegationID [32]byte) (*types.Transaction, error) { + return _IPoSValidatorManager.Contract.ResendUpdateDelegator(&_IPoSValidatorManager.TransactOpts, delegationID) } // SubmitUptimeProof is a paid mutator transaction binding the contract method 0x25e1c776. @@ -527,9 +527,9 @@ func (_IPoSValidatorManager *IPoSValidatorManagerTransactorSession) SubmitUptime return _IPoSValidatorManager.Contract.SubmitUptimeProof(&_IPoSValidatorManager.TransactOpts, validationID, messageIndex) } -// IPoSValidatorManagerDelegationEndedIterator is returned from FilterDelegationEnded and is used to iterate over the raw logs and unpacked data for DelegationEnded events raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegationEndedIterator struct { - Event *IPoSValidatorManagerDelegationEnded // Event containing the contract specifics and raw log +// IPoSValidatorManagerCompletedDelegatorRegistrationIterator is returned from FilterCompletedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRegistration events raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerCompletedDelegatorRegistrationIterator struct { + Event *IPoSValidatorManagerCompletedDelegatorRegistration // 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 @@ -543,7 +543,7 @@ type IPoSValidatorManagerDelegationEndedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *IPoSValidatorManagerDelegationEndedIterator) Next() bool { +func (it *IPoSValidatorManagerCompletedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -552,7 +552,7 @@ func (it *IPoSValidatorManagerDelegationEndedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegationEnded) + it.Event = new(IPoSValidatorManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -567,7 +567,7 @@ func (it *IPoSValidatorManagerDelegationEndedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegationEnded) + it.Event = new(IPoSValidatorManagerCompletedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -583,30 +583,29 @@ func (it *IPoSValidatorManagerDelegationEndedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *IPoSValidatorManagerDelegationEndedIterator) Error() error { +func (it *IPoSValidatorManagerCompletedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *IPoSValidatorManagerDelegationEndedIterator) Close() error { +func (it *IPoSValidatorManagerCompletedDelegatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// IPoSValidatorManagerDelegationEnded represents a DelegationEnded event raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegationEnded struct { +// IPoSValidatorManagerCompletedDelegatorRegistration represents a CompletedDelegatorRegistration event raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerCompletedDelegatorRegistration struct { DelegationID [32]byte ValidationID [32]byte - Rewards *big.Int - Fees *big.Int + StartTime *big.Int Raw types.Log // Blockchain specific contextual infos } -// FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// FilterCompletedDelegatorRegistration is a free log retrieval operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerDelegationEndedIterator, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterCompletedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerCompletedDelegatorRegistrationIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -617,17 +616,17 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegationEnded validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &IPoSValidatorManagerDelegationEndedIterator{contract: _IPoSValidatorManager.contract, event: "DelegationEnded", logs: logs, sub: sub}, nil + return &IPoSValidatorManagerCompletedDelegatorRegistrationIterator{contract: _IPoSValidatorManager.contract, event: "CompletedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// WatchCompletedDelegatorRegistration is a free log subscription operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchCompletedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerCompletedDelegatorRegistration, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -638,7 +637,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded( validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "CompletedDelegatorRegistration", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -648,8 +647,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded( select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(IPoSValidatorManagerDelegationEnded) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { + event := new(IPoSValidatorManagerCompletedDelegatorRegistration) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -670,21 +669,21 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded( }), nil } -// ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. +// ParseCompletedDelegatorRegistration is a log parse operation binding the contract event 0x3886b7389bccb22cac62838dee3f400cf8b22289295283e01a2c7093f93dd5aa. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseDelegationEnded(log types.Log) (*IPoSValidatorManagerDelegationEnded, error) { - event := new(IPoSValidatorManagerDelegationEnded) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegationEnded", log); err != nil { +// Solidity: event CompletedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseCompletedDelegatorRegistration(log types.Log) (*IPoSValidatorManagerCompletedDelegatorRegistration, error) { + event := new(IPoSValidatorManagerCompletedDelegatorRegistration) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "CompletedDelegatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// IPoSValidatorManagerDelegatorAddedIterator is returned from FilterDelegatorAdded and is used to iterate over the raw logs and unpacked data for DelegatorAdded events raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorAddedIterator struct { - Event *IPoSValidatorManagerDelegatorAdded // Event containing the contract specifics and raw log +// IPoSValidatorManagerCompletedDelegatorRemovalIterator is returned from FilterCompletedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for CompletedDelegatorRemoval events raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerCompletedDelegatorRemovalIterator struct { + Event *IPoSValidatorManagerCompletedDelegatorRemoval // 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 @@ -698,7 +697,7 @@ type IPoSValidatorManagerDelegatorAddedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *IPoSValidatorManagerDelegatorAddedIterator) Next() bool { +func (it *IPoSValidatorManagerCompletedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -707,7 +706,7 @@ func (it *IPoSValidatorManagerDelegatorAddedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorAdded) + it.Event = new(IPoSValidatorManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -722,7 +721,7 @@ func (it *IPoSValidatorManagerDelegatorAddedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorAdded) + it.Event = new(IPoSValidatorManagerCompletedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -738,33 +737,30 @@ func (it *IPoSValidatorManagerDelegatorAddedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *IPoSValidatorManagerDelegatorAddedIterator) Error() error { +func (it *IPoSValidatorManagerCompletedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *IPoSValidatorManagerDelegatorAddedIterator) Close() error { +func (it *IPoSValidatorManagerCompletedDelegatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// IPoSValidatorManagerDelegatorAdded represents a DelegatorAdded event raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorAdded 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 +// IPoSValidatorManagerCompletedDelegatorRemoval represents a CompletedDelegatorRemoval event raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerCompletedDelegatorRemoval struct { + DelegationID [32]byte + ValidationID [32]byte + Rewards *big.Int + Fees *big.Int + Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorAdded is a free log retrieval operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// FilterCompletedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorAdded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*IPoSValidatorManagerDelegatorAddedIterator, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterCompletedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerCompletedDelegatorRemovalIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -774,22 +770,18 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorAdded( for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &IPoSValidatorManagerDelegatorAddedIterator{contract: _IPoSValidatorManager.contract, event: "DelegatorAdded", logs: logs, sub: sub}, nil + return &IPoSValidatorManagerCompletedDelegatorRemovalIterator{contract: _IPoSValidatorManager.contract, event: "CompletedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchDelegatorAdded is a free log subscription operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// WatchCompletedDelegatorRemoval is a free log subscription operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorAdded(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegatorAdded, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchCompletedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerCompletedDelegatorRemoval, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -799,12 +791,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorAdded(o for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var delegatorAddressRule []interface{} - for _, delegatorAddressItem := range delegatorAddress { - delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegatorAdded", delegationIDRule, validationIDRule, delegatorAddressRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "CompletedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -814,8 +802,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorAdded(o select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(IPoSValidatorManagerDelegatorAdded) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { + event := new(IPoSValidatorManagerCompletedDelegatorRemoval) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -836,21 +824,21 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorAdded(o }), nil } -// ParseDelegatorAdded is a log parse operation binding the contract event 0xb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a223426. +// ParseCompletedDelegatorRemoval is a log parse operation binding the contract event 0x5ecc5b26a9265302cf871229b3d983e5ca57dbb1448966c6c58b2d3c68bc7f7e. // -// Solidity: event DelegatorAdded(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseDelegatorAdded(log types.Log) (*IPoSValidatorManagerDelegatorAdded, error) { - event := new(IPoSValidatorManagerDelegatorAdded) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorAdded", log); err != nil { +// Solidity: event CompletedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseCompletedDelegatorRemoval(log types.Log) (*IPoSValidatorManagerCompletedDelegatorRemoval, error) { + event := new(IPoSValidatorManagerCompletedDelegatorRemoval) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "CompletedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log return event, nil } -// IPoSValidatorManagerDelegatorRegisteredIterator is returned from FilterDelegatorRegistered and is used to iterate over the raw logs and unpacked data for DelegatorRegistered events raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorRegisteredIterator struct { - Event *IPoSValidatorManagerDelegatorRegistered // Event containing the contract specifics and raw log +// IPoSValidatorManagerInitiatedDelegatorRegistrationIterator is returned from FilterInitiatedDelegatorRegistration and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRegistration events raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerInitiatedDelegatorRegistrationIterator struct { + Event *IPoSValidatorManagerInitiatedDelegatorRegistration // 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 @@ -864,7 +852,7 @@ type IPoSValidatorManagerDelegatorRegisteredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Next() bool { +func (it *IPoSValidatorManagerInitiatedDelegatorRegistrationIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -873,7 +861,7 @@ func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorRegistered) + it.Event = new(IPoSValidatorManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -888,7 +876,7 @@ func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorRegistered) + it.Event = new(IPoSValidatorManagerInitiatedDelegatorRegistration) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -904,29 +892,33 @@ func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Error() error { +func (it *IPoSValidatorManagerInitiatedDelegatorRegistrationIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *IPoSValidatorManagerDelegatorRegisteredIterator) Close() error { +func (it *IPoSValidatorManagerInitiatedDelegatorRegistrationIterator) Close() error { it.sub.Unsubscribe() return nil } -// IPoSValidatorManagerDelegatorRegistered represents a DelegatorRegistered event raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorRegistered struct { - DelegationID [32]byte - ValidationID [32]byte - StartTime *big.Int - Raw types.Log // Blockchain specific contextual infos +// IPoSValidatorManagerInitiatedDelegatorRegistration represents a InitiatedDelegatorRegistration event raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerInitiatedDelegatorRegistration 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 } -// FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// FilterInitiatedDelegatorRegistration is a free log retrieval operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerDelegatorRegisteredIterator, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitiatedDelegatorRegistration(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (*IPoSValidatorManagerInitiatedDelegatorRegistrationIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -936,18 +928,22 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRegist for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } - return &IPoSValidatorManagerDelegatorRegisteredIterator{contract: _IPoSValidatorManager.contract, event: "DelegatorRegistered", logs: logs, sub: sub}, nil + return &IPoSValidatorManagerInitiatedDelegatorRegistrationIterator{contract: _IPoSValidatorManager.contract, event: "InitiatedDelegatorRegistration", logs: logs, sub: sub}, nil } -// WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// WatchInitiatedDelegatorRegistration is a free log subscription operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitiatedDelegatorRegistration(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerInitiatedDelegatorRegistration, delegationID [][32]byte, validationID [][32]byte, delegatorAddress []common.Address) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -957,8 +953,12 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegiste for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } + var delegatorAddressRule []interface{} + for _, delegatorAddressItem := range delegatorAddress { + delegatorAddressRule = append(delegatorAddressRule, delegatorAddressItem) + } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitiatedDelegatorRegistration", delegationIDRule, validationIDRule, delegatorAddressRule) if err != nil { return nil, err } @@ -968,8 +968,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegiste select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(IPoSValidatorManagerDelegatorRegistered) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { + event := new(IPoSValidatorManagerInitiatedDelegatorRegistration) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", log); err != nil { return err } event.Raw = log @@ -990,21 +990,21 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegiste }), nil } -// ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. +// ParseInitiatedDelegatorRegistration is a log parse operation binding the contract event 0xdf91f7709a30fda3fc5fc5dc97cb5d5b05e67e193dccaaef3cb332d23fda83d1. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseDelegatorRegistered(log types.Log) (*IPoSValidatorManagerDelegatorRegistered, error) { - event := new(IPoSValidatorManagerDelegatorRegistered) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorRegistered", log); err != nil { +// Solidity: event InitiatedDelegatorRegistration(bytes32 indexed delegationID, bytes32 indexed validationID, address indexed delegatorAddress, uint64 nonce, uint64 validatorWeight, uint64 delegatorWeight, bytes32 setWeightMessageID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseInitiatedDelegatorRegistration(log types.Log) (*IPoSValidatorManagerInitiatedDelegatorRegistration, error) { + event := new(IPoSValidatorManagerInitiatedDelegatorRegistration) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "InitiatedDelegatorRegistration", log); err != nil { return nil, err } event.Raw = log return event, nil } -// IPoSValidatorManagerDelegatorRemovalInitializedIterator is returned from FilterDelegatorRemovalInitialized and is used to iterate over the raw logs and unpacked data for DelegatorRemovalInitialized events raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorRemovalInitializedIterator struct { - Event *IPoSValidatorManagerDelegatorRemovalInitialized // Event containing the contract specifics and raw log +// IPoSValidatorManagerInitiatedDelegatorRemovalIterator is returned from FilterInitiatedDelegatorRemoval and is used to iterate over the raw logs and unpacked data for InitiatedDelegatorRemoval events raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerInitiatedDelegatorRemovalIterator struct { + Event *IPoSValidatorManagerInitiatedDelegatorRemoval // 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 @@ -1018,7 +1018,7 @@ type IPoSValidatorManagerDelegatorRemovalInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Next() bool { +func (it *IPoSValidatorManagerInitiatedDelegatorRemovalIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1027,7 +1027,7 @@ func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorRemovalInitialized) + it.Event = new(IPoSValidatorManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1042,7 +1042,7 @@ func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(IPoSValidatorManagerDelegatorRemovalInitialized) + it.Event = new(IPoSValidatorManagerInitiatedDelegatorRemoval) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1058,28 +1058,28 @@ func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Error() error { +func (it *IPoSValidatorManagerInitiatedDelegatorRemovalIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *IPoSValidatorManagerDelegatorRemovalInitializedIterator) Close() error { +func (it *IPoSValidatorManagerInitiatedDelegatorRemovalIterator) Close() error { it.sub.Unsubscribe() return nil } -// IPoSValidatorManagerDelegatorRemovalInitialized represents a DelegatorRemovalInitialized event raised by the IPoSValidatorManager contract. -type IPoSValidatorManagerDelegatorRemovalInitialized struct { +// IPoSValidatorManagerInitiatedDelegatorRemoval represents a InitiatedDelegatorRemoval event raised by the IPoSValidatorManager contract. +type IPoSValidatorManagerInitiatedDelegatorRemoval struct { DelegationID [32]byte ValidationID [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterDelegatorRemovalInitialized is a free log retrieval operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// FilterInitiatedDelegatorRemoval is a free log retrieval operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRemovalInitialized(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerDelegatorRemovalInitializedIterator, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitiatedDelegatorRemoval(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte) (*IPoSValidatorManagerInitiatedDelegatorRemovalIterator, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1090,17 +1090,17 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRemova validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } - return &IPoSValidatorManagerDelegatorRemovalInitializedIterator{contract: _IPoSValidatorManager.contract, event: "DelegatorRemovalInitialized", logs: logs, sub: sub}, nil + return &IPoSValidatorManagerInitiatedDelegatorRemovalIterator{contract: _IPoSValidatorManager.contract, event: "InitiatedDelegatorRemoval", logs: logs, sub: sub}, nil } -// WatchDelegatorRemovalInitialized is a free log subscription operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// WatchInitiatedDelegatorRemoval is a free log subscription operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegatorRemovalInitialized, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitiatedDelegatorRemoval(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerInitiatedDelegatorRemoval, delegationID [][32]byte, validationID [][32]byte) (event.Subscription, error) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1111,7 +1111,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRemoval validationIDRule = append(validationIDRule, validationIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegatorRemovalInitialized", delegationIDRule, validationIDRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitiatedDelegatorRemoval", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1121,8 +1121,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRemoval select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(IPoSValidatorManagerDelegatorRemovalInitialized) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { + event := new(IPoSValidatorManagerInitiatedDelegatorRemoval) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return err } event.Raw = log @@ -1143,12 +1143,12 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRemoval }), nil } -// ParseDelegatorRemovalInitialized is a log parse operation binding the contract event 0x366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed57. +// ParseInitiatedDelegatorRemoval is a log parse operation binding the contract event 0x5abe543af12bb7f76f6fa9daaa9d95d181c5e90566df58d3c012216b6245eeaf. // -// Solidity: event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseDelegatorRemovalInitialized(log types.Log) (*IPoSValidatorManagerDelegatorRemovalInitialized, error) { - event := new(IPoSValidatorManagerDelegatorRemovalInitialized) - if err := _IPoSValidatorManager.contract.UnpackLog(event, "DelegatorRemovalInitialized", log); err != nil { +// Solidity: event InitiatedDelegatorRemoval(bytes32 indexed delegationID, bytes32 indexed validationID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseInitiatedDelegatorRemoval(log types.Log) (*IPoSValidatorManagerInitiatedDelegatorRemoval, error) { + event := new(IPoSValidatorManagerInitiatedDelegatorRemoval) + if err := _IPoSValidatorManager.contract.UnpackLog(event, "InitiatedDelegatorRemoval", log); err != nil { return nil, err } event.Raw = log diff --git a/tests/flows/validator-manager/erc20_token_staking.go b/tests/flows/validator-manager/erc20_token_staking.go index a561a9dc3..c9ec90346 100644 --- a/tests/flows/validator-manager/erc20_token_staking.go +++ b/tests/flows/validator-manager/erc20_token_staking.go @@ -142,7 +142,7 @@ func ERC20TokenStakingManager(network *localnetwork.LocalNetwork) { ) initRegistrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - erc20StakingManager.ParseDelegatorAdded, + erc20StakingManager.ParseInitiatedDelegatorRegistration, ) Expect(err).Should(BeNil()) delegationID = initRegistrationEvent.DelegationID @@ -185,7 +185,7 @@ func ERC20TokenStakingManager(network *localnetwork.LocalNetwork) { // Check that the validator is registered in the staking contract registrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - erc20StakingManager.ParseDelegatorRegistered, + erc20StakingManager.ParseCompletedDelegatorRegistration, ) Expect(err).Should(BeNil()) Expect(registrationEvent.ValidationID[:]).Should(Equal(validationID[:])) @@ -207,7 +207,7 @@ func ERC20TokenStakingManager(network *localnetwork.LocalNetwork) { ) delegatorRemovalEvent, err := utils.GetEventFromLogs( receipt.Logs, - erc20StakingManager.ParseDelegatorRemovalInitialized, + erc20StakingManager.ParseInitiatedDelegatorRemoval, ) Expect(err).Should(BeNil()) Expect(delegatorRemovalEvent.ValidationID[:]).Should(Equal(validationID[:])) @@ -254,7 +254,7 @@ func ERC20TokenStakingManager(network *localnetwork.LocalNetwork) { // Check that the delegator has been delisted from the staking contract registrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - erc20StakingManager.ParseDelegationEnded, + erc20StakingManager.ParseCompletedDelegatorRemoval, ) Expect(err).Should(BeNil()) Expect(registrationEvent.ValidationID[:]).Should(Equal(validationID[:])) diff --git a/tests/flows/validator-manager/native_token_staking.go b/tests/flows/validator-manager/native_token_staking.go index 75e209dc9..81f2b1604 100644 --- a/tests/flows/validator-manager/native_token_staking.go +++ b/tests/flows/validator-manager/native_token_staking.go @@ -136,7 +136,7 @@ func NativeTokenStakingManager(network *localnetwork.LocalNetwork) { ) initRegistrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - nativeStakingManager.ParseDelegatorAdded, + nativeStakingManager.ParseInitiatedDelegatorRegistration, ) Expect(err).Should(BeNil()) delegationID = initRegistrationEvent.DelegationID @@ -179,7 +179,7 @@ func NativeTokenStakingManager(network *localnetwork.LocalNetwork) { // Check that the validator is registered in the staking contract registrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - nativeStakingManager.ParseDelegatorRegistered, + nativeStakingManager.ParseCompletedDelegatorRegistration, ) Expect(err).Should(BeNil()) Expect(registrationEvent.ValidationID[:]).Should(Equal(validationID[:])) @@ -200,7 +200,7 @@ func NativeTokenStakingManager(network *localnetwork.LocalNetwork) { ) delegatorRemovalEvent, err := utils.GetEventFromLogs( receipt.Logs, - nativeStakingManager.ParseDelegatorRemovalInitialized, + nativeStakingManager.ParseInitiatedDelegatorRemoval, ) Expect(err).Should(BeNil()) Expect(delegatorRemovalEvent.ValidationID[:]).Should(Equal(validationID[:])) @@ -247,7 +247,7 @@ func NativeTokenStakingManager(network *localnetwork.LocalNetwork) { // Check that the delegator has been delisted from the staking contract registrationEvent, err := utils.GetEventFromLogs( receipt.Logs, - nativeStakingManager.ParseDelegationEnded, + nativeStakingManager.ParseCompletedDelegatorRemoval, ) Expect(err).Should(BeNil()) Expect(registrationEvent.ValidationID[:]).Should(Equal(validationID[:])) diff --git a/tests/flows/validator-manager/poa_to_pos.go b/tests/flows/validator-manager/poa_to_pos.go index 2d98adda1..06299f4cb 100644 --- a/tests/flows/validator-manager/poa_to_pos.go +++ b/tests/flows/validator-manager/poa_to_pos.go @@ -104,13 +104,13 @@ func PoAMigrationToPoS(network *localnetwork.LocalNetwork) { opts, err := bind.NewKeyedTransactorWithChainID(fundedKey, l1AInfo.EVMChainID) Expect(err).Should(BeNil()) - _, err = poaValidatorManager.InitializeValidatorRegistration( + _, err = poaValidatorManager.InitiateValidatorRegistration( opts, - poavalidatormanager.ValidatorRegistrationInput{ - NodeID: nodes[0].NodeID[:], - RegistrationExpiry: uint64(time.Now().Add(24 * time.Hour).Unix()), - BlsPublicKey: nodes[0].NodePoP.PublicKey[:], - }, + nodes[0].NodeID[:], + nodes[0].NodePoP.PublicKey[:], + uint64(time.Now().Add(24*time.Hour).Unix()), + poavalidatormanager.PChainOwner{}, + poavalidatormanager.PChainOwner{}, nodes[0].Weight, ) Expect(err).ShouldNot(BeNil()) diff --git a/tests/utils/validator_manager.go b/tests/utils/validator_manager.go index 854ece5ab..99a639709 100644 --- a/tests/utils/validator_manager.go +++ b/tests/utils/validator_manager.go @@ -385,13 +385,13 @@ func InitializeNativeValidatorRegistration( Expect(err).Should(BeNil()) opts.Value = stakeAmount - tx, err := stakingManager.InitializeValidatorRegistration( + tx, err := stakingManager.InitiateValidatorRegistration( opts, - nativetokenstakingmanager.ValidatorRegistrationInput{ - NodeID: node.NodeID[:], - RegistrationExpiry: expiry, - BlsPublicKey: node.NodePoP.PublicKey[:], - }, + node.NodeID[:], + node.NodePoP.PublicKey[:], + expiry, + nativetokenstakingmanager.PChainOwner{}, + nativetokenstakingmanager.PChainOwner{}, DefaultMinDelegateFeeBips, DefaultMinStakeDurationSeconds, ) @@ -431,13 +431,13 @@ func InitializeERC20ValidatorRegistration( opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := stakingManager.InitializeValidatorRegistration( + tx, err := stakingManager.InitiateValidatorRegistration( opts, - erc20tokenstakingmanager.ValidatorRegistrationInput{ - NodeID: node.NodeID[:], - RegistrationExpiry: expiry, - BlsPublicKey: node.NodePoP.PublicKey[:], - }, + node.NodeID[:], + node.NodePoP.PublicKey[:], + expiry, + erc20tokenstakingmanager.PChainOwner{}, + erc20tokenstakingmanager.PChainOwner{}, DefaultMinDelegateFeeBips, DefaultMinStakeDurationSeconds, stakeAmount, @@ -467,13 +467,13 @@ func InitializePoAValidatorRegistration( opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := validatorManager.InitializeValidatorRegistration( + tx, err := validatorManager.InitiateValidatorRegistration( opts, - poavalidatormanager.ValidatorRegistrationInput{ - NodeID: node.NodeID[:], - RegistrationExpiry: expiry, - BlsPublicKey: node.NodePoP.PublicKey[:], - }, + node.NodeID[:], + node.NodePoP.PublicKey[:], + expiry, + poavalidatormanager.PChainOwner{}, + poavalidatormanager.PChainOwner{}, node.Weight, ) Expect(err).Should(BeNil()) @@ -774,11 +774,12 @@ func InitializeEndPoSValidation( ) *types.Receipt { opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := stakingManager.InitializeEndValidation0( + tx, err := stakingManager.InitiateValidatorRemoval0( opts, validationID, false, 0, + common.Address{}, ) Expect(err).Should(BeNil()) return WaitForTransactionSuccess(ctx, l1, tx.Hash()) @@ -793,7 +794,7 @@ func ForceInitializeEndPoSValidation( ) *types.Receipt { opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := stakingManager.ForceInitializeEndValidation( + tx, err := stakingManager.ForceInitiateValidatorRemoval( opts, validationID, false, @@ -851,7 +852,7 @@ func ForceInitializeEndPoSValidationWithUptime( abi, err := iposvalidatormanager.IPoSValidatorManagerMetaData.GetAbi() Expect(err).Should(BeNil()) - callData, err := abi.Pack("forceInitializeEndValidation", validationID, true, uint32(0)) + callData, err := abi.Pack("forceInitiateValidatorRemoval", validationID, true, uint32(0)) Expect(err).Should(BeNil()) return CallWarpReceiver( ctx, @@ -883,7 +884,7 @@ func InitializeEndPoSValidationWithUptime( abi, err := iposvalidatormanager.IPoSValidatorManagerMetaData.GetAbi() Expect(err).Should(BeNil()) - callData, err := abi.Pack("initializeEndValidation", validationID, true, uint32(0)) + callData, err := abi.Pack("initiateValidatorRemoval", validationID, true, uint32(0)) Expect(err).Should(BeNil()) return CallWarpReceiver( ctx, @@ -904,7 +905,7 @@ func InitializeEndPoAValidation( ) *types.Receipt { opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := validatorManager.InitializeEndValidation( + tx, err := validatorManager.InitiateValidatorRemoval( opts, validationID, ) @@ -955,7 +956,7 @@ func InitializeERC20DelegatorRegistration( opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := stakingManager.InitializeDelegatorRegistration( + tx, err := stakingManager.InitiateDelegatorRegistration( opts, validationID, delegationAmount, @@ -964,7 +965,7 @@ func InitializeERC20DelegatorRegistration( receipt := WaitForTransactionSuccess(ctx, l1, tx.Hash()) _, err = GetEventFromLogs( receipt.Logs, - stakingManager.ParseDelegatorAdded, + stakingManager.ParseInitiatedDelegatorRegistration, ) Expect(err).Should(BeNil()) return receipt @@ -983,7 +984,7 @@ func InitializeNativeDelegatorRegistration( Expect(err).Should(BeNil()) opts.Value = delegationAmount - tx, err := stakingManager.InitializeDelegatorRegistration( + tx, err := stakingManager.InitiateDelegatorRegistration( opts, validationID, ) @@ -991,7 +992,7 @@ func InitializeNativeDelegatorRegistration( receipt := WaitForTransactionSuccess(ctx, l1, tx.Hash()) _, err = GetEventFromLogs( receipt.Logs, - stakingManager.ParseDelegatorAdded, + stakingManager.ParseInitiatedDelegatorRegistration, ) Expect(err).Should(BeNil()) return receipt @@ -1031,7 +1032,7 @@ func InitializeEndDelegation( WaitMinStakeDuration(ctx, l1, senderKey) opts, err := bind.NewKeyedTransactorWithChainID(senderKey, l1.EVMChainID) Expect(err).Should(BeNil()) - tx, err := stakingManager.ForceInitializeEndDelegation( + tx, err := stakingManager.ForceInitiateDelegatorRemoval( opts, delegationID, false,