diff --git a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go index 40d1e4aaa..e402c6b1e 100644 --- a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go +++ b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go @@ -103,8 +103,8 @@ type ValidatorRegistrationInput struct { // 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\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"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\":true,\"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\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"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\":true,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":[{\"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\":[{\"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: "0x608060405234801561000f575f80fd5b50604051615f20380380615f2083398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615dd38061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c806380dd672f11610135578063b771b3bc116100b4578063d5f20ff611610079578063d5f20ff61461051c578063df93d8de1461053c578063e4a63c4014610546578063fb8b11dd1461055a578063fd7ac5e71461056d575f80fd5b8063b771b3bc146104cc578063ba3a4b97146104da578063bc5fbfec146104ed578063bee0a03f14610501578063c974d1b614610514575f80fd5b80639e1bc4ef116100fa5780639e1bc4ef1461046c5780639e478eea1461047f578063a3a65e4814610492578063a9778a7a146102ee578063afb98096146104a5575f80fd5b806380dd672f146104185780638280a25a1461042b5780638ef34c981461043357806393e24598146104465780639ae0644714610459575f80fd5b8063467ef06f116101c1578063620658561161018657806362065856146103a7578063732214f8146103ba57806376f78621146103c1578063785e9e86146103d45780637d8d2f7714610405575f80fd5b8063467ef06f146103305780634bee0040146103435780635dd6a6cb1461036457806360305d621461037757806360ad778414610394575f80fd5b806325e1c7761161020757806325e1c776146102b05780632e2194d8146102c357806335455ded146102ee57806337b9be8f1461030a5780633a1cfff61461031d575f80fd5b80630118acc4146102435780630322ed9814610258578063151d30d11461026b5780631ec447241461028a57806320d91b7a1461029d575b5f80fd5b610256610251366004614ceb565b610580565b005b610256610266366004614d26565b610591565b610273600a81565b60405160ff90911681526020015b60405180910390f35b610256610298366004614ceb565b610821565b6102566102ab366004614d3d565b61082d565b6102566102be366004614d8b565b610dd4565b6102d66102d1366004614d26565b610e48565b6040516001600160401b039091168152602001610281565b6102f761271081565b60405161ffff9091168152602001610281565b610256610318366004614dc0565b610e9c565b61025661032b366004614ceb565b610eaf565b61025661033e366004614e0e565b610ebb565b610356610351366004614e4c565b610f8d565b604051908152602001610281565b610256610372366004614dc0565b610fc2565b61037f601481565b60405163ffffffff9091168152602001610281565b6102566103a2366004614d8b565b610fce565b6103566103b5366004614eb3565b61128a565b6103565f81565b6102566103cf366004614ceb565b6112aa565b5f80516020615d1e833981519152546001600160a01b03165b6040516001600160a01b039091168152602001610281565b610256610413366004614dc0565b6112b6565b610256610426366004614d8b565b6112c2565b610273603081565b610256610441366004614ece565b6114fc565b610256610454366004614d26565b6115ad565b610256610467366004614dc0565b611641565b61035661047a366004614efc565b61164d565b61025661048d366004614f1c565b611679565b6102566104a0366004614e0e565b611758565b6103567f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6103ed6005600160991b0181565b6102566104e8366004614d26565b611940565b6103565f80516020615d3e83398151915281565b61025661050f366004614d26565b611b99565b610273601481565b61052f61052a366004614d26565b611cd5565b6040516102819190614fc4565b6102d66202a30081565b6103565f80516020615d1e83398151915281565b610256610568366004614ece565b611e24565b61035661057b366004615044565b611ebb565b61058c8383835f611f16565b505050565b5f8181525f80516020615d5e8339815191526020526040808220815160e0810190925280545f80516020615d3e83398151915293929190829060ff1660058111156105de576105de614f4f565b60058111156105ef576105ef614f4f565b8152602001600182018054610603906150af565b80601f016020809104026020016040519081016040528092919081815260200182805461062f906150af565b801561067a5780601f106106515761010080835404028352916020019161067a565b820191905f5260205f20905b81548152906001019060200180831161065d57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156106e5576106e5614f4f565b14610721575f8381526005830160205260409081902054905163170cc93360e21b81526107189160ff16906004016150e7565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610798573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107bf91908101906151f0565b6040518263ffffffff1660e01b81526004016107db9190615221565b6020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b9190615233565b50505050565b61081b8383835f611f42565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615d3e8339815191529060ff161561087f57604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e69190615233565b83602001351461090f576040516372b0a7e760e11b815260208401356004820152602401610718565b30610920606085016040860161524a565b6001600160a01b0316146109635761093e606084016040850161524a565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610718565b5f6109716060850185615265565b905090505f805b828163ffffffff161015610bca575f6109946060880188615265565b8363ffffffff168181106109aa576109aa6152aa565b90506020028101906109bc91906152be565b6109c590615329565b80516040519192505f9160068801916109dd916153a4565b90815260200160405180910390205414610a0d57805160405163a41f772f60e01b81526107189190600401615221565b5f6002885f013584604051602001610a3c92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610a56916153a4565b602060405180830381855afa158015610a71573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a949190615233565b90508086600601835f0151604051610aac91906153a4565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610aec90826153f9565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610b6c90856154c8565b935081604001516001600160401b0316817fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff845f0151604051610baf9190615221565b60405180910390a3505080610bc3906154e8565b9050610978565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c0d910460ff168361550a565b6001600160401b03161015610c4057604051633e1a785160e01b81526001600160401b0382166004820152602401610718565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610c648761226f565b604001516040518263ffffffff1660e01b8152600401610c849190615221565b602060405180830381865af4158015610c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615233565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610cfd9190615660565b5f60405180830381865af4158015610d17573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d3e91908101906151f0565b90505f600282604051610d5191906153a4565b602060405180830381855afa158015610d6c573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d8f9190615233565b9050828114610dbb5760405163baaea89d60e01b81526004810182905260248101849052604401610718565b5050506007909201805460ff1916600117905550505050565b610ddd82612385565b610dfd576040516330efa98b60e01b815260048101839052602401610718565b5f610e0783611cd5565b5190506002816005811115610e1e57610e1e614f4f565b14610e3e578060405163170cc93360e21b815260040161071891906150e7565b61081b83836123ae565b5f80610e52612642565b60030154610e6090846156f4565b9050801580610e7557506001600160401b0381115b15610e965760405163222d164360e21b815260048101849052602401610718565b92915050565b610ea884848484611f42565b5050505050565b61081b8383835f612666565b610ec36128a3565b5f610ecc612642565b90505f80610ed9846128da565b91509150610ee682612385565b610ef257505050610f74565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680610f345750805b600483516005811115610f4957610f49614f4f565b03610f5857610f588185612c92565b610f6e82610f69856040015161128a565b612cbc565b50505050505b610f8a60015f80516020615d7e83398151915255565b50565b5f610f966128a3565b610fa285858585612cf2565b9050610fba60015f80516020615d7e83398151915255565b949350505050565b61081b84848484612e72565b5f610fd7612642565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561101057611010614f4f565b600381111561102157611021614f4f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61109782611cd5565b90506001835160038111156110ae576110ae614f4f565b146110cf578251604051633b0d540d60e21b81526107189190600401615713565b6004815160058111156110e4576110e4614f4f565b036110fa576110f286612e9e565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61111f8961226f565b604001516040518263ffffffff1660e01b815260040161113f9190615221565b606060405180830381865af415801561115a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117e919061572d565b50915091508184146111ab57846040015160405163089938b360e11b815260040161071891815260200190565b806001600160401b031683606001516001600160401b031610806111e45750806001600160401b03168560a001516001600160401b0316115b1561120d57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5f888152600787016020526040808220805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559051909186918b917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f691a45050505050505050565b5f611293612642565b60030154610e96906001600160401b03841661576d565b61058c8383835f612e72565b610ea884848484612666565b6112ca6128a3565b5f6112d3612642565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561130c5761130c614f4f565b600381111561131d5761131d614f4f565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152905060038151600381111561139657611396614f4f565b146113b7578051604051633b0d540d60e21b81526107189190600401615713565b60046113c68260400151611cd5565b5160058111156113d8576113d8614f4f565b146114d7575f6113e78461226f565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016114269190615221565b606060405180830381865af4158015611441573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611465919061572d565b5091509150818460400151146114915760405163089938b360e11b815260048101839052602401610718565b806001600160401b03168460c001516001600160401b031611156114d357604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5050505b6114e084612e9e565b50506114f860015f80516020615d7e83398151915255565b5050565b5f611505612642565b90506001600160a01b0382166115395760405163caa903f960e01b81526001600160a01b0383166004820152602401610718565b5f8381526006820160205260409020546001600160a01b0316331461157f57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610718565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6115b6612642565b90505f6115c283611cd5565b51905060048160058111156115d9576115d9614f4f565b146115f9578060405163170cc93360e21b815260040161071891906150e7565b5f8381526006830160205260409020546001600160a01b0316331461161e573361155a565b5f83815260068301602052604090205461058c906001600160a01b031684612c92565b61081b84848484611f16565b5f6116566128a3565b611661833384613097565b9050610e9660015f80516020615d7e83398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806116c2575080546001600160401b03808416911610155b156116e05760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561170b84846132dc565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615d3e8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61178b8661226f565b604001516040518263ffffffff1660e01b81526004016117ab9190615221565b6040805180830381865af41580156117c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e99190615784565b915091508061180f57604051632d07135360e01b81528115156004820152602401610718565b5f82815260048401602052604090208054611829906150af565b90505f0361184d5760405163089938b360e11b815260048101839052602401610718565b60015f838152600580860160205260409091205460ff169081111561187457611874614f4f565b146118a7575f8281526005840160205260409081902054905163170cc93360e21b81526107189160ff16906004016150e7565b5f82815260048401602052604081206118bf91614c3a565b5f828152600584016020526040808220805460ff1916600290811782550180546001600160c01b0316600160c01b426001600160401b0381811692909202929092179283905592519093600160801b9092049092169185917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b91a450505050565b5f611949612642565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561198257611982614f4f565b600381111561199357611993614f4f565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611a0c57611a0c614f4f565b14158015611a2d5750600381516003811115611a2a57611a2a614f4f565b14155b15611a4e578051604051633b0d540d60e21b81526107189190600401615713565b5f611a5c8260400151611cd5565b905080606001516001600160401b03165f03611a8e576040516339b894f960e21b815260048101859052602401610718565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611afc93906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611b16573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b3d91908101906151f0565b6040518263ffffffff1660e01b8152600401611b599190615221565b6020604051808303815f875af1158015611b75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea89190615233565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615d3e8339815191529190611be0906150af565b90505f03611c045760405163089938b360e11b815260048101839052602401610718565b60015f838152600580840160205260409091205460ff1690811115611c2b57611c2b614f4f565b14611c5e575f8281526005820160205260409081902054905163170cc93360e21b81526107189160ff16906004016150e7565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611c9592016157a7565b6020604051808303815f875af1158015611cb1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c9190615233565b611cdd614c71565b5f8281525f80516020615d5e833981519152602052604090819020815160e0810190925280545f80516020615d3e833981519152929190829060ff166005811115611d2a57611d2a614f4f565b6005811115611d3b57611d3b614f4f565b8152602001600182018054611d4f906150af565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7b906150af565b8015611dc65780601f10611d9d57610100808354040283529160200191611dc6565b820191905f5260205f20905b815481529060010190602001808311611da957829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611e565760405163caa903f960e01b81526001600160a01b0382166004820152602401610718565b5f611e5f612642565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611e8d573361155a565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615d3e833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611efe9086908690615831565b90815260200160405180910390205491505092915050565b611f2284848484611f42565b61081b57604051631036cf9160e11b815260048101859052602401610718565b5f80611f4c612642565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611f8557611f85614f4f565b6003811115611f9657611f96614f4f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61200c82611cd5565b905060028351600381111561202357612023614f4f565b14612044578251604051633b0d540d60e21b81526107189190600401615713565b60208301516001600160a01b031633146120e0575f8281526006850160205260409020546001600160a01b0316331461207d573361155a565b5f82815260068501602052604090205460a08201516120ac91600160b01b90046001600160401b0316906154c8565b6001600160401b03164210156120e05760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b6002815160058111156120f5576120f5614f4f565b036122175760028401546080840151612117916001600160401b0316906154c8565b6001600160401b031642101561214b5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b871561215d5761215b82886123ae565b505b5f8981526007850160205260409020805460ff19166003179055606083015160808201516121969184916121919190615840565b6132f6565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b03909316929092179091556121d984888c6134d3565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610fba9350505050565b60048151600581111561222c5761222c614f4f565b036122535761223c83878b6134d3565b5061224689612e9e565b6001945050505050610fba565b805160405163170cc93360e21b815261071891906004016150e7565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156122d3573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122fa9190810190615860565b915091508061231c57604051636b2f19e960e01b815260040160405180910390fd5b815115612342578151604051636ba589a560e01b81526004810191909152602401610718565b60208201516001600160a01b03161561237e576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5092915050565b5f8061238f612642565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156123f9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124209190810190615860565b915091508061244257604051636b2f19e960e01b815260040160405180910390fd5b5f61244b612642565b6005810154845191925014612479578251604051636ba589a560e01b81526004810191909152602401610718565b60208301516001600160a01b0316156124b5576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b60208301516001600160a01b0316156124f1576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b815260040161252e9190615221565b6040805180830381865af4158015612548573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061256c91906158f0565b915091508188146125935760405163089938b360e11b815260048101899052602401610718565b5f8881526006840160205260409020600101546001600160401b039081169082161115612619575f888152600684016020526040808220600101805467ffffffffffffffff19166001600160401b038516908117909155905190918a917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d04359190a3612637565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f80612670612642565b90505f61267c876136c1565b905061268787612385565b61269657600192505050610fba565b5f8781526006830160205260409020546001600160a01b031633146126bb573361155a565b5f87815260068301602052604090205460a08201516126ea91600160b01b90046001600160401b0316906154c8565b6001600160401b03168160c001516001600160401b031610156127315760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610718565b5f86156127495761274288876123ae565b9050612767565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f9061278c9061128a565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa1580156127f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128199190615233565b90506001600160a01b038616612845575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612864908490615913565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615d7e8339815191528054600119016128d457604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f6128e3614c71565b5f80516020615d3e8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6129168861226f565b604001516040518263ffffffff1660e01b81526004016129369190615221565b6040805180830381865af4158015612950573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129749190615784565b91509150801561299b57604051632d07135360e01b81528115156004820152602401610718565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156129d2576129d2614f4f565b60058111156129e3576129e3614f4f565b81526020016001820180546129f7906150af565b80601f0160208091040260200160405190810160405280929190818152602001828054612a23906150af565b8015612a6e5780601f10612a4557610100808354040283529160200191612a6e565b820191905f5260205f20905b815481529060010190602001808311612a5157829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612ad957612ad9614f4f565b14158015612afa5750600181516005811115612af757612af7614f4f565b14155b15612b1b57805160405163170cc93360e21b815261071891906004016150e7565b600381516005811115612b3057612b30614f4f565b03612b3e5760048152612b43565b600581525b836006018160200151604051612b5991906153a4565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612b9c57612b9c614f4f565b021790555060208201516001820190612bb590826153f9565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612c5b57612c5b614f4f565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612c9b612642565b5f838152600a820160205260408120805491905590915061081b84826139a3565b5f80516020615d1e833981519152546114f8906001600160a01b03168383613a19565b60015f80516020615d7e83398151915255565b5f80612cfc612642565b600281015490915061ffff600160401b90910481169086161080612d25575061271061ffff8616115b15612d4957604051635f12e6c360e11b815261ffff86166004820152602401610718565b60028101546001600160401b039081169085161015612d85576040516202a06d60e11b81526001600160401b0385166004820152602401610718565b8054831080612d975750806001015483115b15612db85760405163222d164360e21b815260048101849052602401610718565b5f612dc284613a78565b90505f612dce82610e48565b90505f612ddb8983613a9b565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b612e7e84848484612666565b61081b57604051635bff683f60e11b815260048101859052602401610718565b5f612ea7612642565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612ee057612ee0614f4f565b6003811115612ef157612ef1614f4f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612f8e7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612f9d91906154c8565b6001600160401b0316421015612fd15760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b03168061302c575060208201515b5f80613039838886613fe8565b915091506130528560200151610f69876060015161128a565b8184887f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc9938460405161308691815260200190565b60405180910390a450505050505050565b5f806130a1612642565b90505f6130b06102d185613a78565b90505f6130bc87611cd5565b90506130c787612385565b6130e7576040516330efa98b60e01b815260048101889052602401610718565b6002815160058111156130fc576130fc614f4f565b1461311d57805160405163170cc93360e21b815261071891906004016150e7565b5f82826080015161312e91906154c8565b905083600201600a9054906101000a90046001600160401b03168260400151613157919061550a565b6001600160401b0316816001600160401b0316111561319457604051636d51fe0560e11b81526001600160401b0382166004820152602401610718565b5f806131a08a846132f6565b915091505f8a836040516020016131ce92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b6132e4614095565b6132ed826140e0565b6114f88161415a565b5f8281525f80516020615d5e833981519152602052604081206002015481905f80516020615d3e83398151915290600160801b90046001600160401b031661333e85826141c2565b5f6133488761442c565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156133f1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261341891908101906151f0565b6040518263ffffffff1660e01b81526004016134349190615221565b6020604051808303815f875af1158015613450573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134749190615233565b9050866001600160401b0316826001600160401b0316897f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df846040516134bc91815260200190565b60405180910390a4909450925050505b9250929050565b5f806134dd612642565b90505f6134ed8660400151611cd5565b90505f60038251600581111561350557613505614f4f565b1480613523575060048251600581111561352157613521614f4f565b145b15613533575060c0810151613570565b60028251600581111561354857613548614f4f565b03613554575042613570565b815160405163170cc93360e21b815261071891906004016150e7565b86608001516001600160401b0316816001600160401b031611613598575f93505050506132d5565b600483015460608801515f916001600160a01b031690634f22429f906135bd9061128a565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561363e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136629190615233565b90506001600160a01b03871661367a57876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6136c9614c71565b5f8281525f80516020615d5e8339815191526020526040808220815160e0810190925280545f80516020615d3e83398151915293929190829060ff16600581111561371657613716614f4f565b600581111561372757613727614f4f565b815260200160018201805461373b906150af565b80601f0160208091040260200160405190810160405280929190818152602001828054613767906150af565b80156137b25780601f10613789576101008083540402835291602001916137b2565b820191905f5260205f20905b81548152906001019060200180831161379557829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a0909101529091508151600581111561382057613820614f4f565b14613853575f8481526005830160205260409081902054905163170cc93360e21b81526107189160ff16906004016150e7565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff191690600190849081111561389857613898614f4f565b0217905550602082015160018201906138b190826153f9565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61394f85826132f6565b91505081608001516001600160401b031681867ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa424260405161399391815260200190565b60405180910390a4509392505050565b5f5f80516020615d1e83398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b1580156139fe575f80fd5b505af1158015613a10573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261058c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506144a1565b5f610e96825f80516020615d1e833981519152546001600160a01b031690614502565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613adf57604051637fab81e560e01b815260040160405180910390fd5b5f80516020615d3e83398151915242613afe6060860160408701614eb3565b6001600160401b0316111580613b385750613b1c6202a30042615913565b613b2c6060860160408701614eb3565b6001600160401b031610155b15613b7257613b4d6060850160408601614eb3565b604051635879da1360e11b81526001600160401b039091166004820152602401610718565b60038101546001600160401b0390613b9590600160401b90048216858316615913565b1115613bbf57604051633e1a785160e01b81526001600160401b0384166004820152602401610718565b613bd4613bcf6060860186615926565b61450e565b613be4613bcf6080860186615926565b6030613bf3602086018661593a565b905014613c2557613c07602085018561593a565b6040516326475b2f60e11b8152610718925060040190815260200190565b613c2f848061593a565b90505f03613c5c57613c41848061593a565b604051633e08a12560e11b815260040161071892919061597c565b5f60068201613c6b868061593a565b604051613c79929190615831565b90815260200160405180910390205414613cb257613c97848061593a565b60405163a41f772f60e01b815260040161071892919061597c565b613cbc835f6141c2565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613cf98a8061593a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190613d41908b018b61593a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001613d8a60608b0160408c01614eb3565b6001600160401b03168152602001613da560608b018b615926565b613dae9061598f565b8152602001613dc060808b018b615926565b613dc99061598f565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613df79190615abc565b5f60405180830381865af4158015613e11573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613e389190810190615b73565b5f82815260048601602052604090209193509150613e5682826153f9565b508160068401613e66888061593a565b604051613e74929190615831565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613eb0908590600401615221565b6020604051808303815f875af1158015613ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ef09190615233565b5f8481526005860160205260409020805460ff191660011790559050613f16878061593a565b5f858152600587016020526040902060010191613f34919083615bb6565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b8202176001600160c01b03169091556003909101805467ffffffffffffffff1916905581847fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6613fb68b8061593a565b613fc660608e0160408f01614eb3565b604051613fd593929190615c6f565b60405180910390a4509095945050505050565b5f805f613ff3612642565b5f86815260088201602052604081208054908290559192509081908015614087575f8781526006850160205260409020546127109061403d90600160a01b900461ffff168361576d565b61404791906156f4565b91508184600a015f8981526020019081526020015f205f82825461406b9190615913565b9091555061407b90508282615c9b565b925061408789846139a3565b509097909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166140de57604051631afcd79f60e31b815260040160405180910390fd5b565b6140e8614095565b6140f181614677565b6140f9614690565b610f8a6060820135608083013561411660c0850160a08601614eb3565b61412660e0860160c08701615cae565b614137610100870160e08801615cc7565b61010087013561414f61014089016101208a0161524a565b8861014001356146a0565b614162614095565b5f80516020615d1e8339815191526001600160a01b0382166141a257604051637330680360e01b81526001600160a01b0383166004820152602401610718565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80516020615d3e8339815191525f6001600160401b0380841690851611156141f6576141ef8385615840565b9050614203565b6142008484615840565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b900490921660608201524291158061427057506001840154815161426c916001600160401b031690615913565b8210155b15614298576001600160401b03808416606083015282825260408201511660208201526142b7565b82816060018181516142aa91906154c8565b6001600160401b03169052505b60608101516142c790606461550a565b602082015160018601546001600160401b0392909216916142f29190600160401b900460ff1661550a565b6001600160401b0316101561432b57606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610718565b858160400181815161433d91906154c8565b6001600160401b031690525060408101805186919061435d908390615840565b6001600160401b03169052506001840154604082015160649161438b91600160401b90910460ff169061550a565b6001600160401b031610156143c4576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610718565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615d5e8339815191526020526040812060020180545f80516020615d3e833981519152919060089061447690600160401b90046001600160401b0316615ce7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f6144b56001600160a01b03841683614885565b905080515f141580156144d95750808060200190518101906144d79190615d02565b155b1561058c57604051635274afe760e01b81526001600160a01b0384166004820152602401610718565b5f6132d5833384614892565b61451b6020820182614e0e565b63ffffffff1615801561453b57506145366020820182615265565b151590505b156145825761454d6020820182614e0e565b61455a6020830183615265565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610718565b61458f6020820182615265565b905061459e6020830183614e0e565b63ffffffff1611156145b75761454d6020820182614e0e565b60015b6145c76020830183615265565b90508110156114f8576145dd6020830183615265565b6145e8600184615c9b565b8181106145f7576145f76152aa565b905060200201602081019061460c919061524a565b6001600160a01b03166146226020840184615265565b83818110614632576146326152aa565b9050602002016020810190614647919061524a565b6001600160a01b0316101561466f57604051630dbc8d5f60e31b815260040160405180910390fd5b6001016145ba565b61467f614095565b6146876149f5565b610f8a816149fd565b614698614095565b6140de614ae5565b6146a8614095565b5f6146b1612642565b905061ffff861615806146c9575061271061ffff8716115b156146ed57604051635f12e6c360e11b815261ffff87166004820152602401610718565b878911156147115760405163222d164360e21b8152600481018a9052602401610718565b60ff851615806147245750600a60ff8616115b156147475760405163170db35960e31b815260ff86166004820152602401610718565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b031610156147ae576040516202a06d60e11b81526001600160401b0388166004820152602401610718565b835f036147ce5760405163a733007160e01b815260040160405180910390fd5b816147ef57604051632f6bd1db60e01b815260048101839052602401610718565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b60606132d583835f614aed565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156148d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148fc9190615233565b90506149136001600160a01b038616853086614b7c565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa158015614957573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061497b9190615233565b90508181116149e15760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610718565b6149eb8282615c9b565b9695505050505050565b6140de614095565b614a05614095565b80355f80516020615d3e8339815191529081556014614a2a6060840160408501615cc7565b60ff161180614a495750614a446060830160408401615cc7565b60ff16155b15614a7d57614a5e6060830160408401615cc7565b604051634a59bbff60e11b815260ff9091166004820152602401610718565b614a8d6060830160408401615cc7565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614abe6040830160208401614eb3565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612cdf614095565b606081471015614b125760405163cd78605960e01b8152306004820152602401610718565b5f80856001600160a01b03168486604051614b2d91906153a4565b5f6040518083038185875af1925050503d805f8114614b67576040519150601f19603f3d011682016040523d82523d5f602084013e614b6c565b606091505b50915091506149eb868383614bb5565b6040516001600160a01b03848116602483015283811660448301526064820183905261081b9186918216906323b872dd90608401613a46565b606082614bca57614bc582614c11565b6132d5565b8151158015614be157506001600160a01b0384163b155b15614c0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610718565b50806132d5565b805115614c215780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614c46906150af565b5f825580601f10614c55575050565b601f0160209004905f5260205f2090810190610f8a9190614cae565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614cc2575f8155600101614caf565b5090565b8015158114610f8a575f80fd5b803563ffffffff81168114614ce6575f80fd5b919050565b5f805f60608486031215614cfd575f80fd5b833592506020840135614d0f81614cc6565b9150614d1d60408501614cd3565b90509250925092565b5f60208284031215614d36575f80fd5b5035919050565b5f8060408385031215614d4e575f80fd5b82356001600160401b03811115614d63575f80fd5b830160808186031215614d74575f80fd5b9150614d8260208401614cd3565b90509250929050565b5f8060408385031215614d9c575f80fd5b82359150614d8260208401614cd3565b6001600160a01b0381168114610f8a575f80fd5b5f805f8060808587031215614dd3575f80fd5b843593506020850135614de581614cc6565b9250614df360408601614cd3565b91506060850135614e0381614dac565b939692955090935050565b5f60208284031215614e1e575f80fd5b6132d582614cd3565b803561ffff81168114614ce6575f80fd5b6001600160401b0381168114610f8a575f80fd5b5f805f8060808587031215614e5f575f80fd5b84356001600160401b03811115614e74575f80fd5b850160a08188031215614e85575f80fd5b9350614e9360208601614e27565b92506040850135614ea381614e38565b9396929550929360600135925050565b5f60208284031215614ec3575f80fd5b81356132d581614e38565b5f8060408385031215614edf575f80fd5b823591506020830135614ef181614dac565b809150509250929050565b5f8060408385031215614f0d575f80fd5b50508035926020909101359150565b5f80828403610180811215614f2f575f80fd5b61016080821215614f3e575f80fd5b8493508301359050614ef181614dac565b634e487b7160e01b5f52602160045260245ffd5b60068110614f7357614f73614f4f565b9052565b5f5b83811015614f91578181015183820152602001614f79565b50505f910152565b5f8151808452614fb0816020860160208601614f77565b601f01601f19169290920160200192915050565b60208152614fd6602082018351614f63565b5f602083015160e06040840152614ff1610100840182614f99565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215615055575f80fd5b82356001600160401b038082111561506b575f80fd5b818501915085601f83011261507e575f80fd5b81358181111561508c575f80fd5b86602082850101111561509d575f80fd5b60209290920196919550909350505050565b600181811c908216806150c357607f821691505b6020821081036150e157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610e968284614f63565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561512b5761512b6150f5565b60405290565b604080519081016001600160401b038111828210171561512b5761512b6150f5565b604051601f8201601f191681016001600160401b038111828210171561517b5761517b6150f5565b604052919050565b5f6001600160401b0382111561519b5761519b6150f5565b50601f01601f191660200190565b5f82601f8301126151b8575f80fd5b81516151cb6151c682615183565b615153565b8181528460208386010111156151df575f80fd5b610fba826020830160208701614f77565b5f60208284031215615200575f80fd5b81516001600160401b03811115615215575f80fd5b610fba848285016151a9565b602081525f6132d56020830184614f99565b5f60208284031215615243575f80fd5b5051919050565b5f6020828403121561525a575f80fd5b81356132d581614dac565b5f808335601e1984360301811261527a575f80fd5b8301803591506001600160401b03821115615293575f80fd5b6020019150600581901b36038213156134cc575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126152d2575f80fd5b9190910192915050565b5f82601f8301126152eb575f80fd5b81356152f96151c682615183565b81815284602083860101111561530d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615339575f80fd5b615341615109565b82356001600160401b0380821115615357575f80fd5b615363368387016152dc565b83526020850135915080821115615378575f80fd5b50615385368286016152dc565b602083015250604083013561539981614e38565b604082015292915050565b5f82516152d2818460208701614f77565b601f82111561058c57805f5260205f20601f840160051c810160208510156153da5750805b601f840160051c820191505b81811015610ea8575f81556001016153e6565b81516001600160401b03811115615412576154126150f5565b6154268161542084546150af565b846153b5565b602080601f831160018114615459575f84156154425750858301515b5f19600386901b1c1916600185901b1785556110f2565b5f85815260208120601f198616915b8281101561548757888601518255948401946001909101908401615468565b50858210156154a457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561237e5761237e6154b4565b5f63ffffffff808316818103615500576155006154b4565b6001019392505050565b6001600160401b0381811683821602808216919082811461552d5761552d6154b4565b505092915050565b5f808335601e1984360301811261554a575f80fd5b83016020810192503590506001600160401b03811115615568575f80fd5b8036038213156134cc575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561565357848303601f19018952813536889003605e190181126155da575f80fd5b870160606155e88280615535565b8287526155f88388018284615576565b9250505061560886830183615535565b8683038888015261561a838284615576565b92505050604080830135925061562f83614e38565b6001600160401b0392909216949091019390935297830197908301906001016155b5565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561568481614dac565b6001600160a01b031660608381019190915283013536849003601e190181126156ab575f80fd5b83016020810190356001600160401b038111156156c6575f80fd5b8060051b36038213156156d7575f80fd5b6080808501526156eb60a08501828461559e565b95945050505050565b5f8261570e57634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061572757615727614f4f565b91905290565b5f805f6060848603121561573f575f80fd5b83519250602084015161575181614e38565b604085015190925061576281614e38565b809150509250925092565b8082028115828204841417610e9657610e966154b4565b5f8060408385031215615795575f80fd5b825191506020830151614ef181614cc6565b5f60208083525f84546157b9816150af565b806020870152604060018084165f81146157da57600181146157f657615823565b60ff19851660408a0152604084151560051b8a01019550615823565b895f5260205f205f5b8581101561581a5781548b82018601529083019088016157ff565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561237e5761237e6154b4565b5f8060408385031215615871575f80fd5b82516001600160401b0380821115615887575f80fd5b908401906060828703121561589a575f80fd5b6158a2615109565b8251815260208301516158b481614dac565b60208201526040830151828111156158ca575f80fd5b6158d6888286016151a9565b6040830152508094505050506020830151614ef181614cc6565b5f8060408385031215615901575f80fd5b825191506020830151614ef181614e38565b80820180821115610e9657610e966154b4565b5f8235603e198336030181126152d2575f80fd5b5f808335601e1984360301811261594f575f80fd5b8301803591506001600160401b03821115615968575f80fd5b6020019150368190038213156134cc575f80fd5b602081525f610fba602083018486615576565b5f6040823603121561599f575f80fd5b6159a7615131565b6159b083614cd3565b81526020808401356001600160401b03808211156159cc575f80fd5b9085019036601f8301126159de575f80fd5b8135818111156159f0576159f06150f5565b8060051b9150615a01848301615153565b8181529183018401918481019036841115615a1a575f80fd5b938501935b83851015615a445784359250615a3483614dac565b8282529385019390850190615a1f565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615ab15784516001600160a01b03168252938301936001929092019190830190615a88565b509695505050505050565b60208152815160208201525f602083015160e06040840152615ae2610100840182614f99565b90506040840151601f1980858403016060860152615b008383614f99565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b308383615a56565b925060a08601519150808584030160c086015250615b4e8282615a56565b91505060c0840151615b6b60e08501826001600160401b03169052565b509392505050565b5f8060408385031215615b84575f80fd5b8251915060208301516001600160401b03811115615ba0575f80fd5b615bac858286016151a9565b9150509250929050565b6001600160401b03831115615bcd57615bcd6150f5565b615be183615bdb83546150af565b836153b5565b5f601f841160018114615c12575f8515615bfb5750838201355b5f19600387901b1c1916600186901b178355610ea8565b5f83815260208120601f198716915b82811015615c415786850135825560209485019460019092019101615c21565b5086821015615c5d575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081525f615c82604083018587615576565b90506001600160401b0383166020830152949350505050565b81810381811115610e9657610e966154b4565b5f60208284031215615cbe575f80fd5b6132d582614e27565b5f60208284031215615cd7575f80fd5b813560ff811681146132d5575f80fd5b5f6001600160401b03808316818103615500576155006154b4565b5f60208284031215615d12575f80fd5b81516132d581614cc656fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220ee00aae080926375b76ab7ddfe2b867171785541e92c626c401d5d42183f1c9d64736f6c63430008190033", + 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\":\"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\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"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\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":[{\"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\":[{\"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: "0x608060405234801561000f575f80fd5b50604051615f68380380615f6883398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615e1b8061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c806380dd672f11610135578063b771b3bc116100b4578063d5f20ff611610079578063d5f20ff61461051c578063df93d8de1461053c578063e4a63c4014610546578063fb8b11dd1461055a578063fd7ac5e71461056d575f80fd5b8063b771b3bc146104cc578063ba3a4b97146104da578063bc5fbfec146104ed578063bee0a03f14610501578063c974d1b614610514575f80fd5b80639e1bc4ef116100fa5780639e1bc4ef1461046c5780639e478eea1461047f578063a3a65e4814610492578063a9778a7a146102ee578063afb98096146104a5575f80fd5b806380dd672f146104185780638280a25a1461042b5780638ef34c981461043357806393e24598146104465780639ae0644714610459575f80fd5b8063467ef06f116101c1578063620658561161018657806362065856146103a7578063732214f8146103ba57806376f78621146103c1578063785e9e86146103d45780637d8d2f7714610405575f80fd5b8063467ef06f146103305780634bee0040146103435780635dd6a6cb1461036457806360305d621461037757806360ad778414610394575f80fd5b806325e1c7761161020757806325e1c776146102b05780632e2194d8146102c357806335455ded146102ee57806337b9be8f1461030a5780633a1cfff61461031d575f80fd5b80630118acc4146102435780630322ed9814610258578063151d30d11461026b5780631ec447241461028a57806320d91b7a1461029d575b5f80fd5b610256610251366004614d07565b610580565b005b610256610266366004614d42565b610591565b610273600a81565b60405160ff90911681526020015b60405180910390f35b610256610298366004614d07565b610821565b6102566102ab366004614d59565b61082d565b6102566102be366004614da7565b610dcc565b6102d66102d1366004614d42565b610e40565b6040516001600160401b039091168152602001610281565b6102f761271081565b60405161ffff9091168152602001610281565b610256610318366004614ddc565b610e94565b61025661032b366004614d07565b610ea7565b61025661033e366004614e2a565b610eb3565b610356610351366004614e68565b610f85565b604051908152602001610281565b610256610372366004614ddc565b610fba565b61037f601481565b60405163ffffffff9091168152602001610281565b6102566103a2366004614da7565b610fc6565b6103566103b5366004614ecf565b61128e565b6103565f81565b6102566103cf366004614d07565b6112ae565b5f80516020615d66833981519152546001600160a01b03165b6040516001600160a01b039091168152602001610281565b610256610413366004614ddc565b6112ba565b610256610426366004614da7565b6112c6565b610273603081565b610256610441366004614eea565b611500565b610256610454366004614d42565b6115b1565b610256610467366004614ddc565b611645565b61035661047a366004614f18565b611651565b61025661048d366004614f38565b61167d565b6102566104a0366004614e2a565b61175c565b6103567f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6103ed6005600160991b0181565b6102566104e8366004614d42565b611952565b6103565f80516020615d8683398151915281565b61025661050f366004614d42565b611bab565b610273601481565b61052f61052a366004614d42565b611ce7565b6040516102819190614fe0565b6102d66202a30081565b6103565f80516020615d6683398151915281565b610256610568366004614eea565b611e36565b61035661057b366004615060565b611ecd565b61058c8383835f611f28565b505050565b5f8181525f80516020615da68339815191526020526040808220815160e0810190925280545f80516020615d8683398151915293929190829060ff1660058111156105de576105de614f6b565b60058111156105ef576105ef614f6b565b8152602001600182018054610603906150cb565b80601f016020809104026020016040519081016040528092919081815260200182805461062f906150cb565b801561067a5780601f106106515761010080835404028352916020019161067a565b820191905f5260205f20905b81548152906001019060200180831161065d57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156106e5576106e5614f6b565b14610721575f8381526005830160205260409081902054905163170cc93360e21b81526107189160ff1690600401615103565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610798573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107bf919081019061520c565b6040518263ffffffff1660e01b81526004016107db919061523d565b6020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b919061524f565b50505050565b61081b8383835f611f54565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615d868339815191529060ff161561087f57604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e6919061524f565b83602001351461090f576040516372b0a7e760e11b815260208401356004820152602401610718565b306109206060850160408601615266565b6001600160a01b0316146109635761093e6060840160408501615266565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610718565b5f6109716060850185615281565b905090505f805b828163ffffffff161015610bc2575f6109946060880188615281565b8363ffffffff168181106109aa576109aa6152c6565b90506020028101906109bc91906152da565b6109c590615345565b80516040519192505f9160068801916109dd916153c0565b90815260200160405180910390205414610a0d57805160405163a41f772f60e01b8152610718919060040161523d565b5f6002885f013584604051602001610a3c92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610a56916153c0565b602060405180830381855afa158015610a71573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a94919061524f565b90508086600601835f0151604051610aac91906153c0565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610aec9082615415565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610b6c90856154e4565b9350807fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff8360400151845f0151604051610ba7929190615504565b60405180910390a2505080610bbb90615525565b9050610978565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c05910460ff1683615547565b6001600160401b03161015610c3857604051633e1a785160e01b81526001600160401b0382166004820152602401610718565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610c5c87612281565b604001516040518263ffffffff1660e01b8152600401610c7c919061523d565b602060405180830381865af4158015610c97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbb919061524f565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610cf5919061569d565b5f60405180830381865af4158015610d0f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d36919081019061520c565b90505f600282604051610d4991906153c0565b602060405180830381855afa158015610d64573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d87919061524f565b9050828114610db35760405163baaea89d60e01b81526004810182905260248101849052604401610718565b5050506007909201805460ff1916600117905550505050565b610dd582612397565b610df5576040516330efa98b60e01b815260048101839052602401610718565b5f610dff83611ce7565b5190506002816005811115610e1657610e16614f6b565b14610e36578060405163170cc93360e21b81526004016107189190615103565b61081b83836123c0565b5f80610e4a61265f565b60030154610e589084615731565b9050801580610e6d57506001600160401b0381115b15610e8e5760405163222d164360e21b815260048101849052602401610718565b92915050565b610ea084848484611f54565b5050505050565b61081b8383835f612683565b610ebb6128c0565b5f610ec461265f565b90505f80610ed1846128f7565b91509150610ede82612397565b610eea57505050610f6c565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680610f2c5750805b600483516005811115610f4157610f41614f6b565b03610f5057610f508185612caf565b610f6682610f61856040015161128e565b612cd9565b50505050505b610f8260015f80516020615dc683398151915255565b50565b5f610f8e6128c0565b610f9a85858585612d0f565b9050610fb260015f80516020615dc683398151915255565b949350505050565b61081b84848484612e8f565b5f610fcf61265f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561100857611008614f6b565b600381111561101957611019614f6b565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61108f82611ce7565b90506001835160038111156110a6576110a6614f6b565b146110c7578251604051633b0d540d60e21b81526107189190600401615750565b6004815160058111156110dc576110dc614f6b565b036110f2576110ea86612ebb565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61111789612281565b604001516040518263ffffffff1660e01b8152600401611137919061523d565b606060405180830381865af4158015611152573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611176919061576a565b50915091508184146111a357846040015160405163089938b360e11b815260040161071891815260200190565b806001600160401b031683606001516001600160401b031610806111dc5750806001600160401b03168560a001516001600160401b0316115b1561120557604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f61129761265f565b60030154610e8e906001600160401b0384166157aa565b61058c8383835f612e8f565b610ea084848484612683565b6112ce6128c0565b5f6112d761265f565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561131057611310614f6b565b600381111561132157611321614f6b565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152905060038151600381111561139a5761139a614f6b565b146113bb578051604051633b0d540d60e21b81526107189190600401615750565b60046113ca8260400151611ce7565b5160058111156113dc576113dc614f6b565b146114db575f6113eb84612281565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b815260040161142a919061523d565b606060405180830381865af4158015611445573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611469919061576a565b5091509150818460400151146114955760405163089938b360e11b815260048101839052602401610718565b806001600160401b03168460c001516001600160401b031611156114d757604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5050505b6114e484612ebb565b50506114fc60015f80516020615dc683398151915255565b5050565b5f61150961265f565b90506001600160a01b03821661153d5760405163caa903f960e01b81526001600160a01b0383166004820152602401610718565b5f8381526006820160205260409020546001600160a01b0316331461158357335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610718565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6115ba61265f565b90505f6115c683611ce7565b51905060048160058111156115dd576115dd614f6b565b146115fd578060405163170cc93360e21b81526004016107189190615103565b5f8381526006830160205260409020546001600160a01b03163314611622573361155e565b5f83815260068301602052604090205461058c906001600160a01b031684612caf565b61081b84848484611f28565b5f61165a6128c0565b6116658333846130b5565b9050610e8e60015f80516020615dc683398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806116c6575080546001600160401b03808416911610155b156116e45760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561170f84846132fa565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615d868339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61178f86612281565b604001516040518263ffffffff1660e01b81526004016117af919061523d565b6040805180830381865af41580156117c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ed91906157c1565b915091508061181357604051632d07135360e01b81528115156004820152602401610718565b5f8281526004840160205260409020805461182d906150cb565b90505f036118515760405163089938b360e11b815260048101839052602401610718565b60015f838152600580860160205260409091205460ff169081111561187857611878614f6b565b146118ab575f8281526005840160205260409081902054905163170cc93360e21b81526107189160ff1690600401615103565b5f82815260048401602052604081206118c391614c56565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f61195b61265f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561199457611994614f6b565b60038111156119a5576119a5614f6b565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611a1e57611a1e614f6b565b14158015611a3f5750600381516003811115611a3c57611a3c614f6b565b14155b15611a60578051604051633b0d540d60e21b81526107189190600401615750565b5f611a6e8260400151611ce7565b905080606001516001600160401b03165f03611aa0576040516339b894f960e21b815260048101859052602401610718565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611b0e93906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611b28573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b4f919081019061520c565b6040518263ffffffff1660e01b8152600401611b6b919061523d565b6020604051808303815f875af1158015611b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea0919061524f565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615d868339815191529190611bf2906150cb565b90505f03611c165760405163089938b360e11b815260048101839052602401610718565b60015f838152600580840160205260409091205460ff1690811115611c3d57611c3d614f6b565b14611c70575f8281526005820160205260409081902054905163170cc93360e21b81526107189160ff1690600401615103565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611ca792016157e4565b6020604051808303815f875af1158015611cc3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c919061524f565b611cef614c8d565b5f8281525f80516020615da6833981519152602052604090819020815160e0810190925280545f80516020615d86833981519152929190829060ff166005811115611d3c57611d3c614f6b565b6005811115611d4d57611d4d614f6b565b8152602001600182018054611d61906150cb565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8d906150cb565b8015611dd85780601f10611daf57610100808354040283529160200191611dd8565b820191905f5260205f20905b815481529060010190602001808311611dbb57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611e685760405163caa903f960e01b81526001600160a01b0382166004820152602401610718565b5f611e7161265f565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611e9f573361155e565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615d86833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611f10908690869061586e565b90815260200160405180910390205491505092915050565b611f3484848484611f54565b61081b57604051631036cf9160e11b815260048101859052602401610718565b5f80611f5e61265f565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611f9757611f97614f6b565b6003811115611fa857611fa8614f6b565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61201e82611ce7565b905060028351600381111561203557612035614f6b565b14612056578251604051633b0d540d60e21b81526107189190600401615750565b60208301516001600160a01b031633146120f2575f8281526006850160205260409020546001600160a01b0316331461208f573361155e565b5f82815260068501602052604090205460a08201516120be91600160b01b90046001600160401b0316906154e4565b6001600160401b03164210156120f25760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b60028151600581111561210757612107614f6b565b036122295760028401546080840151612129916001600160401b0316906154e4565b6001600160401b031642101561215d5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b871561216f5761216d82886123c0565b505b5f8981526007850160205260409020805460ff19166003179055606083015160808201516121a89184916121a3919061587d565b613314565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b03909316929092179091556121eb84888c6134eb565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610fb29350505050565b60048151600581111561223e5761223e614f6b565b036122655761224e83878b6134eb565b5061225889612ebb565b6001945050505050610fb2565b805160405163170cc93360e21b81526107189190600401615103565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156122e5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261230c919081019061589d565b915091508061232e57604051636b2f19e960e01b815260040160405180910390fd5b815115612354578151604051636ba589a560e01b81526004810191909152602401610718565b60208201516001600160a01b031615612390576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5092915050565b5f806123a161265f565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa15801561240b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612432919081019061589d565b915091508061245457604051636b2f19e960e01b815260040160405180910390fd5b5f61245d61265f565b600581015484519192501461248b578251604051636ba589a560e01b81526004810191909152602401610718565b60208301516001600160a01b0316156124c7576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b60208301516001600160a01b031615612503576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b8152600401612540919061523d565b6040805180830381865af415801561255a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061257e919061592d565b915091508188146125a55760405163089938b360e11b815260048101899052602401610718565b5f8881526006840160205260409020600101546001600160401b039081169082161115612636575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2612654565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f8061268d61265f565b90505f612699876136d9565b90506126a487612397565b6126b357600192505050610fb2565b5f8781526006830160205260409020546001600160a01b031633146126d8573361155e565b5f87815260068301602052604090205460a082015161270791600160b01b90046001600160401b0316906154e4565b6001600160401b03168160c001516001600160401b0316101561274e5760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610718565b5f86156127665761275f88876123c0565b9050612784565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906127a99061128e565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa158015612812573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612836919061524f565b90506001600160a01b038616612862575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612881908490615950565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615dc68339815191528054600119016128f157604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612900614c8d565b5f80516020615d868339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61293388612281565b604001516040518263ffffffff1660e01b8152600401612953919061523d565b6040805180830381865af415801561296d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299191906157c1565b9150915080156129b857604051632d07135360e01b81528115156004820152602401610718565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156129ef576129ef614f6b565b6005811115612a0057612a00614f6b565b8152602001600182018054612a14906150cb565b80601f0160208091040260200160405190810160405280929190818152602001828054612a40906150cb565b8015612a8b5780601f10612a6257610100808354040283529160200191612a8b565b820191905f5260205f20905b815481529060010190602001808311612a6e57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612af657612af6614f6b565b14158015612b175750600181516005811115612b1457612b14614f6b565b14155b15612b3857805160405163170cc93360e21b81526107189190600401615103565b600381516005811115612b4d57612b4d614f6b565b03612b5b5760048152612b60565b600581525b836006018160200151604051612b7691906153c0565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612bb957612bb9614f6b565b021790555060208201516001820190612bd29082615415565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612c7857612c78614f6b565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612cb861265f565b5f838152600a820160205260408120805491905590915061081b84826139be565b5f80516020615d66833981519152546114fc906001600160a01b03168383613a34565b60015f80516020615dc683398151915255565b5f80612d1961265f565b600281015490915061ffff600160401b90910481169086161080612d42575061271061ffff8616115b15612d6657604051635f12e6c360e11b815261ffff86166004820152602401610718565b60028101546001600160401b039081169085161015612da2576040516202a06d60e11b81526001600160401b0385166004820152602401610718565b8054831080612db45750806001015483115b15612dd55760405163222d164360e21b815260048101849052602401610718565b5f612ddf84613a93565b90505f612deb82610e40565b90505f612df88983613ab6565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b612e9b84848484612683565b61081b57604051635bff683f60e11b815260048101859052602401610718565b5f612ec461265f565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612efd57612efd614f6b565b6003811115612f0e57612f0e614f6b565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fab7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fba91906154e4565b6001600160401b0316421015612fee5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613049575060208201515b5f80613056838886614004565b9150915061306f8560200151610f61876060015161128e565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130bf61265f565b90505f6130ce6102d185613a93565b90505f6130da87611ce7565b90506130e587612397565b613105576040516330efa98b60e01b815260048101889052602401610718565b60028151600581111561311a5761311a614f6b565b1461313b57805160405163170cc93360e21b81526107189190600401615103565b5f82826080015161314c91906154e4565b905083600201600a9054906101000a90046001600160401b031682604001516131759190615547565b6001600160401b0316816001600160401b031611156131b257604051636d51fe0560e11b81526001600160401b0382166004820152602401610718565b5f806131be8a84613314565b915091505f8a836040516020016131ec92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b6133026140b1565b61330b826140fc565b6114fc81614176565b5f8281525f80516020615da6833981519152602052604081206002015481905f80516020615d8683398151915290600160801b90046001600160401b031661335c85826141de565b5f61336687614448565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561340f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613436919081019061520c565b6040518263ffffffff1660e01b8152600401613452919061523d565b6020604051808303815f875af115801561346e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613492919061524f565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f806134f561265f565b90505f6135058660400151611ce7565b90505f60038251600581111561351d5761351d614f6b565b148061353b575060048251600581111561353957613539614f6b565b145b1561354b575060c0810151613588565b60028251600581111561356057613560614f6b565b0361356c575042613588565b815160405163170cc93360e21b81526107189190600401615103565b86608001516001600160401b0316816001600160401b0316116135b0575f93505050506132f3565b600483015460608801515f916001600160a01b031690634f22429f906135d59061128e565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa158015613656573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367a919061524f565b90506001600160a01b03871661369257876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6136e1614c8d565b5f8281525f80516020615da68339815191526020526040808220815160e0810190925280545f80516020615d8683398151915293929190829060ff16600581111561372e5761372e614f6b565b600581111561373f5761373f614f6b565b8152602001600182018054613753906150cb565b80601f016020809104026020016040519081016040528092919081815260200182805461377f906150cb565b80156137ca5780601f106137a1576101008083540402835291602001916137ca565b820191905f5260205f20905b8154815290600101906020018083116137ad57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a0909101529091508151600581111561383857613838614f6b565b1461386b575f8481526005830160205260409081902054905163170cc93360e21b81526107189160ff1690600401615103565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff19169060019084908111156138b0576138b0614f6b565b0217905550602082015160018201906138c99082615415565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6139678582613314565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b5f5f80516020615d6683398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015613a19575f80fd5b505af1158015613a2b573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261058c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506144bd565b5f610e8e825f80516020615d66833981519152546001600160a01b03169061451e565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613afa57604051637fab81e560e01b815260040160405180910390fd5b5f80516020615d8683398151915242613b196060860160408701614ecf565b6001600160401b0316111580613b535750613b376202a30042615950565b613b476060860160408701614ecf565b6001600160401b031610155b15613b8d57613b686060850160408601614ecf565b604051635879da1360e11b81526001600160401b039091166004820152602401610718565b60038101546001600160401b0390613bb090600160401b90048216858316615950565b1115613bda57604051633e1a785160e01b81526001600160401b0384166004820152602401610718565b613bef613bea6060860186615963565b61452a565b613bff613bea6080860186615963565b6030613c0e6020860186615977565b905014613c4057613c226020850185615977565b6040516326475b2f60e11b8152610718925060040190815260200190565b613c4a8480615977565b90505f03613c7757613c5c8480615977565b604051633e08a12560e11b81526004016107189291906159b9565b5f60068201613c868680615977565b604051613c9492919061586e565b90815260200160405180910390205414613ccd57613cb28480615977565b60405163a41f772f60e01b81526004016107189291906159b9565b613cd7835f6141de565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613d148a80615977565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190613d5c908b018b615977565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001613da560608b0160408c01614ecf565b6001600160401b03168152602001613dc060608b018b615963565b613dc9906159cc565b8152602001613ddb60808b018b615963565b613de4906159cc565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613e129190615af9565b5f60405180830381865af4158015613e2c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613e539190810190615bb0565b5f82815260048601602052604090209193509150613e718282615415565b508160068401613e818880615977565b604051613e8f92919061586e565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613ecb90859060040161523d565b6020604051808303815f875af1158015613ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f0b919061524f565b5f8481526005860160205260409020805460ff191660011790559050613f318780615977565b5f858152600587016020526040902060010191613f4f919083615bf3565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580837fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd688613fd18b80615977565b613fe160608e0160408f01614ecf565b604051613ff19493929190615cac565b60405180910390a3509095945050505050565b5f805f61400f61265f565b5f868152600882016020526040812080549082905591925090819080156140a3575f8781526006850160205260409020546127109061405990600160a01b900461ffff16836157aa565b6140639190615731565b91508184600a015f8981526020019081526020015f205f8282546140879190615950565b9091555061409790508282615ce3565b92506140a389846139be565b509097909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166140fa57604051631afcd79f60e31b815260040160405180910390fd5b565b6141046140b1565b61410d81614693565b6141156146ac565b610f826060820135608083013561413260c0850160a08601614ecf565b61414260e0860160c08701615cf6565b614153610100870160e08801615d0f565b61010087013561416b61014089016101208a01615266565b8861014001356146bc565b61417e6140b1565b5f80516020615d668339815191526001600160a01b0382166141be57604051637330680360e01b81526001600160a01b0383166004820152602401610718565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80516020615d868339815191525f6001600160401b0380841690851611156142125761420b838561587d565b905061421f565b61421c848461587d565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b900490921660608201524291158061428c575060018401548151614288916001600160401b031690615950565b8210155b156142b4576001600160401b03808416606083015282825260408201511660208201526142d3565b82816060018181516142c691906154e4565b6001600160401b03169052505b60608101516142e3906064615547565b602082015160018601546001600160401b03929092169161430e9190600160401b900460ff16615547565b6001600160401b0316101561434757606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610718565b858160400181815161435991906154e4565b6001600160401b031690525060408101805186919061437990839061587d565b6001600160401b0316905250600184015460408201516064916143a791600160401b90910460ff1690615547565b6001600160401b031610156143e0576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610718565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615da68339815191526020526040812060020180545f80516020615d86833981519152919060089061449290600160401b90046001600160401b0316615d2f565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f6144d16001600160a01b038416836148a1565b905080515f141580156144f55750808060200190518101906144f39190615d4a565b155b1561058c57604051635274afe760e01b81526001600160a01b0384166004820152602401610718565b5f6132f38333846148ae565b6145376020820182614e2a565b63ffffffff1615801561455757506145526020820182615281565b151590505b1561459e576145696020820182614e2a565b6145766020830183615281565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610718565b6145ab6020820182615281565b90506145ba6020830183614e2a565b63ffffffff1611156145d3576145696020820182614e2a565b60015b6145e36020830183615281565b90508110156114fc576145f96020830183615281565b614604600184615ce3565b818110614613576146136152c6565b90506020020160208101906146289190615266565b6001600160a01b031661463e6020840184615281565b8381811061464e5761464e6152c6565b90506020020160208101906146639190615266565b6001600160a01b0316101561468b57604051630dbc8d5f60e31b815260040160405180910390fd5b6001016145d6565b61469b6140b1565b6146a3614a11565b610f8281614a19565b6146b46140b1565b6140fa614b01565b6146c46140b1565b5f6146cd61265f565b905061ffff861615806146e5575061271061ffff8716115b1561470957604051635f12e6c360e11b815261ffff87166004820152602401610718565b8789111561472d5760405163222d164360e21b8152600481018a9052602401610718565b60ff851615806147405750600a60ff8616115b156147635760405163170db35960e31b815260ff86166004820152602401610718565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b031610156147ca576040516202a06d60e11b81526001600160401b0388166004820152602401610718565b835f036147ea5760405163a733007160e01b815260040160405180910390fd5b8161480b57604051632f6bd1db60e01b815260048101839052602401610718565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b60606132f383835f614b09565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa1580156148f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614918919061524f565b905061492f6001600160a01b038616853086614b98565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa158015614973573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614997919061524f565b90508181116149fd5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610718565b614a078282615ce3565b9695505050505050565b6140fa6140b1565b614a216140b1565b80355f80516020615d868339815191529081556014614a466060840160408501615d0f565b60ff161180614a655750614a606060830160408401615d0f565b60ff16155b15614a9957614a7a6060830160408401615d0f565b604051634a59bbff60e11b815260ff9091166004820152602401610718565b614aa96060830160408401615d0f565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614ada6040830160208401614ecf565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612cfc6140b1565b606081471015614b2e5760405163cd78605960e01b8152306004820152602401610718565b5f80856001600160a01b03168486604051614b4991906153c0565b5f6040518083038185875af1925050503d805f8114614b83576040519150601f19603f3d011682016040523d82523d5f602084013e614b88565b606091505b5091509150614a07868383614bd1565b6040516001600160a01b03848116602483015283811660448301526064820183905261081b9186918216906323b872dd90608401613a61565b606082614be657614be182614c2d565b6132f3565b8151158015614bfd57506001600160a01b0384163b155b15614c2657604051639996b31560e01b81526001600160a01b0385166004820152602401610718565b50806132f3565b805115614c3d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614c62906150cb565b5f825580601f10614c71575050565b601f0160209004905f5260205f2090810190610f829190614cca565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614cde575f8155600101614ccb565b5090565b8015158114610f82575f80fd5b803563ffffffff81168114614d02575f80fd5b919050565b5f805f60608486031215614d19575f80fd5b833592506020840135614d2b81614ce2565b9150614d3960408501614cef565b90509250925092565b5f60208284031215614d52575f80fd5b5035919050565b5f8060408385031215614d6a575f80fd5b82356001600160401b03811115614d7f575f80fd5b830160808186031215614d90575f80fd5b9150614d9e60208401614cef565b90509250929050565b5f8060408385031215614db8575f80fd5b82359150614d9e60208401614cef565b6001600160a01b0381168114610f82575f80fd5b5f805f8060808587031215614def575f80fd5b843593506020850135614e0181614ce2565b9250614e0f60408601614cef565b91506060850135614e1f81614dc8565b939692955090935050565b5f60208284031215614e3a575f80fd5b6132f382614cef565b803561ffff81168114614d02575f80fd5b6001600160401b0381168114610f82575f80fd5b5f805f8060808587031215614e7b575f80fd5b84356001600160401b03811115614e90575f80fd5b850160a08188031215614ea1575f80fd5b9350614eaf60208601614e43565b92506040850135614ebf81614e54565b9396929550929360600135925050565b5f60208284031215614edf575f80fd5b81356132f381614e54565b5f8060408385031215614efb575f80fd5b823591506020830135614f0d81614dc8565b809150509250929050565b5f8060408385031215614f29575f80fd5b50508035926020909101359150565b5f80828403610180811215614f4b575f80fd5b61016080821215614f5a575f80fd5b8493508301359050614f0d81614dc8565b634e487b7160e01b5f52602160045260245ffd5b60068110614f8f57614f8f614f6b565b9052565b5f5b83811015614fad578181015183820152602001614f95565b50505f910152565b5f8151808452614fcc816020860160208601614f93565b601f01601f19169290920160200192915050565b60208152614ff2602082018351614f7f565b5f602083015160e0604084015261500d610100840182614fb5565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215615071575f80fd5b82356001600160401b0380821115615087575f80fd5b818501915085601f83011261509a575f80fd5b8135818111156150a8575f80fd5b8660208285010111156150b9575f80fd5b60209290920196919550909350505050565b600181811c908216806150df57607f821691505b6020821081036150fd57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610e8e8284614f7f565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561514757615147615111565b60405290565b604080519081016001600160401b038111828210171561514757615147615111565b604051601f8201601f191681016001600160401b038111828210171561519757615197615111565b604052919050565b5f6001600160401b038211156151b7576151b7615111565b50601f01601f191660200190565b5f82601f8301126151d4575f80fd5b81516151e76151e28261519f565b61516f565b8181528460208386010111156151fb575f80fd5b610fb2826020830160208701614f93565b5f6020828403121561521c575f80fd5b81516001600160401b03811115615231575f80fd5b610fb2848285016151c5565b602081525f6132f36020830184614fb5565b5f6020828403121561525f575f80fd5b5051919050565b5f60208284031215615276575f80fd5b81356132f381614dc8565b5f808335601e19843603018112615296575f80fd5b8301803591506001600160401b038211156152af575f80fd5b6020019150600581901b36038213156134e4575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126152ee575f80fd5b9190910192915050565b5f82601f830112615307575f80fd5b81356153156151e28261519f565b818152846020838601011115615329575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615355575f80fd5b61535d615125565b82356001600160401b0380821115615373575f80fd5b61537f368387016152f8565b83526020850135915080821115615394575f80fd5b506153a1368286016152f8565b60208301525060408301356153b581614e54565b604082015292915050565b5f82516152ee818460208701614f93565b601f82111561058c57805f5260205f20601f840160051c810160208510156153f65750805b601f840160051c820191505b81811015610ea0575f8155600101615402565b81516001600160401b0381111561542e5761542e615111565b6154428161543c84546150cb565b846153d1565b602080601f831160018114615475575f841561545e5750858301515b5f19600386901b1c1916600185901b1785556110ea565b5f85815260208120601f198616915b828110156154a357888601518255948401946001909101908401615484565b50858210156154c057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b03818116838216019080821115612390576123906154d0565b6001600160401b0383168152604060208201525f610fb26040830184614fb5565b5f63ffffffff80831681810361553d5761553d6154d0565b6001019392505050565b6001600160401b0381811683821602808216919082811461556a5761556a6154d0565b505092915050565b5f808335601e19843603018112615587575f80fd5b83016020810192503590506001600160401b038111156155a5575f80fd5b8036038213156134e4575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561569057848303601f19018952813536889003605e19018112615617575f80fd5b870160606156258280615572565b82875261563583880182846155b3565b9250505061564586830183615572565b868303888801526156578382846155b3565b92505050604080830135925061566c83614e54565b6001600160401b0392909216949091019390935297830197908301906001016155f2565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356156c181614dc8565b6001600160a01b031660608381019190915283013536849003601e190181126156e8575f80fd5b83016020810190356001600160401b03811115615703575f80fd5b8060051b3603821315615714575f80fd5b60808085015261572860a0850182846155db565b95945050505050565b5f8261574b57634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061576457615764614f6b565b91905290565b5f805f6060848603121561577c575f80fd5b83519250602084015161578e81614e54565b604085015190925061579f81614e54565b809150509250925092565b8082028115828204841417610e8e57610e8e6154d0565b5f80604083850312156157d2575f80fd5b825191506020830151614f0d81614ce2565b5f60208083525f84546157f6816150cb565b806020870152604060018084165f8114615817576001811461583357615860565b60ff19851660408a0152604084151560051b8a01019550615860565b895f5260205f205f5b858110156158575781548b820186015290830190880161583c565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b03828116828216039080821115612390576123906154d0565b5f80604083850312156158ae575f80fd5b82516001600160401b03808211156158c4575f80fd5b90840190606082870312156158d7575f80fd5b6158df615125565b8251815260208301516158f181614dc8565b6020820152604083015182811115615907575f80fd5b615913888286016151c5565b6040830152508094505050506020830151614f0d81614ce2565b5f806040838503121561593e575f80fd5b825191506020830151614f0d81614e54565b80820180821115610e8e57610e8e6154d0565b5f8235603e198336030181126152ee575f80fd5b5f808335601e1984360301811261598c575f80fd5b8301803591506001600160401b038211156159a5575f80fd5b6020019150368190038213156134e4575f80fd5b602081525f610fb26020830184866155b3565b5f604082360312156159dc575f80fd5b6159e461514d565b6159ed83614cef565b81526020808401356001600160401b0380821115615a09575f80fd5b9085019036601f830112615a1b575f80fd5b813581811115615a2d57615a2d615111565b8060051b9150615a3e84830161516f565b8181529183018401918481019036841115615a57575f80fd5b938501935b83851015615a815784359250615a7183614dc8565b8282529385019390850190615a5c565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615aee5784516001600160a01b03168252938301936001929092019190830190615ac5565b509695505050505050565b60208152815160208201525f602083015160e06040840152615b1f610100840182614fb5565b90506040840151601f1980858403016060860152615b3d8383614fb5565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b6d8383615a93565b925060a08601519150808584030160c086015250615b8b8282615a93565b91505060c0840151615ba860e08501826001600160401b03169052565b509392505050565b5f8060408385031215615bc1575f80fd5b8251915060208301516001600160401b03811115615bdd575f80fd5b615be9858286016151c5565b9150509250929050565b6001600160401b03831115615c0a57615c0a615111565b615c1e83615c1883546150cb565b836153d1565b5f601f841160018114615c4f575f8515615c385750838201355b5f19600387901b1c1916600186901b178355610ea0565b5f83815260208120601f198716915b82811015615c7e5786850135825560209485019460019092019101615c5e565b5086821015615c9a575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b03808716835260606020840152615ccf6060840186886155b3565b915080841660408401525095945050505050565b81810381811115610e8e57610e8e6154d0565b5f60208284031215615d06575f80fd5b6132f382614e43565b5f60208284031215615d1f575f80fd5b813560ff811681146132f3575f80fd5b5f6001600160401b0380831681810361553d5761553d6154d0565b5f60208284031215615d5a575f80fd5b81516132f381614ce256fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122091fd9781d213c817aed3e146319d27f6fbf2535f84575753f151f98535f5793564736f6c63430008190033", } // ERC20TokenStakingManagerABI is the input ABI used to generate the binding from. @@ -1365,8 +1365,8 @@ type ERC20TokenStakingManagerDelegationEnded struct { // FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (*ERC20TokenStakingManagerDelegationEndedIterator, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1376,12 +1376,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegat for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1390,8 +1386,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegat // WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (event.Subscription, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1401,12 +1397,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegati for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1440,7 +1432,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegati // ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) +// 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 { @@ -1693,8 +1685,8 @@ type ERC20TokenStakingManagerDelegatorRegistered struct { // FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (*ERC20TokenStakingManagerDelegatorRegisteredIterator, error) { +// 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 { @@ -1704,12 +1696,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegat for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1718,8 +1706,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterDelegat // WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (event.Subscription, error) { +// 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 { @@ -1729,12 +1717,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1768,7 +1752,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchDelegato // ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) +// 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 { @@ -2008,19 +1992,15 @@ type ERC20TokenStakingManagerInitialValidatorCreated struct { // FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64) (*ERC20TokenStakingManagerInitialValidatorCreatedIterator, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerInitialValidatorCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -2029,19 +2009,15 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitial // WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialValidatorCreated, validationID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialValidatorCreated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -2075,7 +2051,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialV // ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*ERC20TokenStakingManagerInitialValidatorCreated, error) { event := new(ERC20TokenStakingManagerInitialValidatorCreated) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { @@ -2295,19 +2271,15 @@ type ERC20TokenStakingManagerUptimeUpdated struct { // FilterUptimeUpdated is a free log retrieval operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte, uptime []uint64) (*ERC20TokenStakingManagerUptimeUpdatedIterator, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerUptimeUpdatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -2316,19 +2288,15 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterUptimeU // WatchUptimeUpdated is a free log subscription operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerUptimeUpdated, validationID [][32]byte, uptime []uint64) (event.Subscription, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerUptimeUpdated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -2362,7 +2330,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchUptimeUp // ParseUptimeUpdated is a log parse operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseUptimeUpdated(log types.Log) (*ERC20TokenStakingManagerUptimeUpdated, error) { event := new(ERC20TokenStakingManagerUptimeUpdated) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "UptimeUpdated", log); err != nil { @@ -2451,8 +2419,8 @@ type ERC20TokenStakingManagerValidationPeriodCreated struct { // FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (*ERC20TokenStakingManagerValidationPeriodCreatedIterator, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2462,12 +2430,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2476,8 +2440,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat // WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2487,12 +2451,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidati for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2526,7 +2486,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidati // ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*ERC20TokenStakingManagerValidationPeriodCreated, error) { event := new(ERC20TokenStakingManagerValidationPeriodCreated) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { @@ -2766,23 +2726,15 @@ type ERC20TokenStakingManagerValidationPeriodRegistered struct { // FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (*ERC20TokenStakingManagerValidationPeriodRegisteredIterator, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*ERC20TokenStakingManagerValidationPeriodRegisteredIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -2791,23 +2743,15 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat // WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodRegistered, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (event.Subscription, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -2841,7 +2785,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidati // ParseValidationPeriodRegistered is a log parse operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*ERC20TokenStakingManagerValidationPeriodRegistered, error) { event := new(ERC20TokenStakingManagerValidationPeriodRegistered) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { @@ -2929,8 +2873,8 @@ type ERC20TokenStakingManagerValidatorRemovalInitialized struct { // FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (*ERC20TokenStakingManagerValidatorRemovalInitializedIterator, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*ERC20TokenStakingManagerValidatorRemovalInitializedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2940,12 +2884,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -2954,8 +2894,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat // WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2965,12 +2905,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidato for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -3004,7 +2940,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidato // ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*ERC20TokenStakingManagerValidatorRemovalInitialized, error) { event := new(ERC20TokenStakingManagerValidatorRemovalInitialized) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { @@ -3092,8 +3028,8 @@ type ERC20TokenStakingManagerValidatorWeightUpdate struct { // FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64, weight []uint64) (*ERC20TokenStakingManagerValidatorWeightUpdateIterator, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*ERC20TokenStakingManagerValidatorWeightUpdateIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -3103,12 +3039,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -3117,8 +3049,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidat // WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -3128,12 +3060,8 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidato for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -3167,7 +3095,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidato // ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*ERC20TokenStakingManagerValidatorWeightUpdate, error) { event := new(ERC20TokenStakingManagerValidatorWeightUpdate) if err := _ERC20TokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { @@ -3180,7 +3108,7 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) ParseValidato // ValidatorMessagesMetaData contains all meta data concerning the ValidatorMessages contract. var ValidatorMessagesMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidBLSPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"}],\"name\":\"InvalidCodecID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"actual\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"expected\",\"type\":\"uint32\"}],\"name\":\"InvalidMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMessageType\",\"type\":\"error\"},{\"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\"}],\"name\":\"packConversionData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"packL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"packL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"validationPeriod\",\"type\":\"tuple\"}],\"name\":\"packRegisterL1ValidatorMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"conversionID\",\"type\":\"bytes32\"}],\"name\":\"packSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"packValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackRegisterL1ValidatorMessage\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea2646970667358221220638384be794ac0a88b7c4b85254e350d323a52416ec42695ed945633f232052964736f6c63430008190033", + Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212207a0b6ee4bb75144dd6b8635b3883de8d9364507951a0e3d076ca36181dac9a1764736f6c63430008190033", } // ValidatorMessagesABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go index e9333f6ac..5cf5857b7 100644 --- a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go +++ b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go @@ -103,8 +103,8 @@ type ValidatorRegistrationInput struct { // 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\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"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\":true,\"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\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"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\":true,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":[{\"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\":[{\"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: "0x608060405234801561000f575f80fd5b50604051615c4f380380615c4f83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615b028061014d5f395ff3fe608060405260043610610228575f3560e01c80637d8d2f7711610129578063b771b3bc116100a8578063c974d1b61161006d578063c974d1b614610666578063d5f20ff61461067a578063df93d8de146106a6578063fb8b11dd146106bc578063fd7ac5e7146106db575f80fd5b8063b771b3bc146105db578063ba3a4b97146105f5578063bc5fbfec14610614578063bee0a03f14610634578063c599e24f14610653575f80fd5b80639ae06447116100ee5780639ae0644714610557578063a3a65e4814610576578063a9778a7a1461037c578063af2f5feb14610595578063afb98096146105a8575f80fd5b80637d8d2f77146104c757806380dd672f146104e65780638280a25a146105055780638ef34c981461051957806393e2459814610538575f80fd5b806335455ded116101b557806360305d621161017a57806360305d621461042057806360ad7784146104495780636206585614610468578063732214f81461049557806376f78621146104a8575f80fd5b806335455ded1461037c57806337b9be8f146103a45780633a1cfff6146103c3578063467ef06f146103e25780635dd6a6cb14610401575f80fd5b80631ec44724116101fb5780631ec44724146102b657806320d91b7a146102d557806325e1c776146102f45780632e2194d814610313578063329c3e121461034a575f80fd5b80630118acc41461022c5780630322ed981461024d5780630ba512d11461026c578063151d30d11461028b575b5f80fd5b348015610237575f80fd5b5061024b610246366004614aa8565b6106fa565b005b348015610258575f80fd5b5061024b610267366004614ae3565b61070b565b348015610277575f80fd5b5061024b610286366004614afa565b61099b565b348015610296575f80fd5b5061029f600a81565b60405160ff90911681526020015b60405180910390f35b3480156102c1575f80fd5b5061024b6102d0366004614aa8565b610a78565b3480156102e0575f80fd5b5061024b6102ef366004614b11565b610a84565b3480156102ff575f80fd5b5061024b61030e366004614b5f565b61102b565b34801561031e575f80fd5b5061033261032d366004614ae3565b61109f565b6040516001600160401b0390911681526020016102ad565b348015610355575f80fd5b506103646001600160991b0181565b6040516001600160a01b0390911681526020016102ad565b348015610387575f80fd5b5061039161271081565b60405161ffff90911681526020016102ad565b3480156103af575f80fd5b5061024b6103be366004614b94565b6110f3565b3480156103ce575f80fd5b5061024b6103dd366004614aa8565b611106565b3480156103ed575f80fd5b5061024b6103fc366004614be2565b611112565b34801561040c575f80fd5b5061024b61041b366004614b94565b6111e4565b34801561042b575f80fd5b50610434601481565b60405163ffffffff90911681526020016102ad565b348015610454575f80fd5b5061024b610463366004614b5f565b6111f0565b348015610473575f80fd5b50610487610482366004614c0f565b6114ac565b6040519081526020016102ad565b3480156104a0575f80fd5b506104875f81565b3480156104b3575f80fd5b5061024b6104c2366004614aa8565b6114cc565b3480156104d2575f80fd5b5061024b6104e1366004614b94565b6114d8565b3480156104f1575f80fd5b5061024b610500366004614b5f565b6114e4565b348015610510575f80fd5b5061029f603081565b348015610524575f80fd5b5061024b610533366004614c2a565b61171e565b348015610543575f80fd5b5061024b610552366004614ae3565b6117cf565b348015610562575f80fd5b5061024b610571366004614b94565b611863565b348015610581575f80fd5b5061024b610590366004614be2565b61186f565b6104876105a3366004614c69565b611a57565b3480156105b3575f80fd5b506104877f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b3480156105e6575f80fd5b506103646005600160991b0181565b348015610600575f80fd5b5061024b61060f366004614ae3565b611a8b565b34801561061f575f80fd5b506104875f80516020615a6d83398151915281565b34801561063f575f80fd5b5061024b61064e366004614ae3565b611ce4565b610487610661366004614ae3565b611e20565b348015610671575f80fd5b5061029f601481565b348015610685575f80fd5b50610699610694366004614ae3565b611e51565b6040516102ad9190614d3f565b3480156106b1575f80fd5b506103326202a30081565b3480156106c7575f80fd5b5061024b6106d6366004614c2a565b611fa0565b3480156106e6575f80fd5b506104876106f5366004614dbf565b612037565b6107068383835f612092565b505050565b5f8181525f80516020615a8d8339815191526020526040808220815160e0810190925280545f80516020615a6d83398151915293929190829060ff16600581111561075857610758614cca565b600581111561076957610769614cca565b815260200160018201805461077d90614e2a565b80601f01602080910402602001604051908101604052809291908181526020018280546107a990614e2a565b80156107f45780601f106107cb576101008083540402835291602001916107f4565b820191905f5260205f20905b8154815290600101906020018083116107d757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561085f5761085f614cca565b1461089b575f8381526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e5c565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610912573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109399190810190614f65565b6040518263ffffffff1660e01b81526004016109559190614f96565b6020604051808303815f875af1158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190614fa8565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806109e4575080546001600160401b03808416911610155b15610a025760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a2c836120be565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6109958383835f6120cf565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615a6d8339815191529060ff1615610ad657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3d9190614fa8565b836020013514610b66576040516372b0a7e760e11b815260208401356004820152602401610892565b30610b776060850160408601614fbf565b6001600160a01b031614610bba57610b956060840160408501614fbf565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610892565b5f610bc86060850185614fda565b905090505f805b828163ffffffff161015610e21575f610beb6060880188614fda565b8363ffffffff16818110610c0157610c0161501f565b9050602002810190610c139190615033565b610c1c9061509e565b80516040519192505f916006880191610c3491615119565b90815260200160405180910390205414610c6457805160405163a41f772f60e01b81526108929190600401614f96565b5f6002885f013584604051602001610c9392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610cad91615119565b602060405180830381855afa158015610cc8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ceb9190614fa8565b90508086600601835f0151604051610d039190615119565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d43908261516e565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610dc3908561523d565b935081604001516001600160401b0316817fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff845f0151604051610e069190614f96565b60405180910390a3505080610e1a9061525d565b9050610bcf565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e64910460ff168361527f565b6001600160401b03161015610e9757604051633e1a785160e01b81526001600160401b0382166004820152602401610892565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610ebb87612404565b604001516040518263ffffffff1660e01b8152600401610edb9190614f96565b602060405180830381865af4158015610ef6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f1a9190614fa8565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f5491906153d5565b5f60405180830381865af4158015610f6e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f959190810190614f65565b90505f600282604051610fa89190615119565b602060405180830381855afa158015610fc3573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610fe69190614fa8565b90508281146110125760405163baaea89d60e01b81526004810182905260248101849052604401610892565b5050506007909201805460ff1916600117905550505050565b6110348261251a565b611054576040516330efa98b60e01b815260048101839052602401610892565b5f61105e83611e51565b519050600281600581111561107557611075614cca565b14611095578060405163170cc93360e21b81526004016108929190614e5c565b6109958383612543565b5f806110a96127d7565b600301546110b79084615469565b90508015806110cc57506001600160401b0381115b156110ed5760405163222d164360e21b815260048101849052602401610892565b92915050565b6110ff848484846120cf565b5050505050565b6109958383835f6127fb565b61111a612a38565b5f6111236127d7565b90505f8061113084612a6f565b9150915061113d8261251a565b611149575050506111cb565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b0391821691168061118b5750805b6004835160058111156111a0576111a0614cca565b036111af576111af8185612e27565b6111c5826111c085604001516114ac565b612e51565b50505050505b6111e160015f80516020615aad83398151915255565b50565b61099584848484612e77565b5f6111f96127d7565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561123257611232614cca565b600381111561124357611243614cca565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6112b982611e51565b90506001835160038111156112d0576112d0614cca565b146112f1578251604051633b0d540d60e21b81526108929190600401615488565b60048151600581111561130657611306614cca565b0361131c5761131486612ea3565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61134189612404565b604001516040518263ffffffff1660e01b81526004016113619190614f96565b606060405180830381865af415801561137c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a091906154a2565b50915091508184146113cd57846040015160405163089938b360e11b815260040161089291815260200190565b806001600160401b031683606001516001600160401b031610806114065750806001600160401b03168560a001516001600160401b0316115b1561142f57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5f888152600787016020526040808220805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b19909216919091179091559051909186918b917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f691a45050505050505050565b5f6114b56127d7565b600301546110ed906001600160401b0384166154d7565b6107068383835f612e77565b6110ff848484846127fb565b6114ec612a38565b5f6114f56127d7565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561152e5761152e614cca565b600381111561153f5761153f614cca565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156115b8576115b8614cca565b146115d9578051604051633b0d540d60e21b81526108929190600401615488565b60046115e88260400151611e51565b5160058111156115fa576115fa614cca565b146116f9575f61160984612404565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016116489190614f96565b606060405180830381865af4158015611663573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168791906154a2565b5091509150818460400151146116b35760405163089938b360e11b815260048101839052602401610892565b806001600160401b03168460c001516001600160401b031611156116f557604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5050505b61170284612ea3565b505061171a60015f80516020615aad83398151915255565b5050565b5f6117276127d7565b90506001600160a01b03821661175b5760405163caa903f960e01b81526001600160a01b0383166004820152602401610892565b5f8381526006820160205260409020546001600160a01b031633146117a157335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610892565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6117d86127d7565b90505f6117e483611e51565b51905060048160058111156117fb576117fb614cca565b1461181b578060405163170cc93360e21b81526004016108929190614e5c565b5f8381526006830160205260409020546001600160a01b03163314611840573361177c565b5f838152600683016020526040902054610706906001600160a01b031684612e27565b61099584848484612092565b5f80516020615a6d8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6118a286612404565b604001516040518263ffffffff1660e01b81526004016118c29190614f96565b6040805180830381865af41580156118dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190091906154ee565b915091508061192657604051632d07135360e01b81528115156004820152602401610892565b5f8281526004840160205260409020805461194090614e2a565b90505f036119645760405163089938b360e11b815260048101839052602401610892565b60015f838152600580860160205260409091205460ff169081111561198b5761198b614cca565b146119be575f8281526005840160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e5c565b5f82815260048401602052604081206119d6916149fc565b5f828152600584016020526040808220805460ff1916600290811782550180546001600160c01b0316600160c01b426001600160401b0381811692909202929092179283905592519093600160801b9092049092169185917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b91a450505050565b5f611a60612a38565b611a6c8484843461309c565b9050611a8460015f80516020615aad83398151915255565b9392505050565b5f611a946127d7565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611acd57611acd614cca565b6003811115611ade57611ade614cca565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611b5757611b57614cca565b14158015611b785750600381516003811115611b7557611b75614cca565b14155b15611b99578051604051633b0d540d60e21b81526108929190600401615488565b5f611ba78260400151611e51565b905080606001516001600160401b03165f03611bd9576040516339b894f960e21b815260048101859052602401610892565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611c4793906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611c61573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c889190810190614f65565b6040518263ffffffff1660e01b8152600401611ca49190614f96565b6020604051808303815f875af1158015611cc0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ff9190614fa8565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615a6d8339815191529190611d2b90614e2a565b90505f03611d4f5760405163089938b360e11b815260048101839052602401610892565b60015f838152600580840160205260409091205460ff1690811115611d7657611d76614cca565b14611da9575f8281526005820160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e5c565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611de09201615511565b6020604051808303815f875af1158015611dfc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107069190614fa8565b5f611e29612a38565b611e34823334613211565b9050611e4c60015f80516020615aad83398151915255565b919050565b611e59614a33565b5f8281525f80516020615a8d833981519152602052604090819020815160e0810190925280545f80516020615a6d833981519152929190829060ff166005811115611ea657611ea6614cca565b6005811115611eb757611eb7614cca565b8152602001600182018054611ecb90614e2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef790614e2a565b8015611f425780601f10611f1957610100808354040283529160200191611f42565b820191905f5260205f20905b815481529060010190602001808311611f2557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611fd25760405163caa903f960e01b81526001600160a01b0382166004820152602401610892565b5f611fdb6127d7565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314612009573361177c565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615a6d833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb069061207a908690869061559b565b90815260200160405180910390205491505092915050565b61209e848484846120cf565b61099557604051631036cf9160e11b815260048101859052602401610892565b6120c6613451565b6111e18161349c565b5f806120d96127d7565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561211257612112614cca565b600381111561212357612123614cca565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61219982611e51565b90506002835160038111156121b0576121b0614cca565b146121d1578251604051633b0d540d60e21b81526108929190600401615488565b60208301516001600160a01b0316331461226d575f8281526006850160205260409020546001600160a01b0316331461220a573361177c565b5f82815260068501602052604090205460a082015161223991600160b01b90046001600160401b03169061523d565b6001600160401b031642101561226d5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b60028151600581111561228257612282614cca565b036123a457600284015460808401516122a4916001600160401b03169061523d565b6001600160401b03164210156122d85760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b87156122ea576122e88288612543565b505b5f8981526007850160205260409020805460ff191660031790556060830151608082015161232391849161231e91906155aa565b613516565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561236684888c6136f3565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a3151594506123fc9350505050565b6004815160058111156123b9576123b9614cca565b036123e0576123c983878b6136f3565b506123d389612ea3565b60019450505050506123fc565b805160405163170cc93360e21b81526108929190600401614e5c565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015612468573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261248f91908101906155ca565b91509150806124b157604051636b2f19e960e01b815260040160405180910390fd5b8151156124d7578151604051636ba589a560e01b81526004810191909152602401610892565b60208201516001600160a01b031615612513576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5092915050565b5f806125246127d7565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa15801561258e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125b591908101906155ca565b91509150806125d757604051636b2f19e960e01b815260040160405180910390fd5b5f6125e06127d7565b600581015484519192501461260e578251604051636ba589a560e01b81526004810191909152602401610892565b60208301516001600160a01b03161561264a576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b60208301516001600160a01b031615612686576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016126c39190614f96565b6040805180830381865af41580156126dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612701919061565a565b915091508188146127285760405163089938b360e11b815260048101899052602401610892565b5f8881526006840160205260409020600101546001600160401b0390811690821611156127ae575f888152600684016020526040808220600101805467ffffffffffffffff19166001600160401b038516908117909155905190918a917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d04359190a36127cc565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806128056127d7565b90505f612811876138e1565b905061281c8761251a565b61282b576001925050506123fc565b5f8781526006830160205260409020546001600160a01b03163314612850573361177c565b5f87815260068301602052604090205460a082015161287f91600160b01b90046001600160401b03169061523d565b6001600160401b03168160c001516001600160401b031610156128c65760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610892565b5f86156128de576128d78887612543565b90506128fc565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f90612921906114ac565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa15801561298a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ae9190614fa8565b90506001600160a01b0386166129da575f8981526006850160205260409020546001600160a01b031695505b5f898152600a85016020526040812080548392906129f990849061567d565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615aad833981519152805460011901612a6957604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612a78614a33565b5f80516020615a6d8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612aab88612404565b604001516040518263ffffffff1660e01b8152600401612acb9190614f96565b6040805180830381865af4158015612ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b0991906154ee565b915091508015612b3057604051632d07135360e01b81528115156004820152602401610892565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612b6757612b67614cca565b6005811115612b7857612b78614cca565b8152602001600182018054612b8c90614e2a565b80601f0160208091040260200160405190810160405280929190818152602001828054612bb890614e2a565b8015612c035780601f10612bda57610100808354040283529160200191612c03565b820191905f5260205f20905b815481529060010190602001808311612be657829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612c6e57612c6e614cca565b14158015612c8f5750600181516005811115612c8c57612c8c614cca565b14155b15612cb057805160405163170cc93360e21b81526108929190600401614e5c565b600381516005811115612cc557612cc5614cca565b03612cd35760048152612cd8565b600581525b836006018160200151604051612cee9190615119565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612d3157612d31614cca565b021790555060208201516001820190612d4a908261516e565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612df057612df0614cca565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612e306127d7565b5f838152600a82016020526040812080549190559091506109958482613bc3565b61171a6001600160a01b03831682613c21565b60015f80516020615aad83398151915255565b612e83848484846127fb565b61099557604051635bff683f60e11b815260048101859052602401610892565b5f612eac6127d7565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612ee557612ee5614cca565b6003811115612ef657612ef6614cca565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612f937fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fa2919061523d565b6001600160401b0316421015612fd65760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613031575060208201515b5f8061303e838886613cb4565b9150915061305785602001516111c087606001516114ac565b8184887f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc9938460405161308b91815260200190565b60405180910390a450505050505050565b5f806130a66127d7565b600281015490915061ffff600160401b909104811690861610806130cf575061271061ffff8616115b156130f357604051635f12e6c360e11b815261ffff86166004820152602401610892565b60028101546001600160401b03908116908516101561312f576040516202a06d60e11b81526001600160401b0385166004820152602401610892565b80548310806131415750806001015483115b156131625760405163222d164360e21b815260048101849052602401610892565b825f61316d8261109f565b90505f61317a8983613d61565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f8061321b6127d7565b90505f6132278461109f565b90505f61323387611e51565b905061323e8761251a565b61325e576040516330efa98b60e01b815260048101889052602401610892565b60028151600581111561327357613273614cca565b1461329457805160405163170cc93360e21b81526108929190600401614e5c565b5f8282608001516132a5919061523d565b905083600201600a9054906101000a90046001600160401b031682604001516132ce919061527f565b6001600160401b0316816001600160401b0316111561330b57604051636d51fe0560e11b81526001600160401b0382166004820152602401610892565b5f806133178a84613516565b915091505f8a8360405160200161334592919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661349a57604051631afcd79f60e31b815260040160405180910390fd5b565b6134a4613451565b6134ad816142ae565b6134b56142c7565b6111e1606082013560808301356134d260c0850160a08601614c0f565b6134e260e0860160c08701615690565b6134f3610100870160e088016156a9565b61010087013561350b61014089016101208a01614fbf565b8861014001356142d7565b5f8281525f80516020615a8d833981519152602052604081206002015481905f80516020615a6d83398151915290600160801b90046001600160401b031661355e85826144bc565b5f61356887614726565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613611573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526136389190810190614f65565b6040518263ffffffff1660e01b81526004016136549190614f96565b6020604051808303815f875af1158015613670573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136949190614fa8565b9050866001600160401b0316826001600160401b0316897f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df846040516136dc91815260200190565b60405180910390a4909450925050505b9250929050565b5f806136fd6127d7565b90505f61370d8660400151611e51565b90505f60038251600581111561372557613725614cca565b1480613743575060048251600581111561374157613741614cca565b145b15613753575060c0810151613790565b60028251600581111561376857613768614cca565b03613774575042613790565b815160405163170cc93360e21b81526108929190600401614e5c565b86608001516001600160401b0316816001600160401b0316116137b8575f9350505050611a84565b600483015460608801515f916001600160a01b031690634f22429f906137dd906114ac565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561385e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138829190614fa8565b90506001600160a01b03871661389a57876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6138e9614a33565b5f8281525f80516020615a8d8339815191526020526040808220815160e0810190925280545f80516020615a6d83398151915293929190829060ff16600581111561393657613936614cca565b600581111561394757613947614cca565b815260200160018201805461395b90614e2a565b80601f016020809104026020016040519081016040528092919081815260200182805461398790614e2a565b80156139d25780601f106139a9576101008083540402835291602001916139d2565b820191905f5260205f20905b8154815290600101906020018083116139b557829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115613a4057613a40614cca565b14613a73575f8481526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e5c565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115613ab857613ab8614cca565b021790555060208201516001820190613ad1908261516e565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f613b6f8582613516565b91505081608001516001600160401b031681867ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa4242604051613bb391815260200190565b60405180910390a4509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613c0f575f80fd5b505af1158015611314573d5f803e3d5ffd5b80471015613c445760405163cd78605960e01b8152306004820152602401610892565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613c8d576040519150601f19603f3d011682016040523d82523d5f602084013e613c92565b606091505b505090508061070657604051630a12f52160e11b815260040160405180910390fd5b5f805f613cbf6127d7565b5f86815260088201602052604081208054908290559192509081908015613d53575f87815260068501602052604090205461271090613d0990600160a01b900461ffff16836154d7565b613d139190615469565b91508184600a015f8981526020019081526020015f205f828254613d37919061567d565b90915550613d47905082826156c9565b9250613d538984613bc3565b509097909650945050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613da557604051637fab81e560e01b815260040160405180910390fd5b5f80516020615a6d83398151915242613dc46060860160408701614c0f565b6001600160401b0316111580613dfe5750613de26202a3004261567d565b613df26060860160408701614c0f565b6001600160401b031610155b15613e3857613e136060850160408601614c0f565b604051635879da1360e11b81526001600160401b039091166004820152602401610892565b60038101546001600160401b0390613e5b90600160401b9004821685831661567d565b1115613e8557604051633e1a785160e01b81526001600160401b0384166004820152602401610892565b613e9a613e9560608601866156dc565b61479b565b613eaa613e9560808601866156dc565b6030613eb960208601866156f0565b905014613eeb57613ecd60208501856156f0565b6040516326475b2f60e11b8152610892925060040190815260200190565b613ef584806156f0565b90505f03613f2257613f0784806156f0565b604051633e08a12560e11b8152600401610892929190615732565b5f60068201613f3186806156f0565b604051613f3f92919061559b565b90815260200160405180910390205414613f7857613f5d84806156f0565b60405163a41f772f60e01b8152600401610892929190615732565b613f82835f6144bc565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613fbf8a806156f0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190614007908b018b6156f0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509082525060200161405060608b0160408c01614c0f565b6001600160401b0316815260200161406b60608b018b6156dc565b61407490615745565b815260200161408660808b018b6156dc565b61408f90615745565b8152602001886001600160401b03168152506040518263ffffffff1660e01b81526004016140bd9190615872565b5f60405180830381865af41580156140d7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526140fe9190810190615929565b5f8281526004860160205260409020919350915061411c828261516e565b50816006840161412c88806156f0565b60405161413a92919061559b565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90614176908590600401614f96565b6020604051808303815f875af1158015614192573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141b69190614fa8565b5f8481526005860160205260409020805460ff1916600117905590506141dc87806156f0565b5f8581526005870160205260409020600101916141fa91908361596c565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b8202176001600160c01b03169091556003909101805467ffffffffffffffff1916905581847fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd661427c8b806156f0565b61428c60608e0160408f01614c0f565b60405161429b93929190615a25565b60405180910390a4509095945050505050565b6142b6613451565b6142be614904565b6111e18161490c565b6142cf613451565b61349a6149f4565b6142df613451565b5f6142e86127d7565b905061ffff86161580614300575061271061ffff8716115b1561432457604051635f12e6c360e11b815261ffff87166004820152602401610892565b878911156143485760405163222d164360e21b8152600481018a9052602401610892565b60ff8516158061435b5750600a60ff8616115b1561437e5760405163170db35960e31b815260ff86166004820152602401610892565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b031610156143e5576040516202a06d60e11b81526001600160401b0388166004820152602401610892565b835f036144055760405163a733007160e01b815260040160405180910390fd5b8161442657604051632f6bd1db60e01b815260048101839052602401610892565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f80516020615a6d8339815191525f6001600160401b0380841690851611156144f0576144e983856155aa565b90506144fd565b6144fa84846155aa565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b900490921660608201524291158061456a575060018401548151614566916001600160401b03169061567d565b8210155b15614592576001600160401b03808416606083015282825260408201511660208201526145b1565b82816060018181516145a4919061523d565b6001600160401b03169052505b60608101516145c190606461527f565b602082015160018601546001600160401b0392909216916145ec9190600160401b900460ff1661527f565b6001600160401b0316101561462557606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610892565b8581604001818151614637919061523d565b6001600160401b03169052506040810180518691906146579083906155aa565b6001600160401b03169052506001840154604082015160649161468591600160401b90910460ff169061527f565b6001600160401b031610156146be576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610892565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615a8d8339815191526020526040812060020180545f80516020615a6d833981519152919060089061477090600160401b90046001600160401b0316615a51565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b6147a86020820182614be2565b63ffffffff161580156147c857506147c36020820182614fda565b151590505b1561480f576147da6020820182614be2565b6147e76020830183614fda565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610892565b61481c6020820182614fda565b905061482b6020830183614be2565b63ffffffff161115614844576147da6020820182614be2565b60015b6148546020830183614fda565b905081101561171a5761486a6020830183614fda565b6148756001846156c9565b8181106148845761488461501f565b90506020020160208101906148999190614fbf565b6001600160a01b03166148af6020840184614fda565b838181106148bf576148bf61501f565b90506020020160208101906148d49190614fbf565b6001600160a01b031610156148fc57604051630dbc8d5f60e31b815260040160405180910390fd5b600101614847565b61349a613451565b614914613451565b80355f80516020615a6d833981519152908155601461493960608401604085016156a9565b60ff161180614958575061495360608301604084016156a9565b60ff16155b1561498c5761496d60608301604084016156a9565b604051634a59bbff60e11b815260ff9091166004820152602401610892565b61499c60608301604084016156a9565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556149cd6040830160208401614c0f565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612e64613451565b508054614a0890614e2a565b5f825580601f10614a17575050565b601f0160209004905f5260205f20908101906111e19190614a70565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614a84575f8155600101614a71565b5090565b80151581146111e1575f80fd5b803563ffffffff81168114611e4c575f80fd5b5f805f60608486031215614aba575f80fd5b833592506020840135614acc81614a88565b9150614ada60408501614a95565b90509250925092565b5f60208284031215614af3575f80fd5b5035919050565b5f6101608284031215614b0b575f80fd5b50919050565b5f8060408385031215614b22575f80fd5b82356001600160401b03811115614b37575f80fd5b830160808186031215614b48575f80fd5b9150614b5660208401614a95565b90509250929050565b5f8060408385031215614b70575f80fd5b82359150614b5660208401614a95565b6001600160a01b03811681146111e1575f80fd5b5f805f8060808587031215614ba7575f80fd5b843593506020850135614bb981614a88565b9250614bc760408601614a95565b91506060850135614bd781614b80565b939692955090935050565b5f60208284031215614bf2575f80fd5b611a8482614a95565b6001600160401b03811681146111e1575f80fd5b5f60208284031215614c1f575f80fd5b8135611a8481614bfb565b5f8060408385031215614c3b575f80fd5b823591506020830135614c4d81614b80565b809150509250929050565b803561ffff81168114611e4c575f80fd5b5f805f60608486031215614c7b575f80fd5b83356001600160401b03811115614c90575f80fd5b840160a08187031215614ca1575f80fd5b9250614caf60208501614c58565b91506040840135614cbf81614bfb565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614cee57614cee614cca565b9052565b5f5b83811015614d0c578181015183820152602001614cf4565b50505f910152565b5f8151808452614d2b816020860160208601614cf2565b601f01601f19169290920160200192915050565b60208152614d51602082018351614cde565b5f602083015160e06040840152614d6c610100840182614d14565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215614dd0575f80fd5b82356001600160401b0380821115614de6575f80fd5b818501915085601f830112614df9575f80fd5b813581811115614e07575f80fd5b866020828501011115614e18575f80fd5b60209290920196919550909350505050565b600181811c90821680614e3e57607f821691505b602082108103614b0b57634e487b7160e01b5f52602260045260245ffd5b602081016110ed8284614cde565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614ea057614ea0614e6a565b60405290565b604080519081016001600160401b0381118282101715614ea057614ea0614e6a565b604051601f8201601f191681016001600160401b0381118282101715614ef057614ef0614e6a565b604052919050565b5f6001600160401b03821115614f1057614f10614e6a565b50601f01601f191660200190565b5f82601f830112614f2d575f80fd5b8151614f40614f3b82614ef8565b614ec8565b818152846020838601011115614f54575f80fd5b6123fc826020830160208701614cf2565b5f60208284031215614f75575f80fd5b81516001600160401b03811115614f8a575f80fd5b6123fc84828501614f1e565b602081525f611a846020830184614d14565b5f60208284031215614fb8575f80fd5b5051919050565b5f60208284031215614fcf575f80fd5b8135611a8481614b80565b5f808335601e19843603018112614fef575f80fd5b8301803591506001600160401b03821115615008575f80fd5b6020019150600581901b36038213156136ec575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615047575f80fd5b9190910192915050565b5f82601f830112615060575f80fd5b813561506e614f3b82614ef8565b818152846020838601011115615082575f80fd5b816020850160208301375f918101602001919091529392505050565b5f606082360312156150ae575f80fd5b6150b6614e7e565b82356001600160401b03808211156150cc575f80fd5b6150d836838701615051565b835260208501359150808211156150ed575f80fd5b506150fa36828601615051565b602083015250604083013561510e81614bfb565b604082015292915050565b5f8251615047818460208701614cf2565b601f82111561070657805f5260205f20601f840160051c8101602085101561514f5750805b601f840160051c820191505b818110156110ff575f815560010161515b565b81516001600160401b0381111561518757615187614e6a565b61519b816151958454614e2a565b8461512a565b602080601f8311600181146151ce575f84156151b75750858301515b5f19600386901b1c1916600185901b178555611314565b5f85815260208120601f198616915b828110156151fc578886015182559484019460019091019084016151dd565b508582101561521957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561251357612513615229565b5f63ffffffff80831681810361527557615275615229565b6001019392505050565b6001600160401b038181168382160280821691908281146152a2576152a2615229565b505092915050565b5f808335601e198436030181126152bf575f80fd5b83016020810192503590506001600160401b038111156152dd575f80fd5b8036038213156136ec575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156153c857848303601f19018952813536889003605e1901811261534f575f80fd5b8701606061535d82806152aa565b82875261536d83880182846152eb565b9250505061537d868301836152aa565b8683038888015261538f8382846152eb565b9250505060408083013592506153a483614bfb565b6001600160401b03929092169490910193909352978301979083019060010161532a565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356153f981614b80565b6001600160a01b031660608381019190915283013536849003601e19018112615420575f80fd5b83016020810190356001600160401b0381111561543b575f80fd5b8060051b360382131561544c575f80fd5b60808085015261546060a085018284615313565b95945050505050565b5f8261548357634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061549c5761549c614cca565b91905290565b5f805f606084860312156154b4575f80fd5b8351925060208401516154c681614bfb565b6040850151909250614cbf81614bfb565b80820281158282048414176110ed576110ed615229565b5f80604083850312156154ff575f80fd5b825191506020830151614c4d81614a88565b5f60208083525f845461552381614e2a565b806020870152604060018084165f811461554457600181146155605761558d565b60ff19851660408a0152604084151560051b8a0101955061558d565b895f5260205f205f5b858110156155845781548b8201860152908301908801615569565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561251357612513615229565b5f80604083850312156155db575f80fd5b82516001600160401b03808211156155f1575f80fd5b9084019060608287031215615604575f80fd5b61560c614e7e565b82518152602083015161561e81614b80565b6020820152604083015182811115615634575f80fd5b61564088828601614f1e565b6040830152508094505050506020830151614c4d81614a88565b5f806040838503121561566b575f80fd5b825191506020830151614c4d81614bfb565b808201808211156110ed576110ed615229565b5f602082840312156156a0575f80fd5b611a8482614c58565b5f602082840312156156b9575f80fd5b813560ff81168114611a84575f80fd5b818103818111156110ed576110ed615229565b5f8235603e19833603018112615047575f80fd5b5f808335601e19843603018112615705575f80fd5b8301803591506001600160401b0382111561571e575f80fd5b6020019150368190038213156136ec575f80fd5b602081525f6123fc6020830184866152eb565b5f60408236031215615755575f80fd5b61575d614ea6565b61576683614a95565b81526020808401356001600160401b0380821115615782575f80fd5b9085019036601f830112615794575f80fd5b8135818111156157a6576157a6614e6a565b8060051b91506157b7848301614ec8565b81815291830184019184810190368411156157d0575f80fd5b938501935b838510156157fa57843592506157ea83614b80565b82825293850193908501906157d5565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158675784516001600160a01b0316825293830193600192909201919083019061583e565b509695505050505050565b60208152815160208201525f602083015160e06040840152615898610100840182614d14565b90506040840151601f19808584030160608601526158b68383614d14565b92506001600160401b03606087015116608086015260808601519150808584030160a08601526158e6838361580c565b925060a08601519150808584030160c086015250615904828261580c565b91505060c084015161592160e08501826001600160401b03169052565b509392505050565b5f806040838503121561593a575f80fd5b8251915060208301516001600160401b03811115615956575f80fd5b61596285828601614f1e565b9150509250929050565b6001600160401b0383111561598357615983614e6a565b615997836159918354614e2a565b8361512a565b5f601f8411600181146159c8575f85156159b15750838201355b5f19600387901b1c1916600186901b1783556110ff565b5f83815260208120601f198716915b828110156159f757868501358255602094850194600190920191016159d7565b5086821015615a13575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081525f615a386040830185876152eb565b90506001600160401b0383166020830152949350505050565b5f6001600160401b038083168181036152755761527561522956fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220e63f5b44850e7cba032a96e5b30f2b82626b4f7271bcc1ec2a2af6b6c47a2b6064736f6c63430008190033", + 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\":\"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\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"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\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":[{\"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\":[{\"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: "0x608060405234801561000f575f80fd5b50604051615c97380380615c9783398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615b4a8061014d5f395ff3fe608060405260043610610228575f3560e01c80637d8d2f7711610129578063b771b3bc116100a8578063c974d1b61161006d578063c974d1b614610666578063d5f20ff61461067a578063df93d8de146106a6578063fb8b11dd146106bc578063fd7ac5e7146106db575f80fd5b8063b771b3bc146105db578063ba3a4b97146105f5578063bc5fbfec14610614578063bee0a03f14610634578063c599e24f14610653575f80fd5b80639ae06447116100ee5780639ae0644714610557578063a3a65e4814610576578063a9778a7a1461037c578063af2f5feb14610595578063afb98096146105a8575f80fd5b80637d8d2f77146104c757806380dd672f146104e65780638280a25a146105055780638ef34c981461051957806393e2459814610538575f80fd5b806335455ded116101b557806360305d621161017a57806360305d621461042057806360ad7784146104495780636206585614610468578063732214f81461049557806376f78621146104a8575f80fd5b806335455ded1461037c57806337b9be8f146103a45780633a1cfff6146103c3578063467ef06f146103e25780635dd6a6cb14610401575f80fd5b80631ec44724116101fb5780631ec44724146102b657806320d91b7a146102d557806325e1c776146102f45780632e2194d814610313578063329c3e121461034a575f80fd5b80630118acc41461022c5780630322ed981461024d5780630ba512d11461026c578063151d30d11461028b575b5f80fd5b348015610237575f80fd5b5061024b610246366004614ac4565b6106fa565b005b348015610258575f80fd5b5061024b610267366004614aff565b61070b565b348015610277575f80fd5b5061024b610286366004614b16565b61099b565b348015610296575f80fd5b5061029f600a81565b60405160ff90911681526020015b60405180910390f35b3480156102c1575f80fd5b5061024b6102d0366004614ac4565b610a78565b3480156102e0575f80fd5b5061024b6102ef366004614b2d565b610a84565b3480156102ff575f80fd5b5061024b61030e366004614b7b565b611023565b34801561031e575f80fd5b5061033261032d366004614aff565b611097565b6040516001600160401b0390911681526020016102ad565b348015610355575f80fd5b506103646001600160991b0181565b6040516001600160a01b0390911681526020016102ad565b348015610387575f80fd5b5061039161271081565b60405161ffff90911681526020016102ad565b3480156103af575f80fd5b5061024b6103be366004614bb0565b6110eb565b3480156103ce575f80fd5b5061024b6103dd366004614ac4565b6110fe565b3480156103ed575f80fd5b5061024b6103fc366004614bfe565b61110a565b34801561040c575f80fd5b5061024b61041b366004614bb0565b6111dc565b34801561042b575f80fd5b50610434601481565b60405163ffffffff90911681526020016102ad565b348015610454575f80fd5b5061024b610463366004614b7b565b6111e8565b348015610473575f80fd5b50610487610482366004614c2b565b6114b0565b6040519081526020016102ad565b3480156104a0575f80fd5b506104875f81565b3480156104b3575f80fd5b5061024b6104c2366004614ac4565b6114d0565b3480156104d2575f80fd5b5061024b6104e1366004614bb0565b6114dc565b3480156104f1575f80fd5b5061024b610500366004614b7b565b6114e8565b348015610510575f80fd5b5061029f603081565b348015610524575f80fd5b5061024b610533366004614c46565b611722565b348015610543575f80fd5b5061024b610552366004614aff565b6117d3565b348015610562575f80fd5b5061024b610571366004614bb0565b611867565b348015610581575f80fd5b5061024b610590366004614bfe565b611873565b6104876105a3366004614c85565b611a69565b3480156105b3575f80fd5b506104877f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b3480156105e6575f80fd5b506103646005600160991b0181565b348015610600575f80fd5b5061024b61060f366004614aff565b611a9d565b34801561061f575f80fd5b506104875f80516020615ab583398151915281565b34801561063f575f80fd5b5061024b61064e366004614aff565b611cf6565b610487610661366004614aff565b611e32565b348015610671575f80fd5b5061029f601481565b348015610685575f80fd5b50610699610694366004614aff565b611e63565b6040516102ad9190614d5b565b3480156106b1575f80fd5b506103326202a30081565b3480156106c7575f80fd5b5061024b6106d6366004614c46565b611fb2565b3480156106e6575f80fd5b506104876106f5366004614ddb565b612049565b6107068383835f6120a4565b505050565b5f8181525f80516020615ad58339815191526020526040808220815160e0810190925280545f80516020615ab583398151915293929190829060ff16600581111561075857610758614ce6565b600581111561076957610769614ce6565b815260200160018201805461077d90614e46565b80601f01602080910402602001604051908101604052809291908181526020018280546107a990614e46565b80156107f45780601f106107cb576101008083540402835291602001916107f4565b820191905f5260205f20905b8154815290600101906020018083116107d757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561085f5761085f614ce6565b1461089b575f8381526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e78565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610912573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109399190810190614f81565b6040518263ffffffff1660e01b81526004016109559190614fb2565b6020604051808303815f875af1158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190614fc4565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806109e4575080546001600160401b03808416911610155b15610a025760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a2c836120d0565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6109958383835f6120e1565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615ab58339815191529060ff1615610ad657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3d9190614fc4565b836020013514610b66576040516372b0a7e760e11b815260208401356004820152602401610892565b30610b776060850160408601614fdb565b6001600160a01b031614610bba57610b956060840160408501614fdb565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610892565b5f610bc86060850185614ff6565b905090505f805b828163ffffffff161015610e19575f610beb6060880188614ff6565b8363ffffffff16818110610c0157610c0161503b565b9050602002810190610c13919061504f565b610c1c906150ba565b80516040519192505f916006880191610c3491615135565b90815260200160405180910390205414610c6457805160405163a41f772f60e01b81526108929190600401614fb2565b5f6002885f013584604051602001610c9392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610cad91615135565b602060405180830381855afa158015610cc8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ceb9190614fc4565b90508086600601835f0151604051610d039190615135565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d43908261518a565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610dc39085615259565b9350807fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff8360400151845f0151604051610dfe929190615279565b60405180910390a2505080610e129061529a565b9050610bcf565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e5c910460ff16836152bc565b6001600160401b03161015610e8f57604051633e1a785160e01b81526001600160401b0382166004820152602401610892565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610eb387612416565b604001516040518263ffffffff1660e01b8152600401610ed39190614fb2565b602060405180830381865af4158015610eee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f129190614fc4565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f4c9190615412565b5f60405180830381865af4158015610f66573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f8d9190810190614f81565b90505f600282604051610fa09190615135565b602060405180830381855afa158015610fbb573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610fde9190614fc4565b905082811461100a5760405163baaea89d60e01b81526004810182905260248101849052604401610892565b5050506007909201805460ff1916600117905550505050565b61102c8261252c565b61104c576040516330efa98b60e01b815260048101839052602401610892565b5f61105683611e63565b519050600281600581111561106d5761106d614ce6565b1461108d578060405163170cc93360e21b81526004016108929190614e78565b6109958383612555565b5f806110a16127f4565b600301546110af90846154a6565b90508015806110c457506001600160401b0381115b156110e55760405163222d164360e21b815260048101849052602401610892565b92915050565b6110f7848484846120e1565b5050505050565b6109958383835f612818565b611112612a55565b5f61111b6127f4565b90505f8061112884612a8c565b915091506111358261252c565b611141575050506111c3565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b039182169116806111835750805b60048351600581111561119857611198614ce6565b036111a7576111a78185612e44565b6111bd826111b885604001516114b0565b612e6e565b50505050505b6111d960015f80516020615af583398151915255565b50565b61099584848484612e94565b5f6111f16127f4565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561122a5761122a614ce6565b600381111561123b5761123b614ce6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6112b182611e63565b90506001835160038111156112c8576112c8614ce6565b146112e9578251604051633b0d540d60e21b815261089291906004016154c5565b6004815160058111156112fe576112fe614ce6565b036113145761130c86612ec0565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61133989612416565b604001516040518263ffffffff1660e01b81526004016113599190614fb2565b606060405180830381865af4158015611374573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139891906154df565b50915091508184146113c557846040015160405163089938b360e11b815260040161089291815260200190565b806001600160401b031683606001516001600160401b031610806113fe5750806001600160401b03168560a001516001600160401b0316115b1561142757604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6114b96127f4565b600301546110e5906001600160401b038416615514565b6107068383835f612e94565b6110f784848484612818565b6114f0612a55565b5f6114f96127f4565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561153257611532614ce6565b600381111561154357611543614ce6565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156115bc576115bc614ce6565b146115dd578051604051633b0d540d60e21b815261089291906004016154c5565b60046115ec8260400151611e63565b5160058111156115fe576115fe614ce6565b146116fd575f61160d84612416565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b815260040161164c9190614fb2565b606060405180830381865af4158015611667573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168b91906154df565b5091509150818460400151146116b75760405163089938b360e11b815260048101839052602401610892565b806001600160401b03168460c001516001600160401b031611156116f957604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5050505b61170684612ec0565b505061171e60015f80516020615af583398151915255565b5050565b5f61172b6127f4565b90506001600160a01b03821661175f5760405163caa903f960e01b81526001600160a01b0383166004820152602401610892565b5f8381526006820160205260409020546001600160a01b031633146117a557335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610892565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6117dc6127f4565b90505f6117e883611e63565b51905060048160058111156117ff576117ff614ce6565b1461181f578060405163170cc93360e21b81526004016108929190614e78565b5f8381526006830160205260409020546001600160a01b031633146118445733611780565b5f838152600683016020526040902054610706906001600160a01b031684612e44565b610995848484846120a4565b5f80516020615ab58339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6118a686612416565b604001516040518263ffffffff1660e01b81526004016118c69190614fb2565b6040805180830381865af41580156118e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611904919061552b565b915091508061192a57604051632d07135360e01b81528115156004820152602401610892565b5f8281526004840160205260409020805461194490614e46565b90505f036119685760405163089938b360e11b815260048101839052602401610892565b60015f838152600580860160205260409091205460ff169081111561198f5761198f614ce6565b146119c2575f8281526005840160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e78565b5f82815260048401602052604081206119da91614a18565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611a72612a55565b611a7e848484346130ba565b9050611a9660015f80516020615af583398151915255565b9392505050565b5f611aa66127f4565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611adf57611adf614ce6565b6003811115611af057611af0614ce6565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611b6957611b69614ce6565b14158015611b8a5750600381516003811115611b8757611b87614ce6565b14155b15611bab578051604051633b0d540d60e21b815261089291906004016154c5565b5f611bb98260400151611e63565b905080606001516001600160401b03165f03611beb576040516339b894f960e21b815260048101859052602401610892565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611c5993906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611c73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c9a9190810190614f81565b6040518263ffffffff1660e01b8152600401611cb69190614fb2565b6020604051808303815f875af1158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f79190614fc4565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615ab58339815191529190611d3d90614e46565b90505f03611d615760405163089938b360e11b815260048101839052602401610892565b60015f838152600580840160205260409091205460ff1690811115611d8857611d88614ce6565b14611dbb575f8281526005820160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e78565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611df2920161554e565b6020604051808303815f875af1158015611e0e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107069190614fc4565b5f611e3b612a55565b611e4682333461322f565b9050611e5e60015f80516020615af583398151915255565b919050565b611e6b614a4f565b5f8281525f80516020615ad5833981519152602052604090819020815160e0810190925280545f80516020615ab5833981519152929190829060ff166005811115611eb857611eb8614ce6565b6005811115611ec957611ec9614ce6565b8152602001600182018054611edd90614e46565b80601f0160208091040260200160405190810160405280929190818152602001828054611f0990614e46565b8015611f545780601f10611f2b57610100808354040283529160200191611f54565b820191905f5260205f20905b815481529060010190602001808311611f3757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611fe45760405163caa903f960e01b81526001600160a01b0382166004820152602401610892565b5f611fed6127f4565b5f8481526007820160205260409020549091506001600160a01b0361010090910416331461201b5733611780565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615ab5833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb069061208c90869086906155d8565b90815260200160405180910390205491505092915050565b6120b0848484846120e1565b61099557604051631036cf9160e11b815260048101859052602401610892565b6120d861346f565b6111d9816134ba565b5f806120eb6127f4565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561212457612124614ce6565b600381111561213557612135614ce6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6121ab82611e63565b90506002835160038111156121c2576121c2614ce6565b146121e3578251604051633b0d540d60e21b815261089291906004016154c5565b60208301516001600160a01b0316331461227f575f8281526006850160205260409020546001600160a01b0316331461221c5733611780565b5f82815260068501602052604090205460a082015161224b91600160b01b90046001600160401b031690615259565b6001600160401b031642101561227f5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b60028151600581111561229457612294614ce6565b036123b657600284015460808401516122b6916001600160401b031690615259565b6001600160401b03164210156122ea5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b87156122fc576122fa8288612555565b505b5f8981526007850160205260409020805460ff191660031790556060830151608082015161233591849161233091906155e7565b613534565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561237884888c61370b565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a31515945061240e9350505050565b6004815160058111156123cb576123cb614ce6565b036123f2576123db83878b61370b565b506123e589612ec0565b600194505050505061240e565b805160405163170cc93360e21b81526108929190600401614e78565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561247a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124a19190810190615607565b91509150806124c357604051636b2f19e960e01b815260040160405180910390fd5b8151156124e9578151604051636ba589a560e01b81526004810191909152602401610892565b60208201516001600160a01b031615612525576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5092915050565b5f806125366127f4565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156125a0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125c79190810190615607565b91509150806125e957604051636b2f19e960e01b815260040160405180910390fd5b5f6125f26127f4565b6005810154845191925014612620578251604051636ba589a560e01b81526004810191909152602401610892565b60208301516001600160a01b03161561265c576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b60208301516001600160a01b031615612698576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016126d59190614fb2565b6040805180830381865af41580156126ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127139190615697565b9150915081881461273a5760405163089938b360e11b815260048101899052602401610892565b5f8881526006840160205260409020600101546001600160401b0390811690821611156127cb575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a26127e9565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806128226127f4565b90505f61282e876138f9565b90506128398761252c565b6128485760019250505061240e565b5f8781526006830160205260409020546001600160a01b0316331461286d5733611780565b5f87815260068301602052604090205460a082015161289c91600160b01b90046001600160401b031690615259565b6001600160401b03168160c001516001600160401b031610156128e35760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610892565b5f86156128fb576128f48887612555565b9050612919565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f9061293e906114b0565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa1580156129a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129cb9190614fc4565b90506001600160a01b0386166129f7575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612a169084906156ba565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615af5833981519152805460011901612a8657604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612a95614a4f565b5f80516020615ab58339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612ac888612416565b604001516040518263ffffffff1660e01b8152600401612ae89190614fb2565b6040805180830381865af4158015612b02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b26919061552b565b915091508015612b4d57604051632d07135360e01b81528115156004820152602401610892565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612b8457612b84614ce6565b6005811115612b9557612b95614ce6565b8152602001600182018054612ba990614e46565b80601f0160208091040260200160405190810160405280929190818152602001828054612bd590614e46565b8015612c205780601f10612bf757610100808354040283529160200191612c20565b820191905f5260205f20905b815481529060010190602001808311612c0357829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612c8b57612c8b614ce6565b14158015612cac5750600181516005811115612ca957612ca9614ce6565b14155b15612ccd57805160405163170cc93360e21b81526108929190600401614e78565b600381516005811115612ce257612ce2614ce6565b03612cf05760048152612cf5565b600581525b836006018160200151604051612d0b9190615135565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612d4e57612d4e614ce6565b021790555060208201516001820190612d67908261518a565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612e0d57612e0d614ce6565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612e4d6127f4565b5f838152600a82016020526040812080549190559091506109958482613bde565b61171e6001600160a01b03831682613c3c565b60015f80516020615af583398151915255565b612ea084848484612818565b61099557604051635bff683f60e11b815260048101859052602401610892565b5f612ec96127f4565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f0257612f02614ce6565b6003811115612f1357612f13614ce6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fb07fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fbf9190615259565b6001600160401b0316421015612ff35760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b03168061304e575060208201515b5f8061305b838886613ccf565b9150915061307485602001516111b887606001516114b0565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130c46127f4565b600281015490915061ffff600160401b909104811690861610806130ed575061271061ffff8616115b1561311157604051635f12e6c360e11b815261ffff86166004820152602401610892565b60028101546001600160401b03908116908516101561314d576040516202a06d60e11b81526001600160401b0385166004820152602401610892565b805483108061315f5750806001015483115b156131805760405163222d164360e21b815260048101849052602401610892565b825f61318b82611097565b90505f6131988983613d7c565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f806132396127f4565b90505f61324584611097565b90505f61325187611e63565b905061325c8761252c565b61327c576040516330efa98b60e01b815260048101889052602401610892565b60028151600581111561329157613291614ce6565b146132b257805160405163170cc93360e21b81526108929190600401614e78565b5f8282608001516132c39190615259565b905083600201600a9054906101000a90046001600160401b031682604001516132ec91906152bc565b6001600160401b0316816001600160401b0316111561332957604051636d51fe0560e11b81526001600160401b0382166004820152602401610892565b5f806133358a84613534565b915091505f8a8360405160200161336392919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166134b857604051631afcd79f60e31b815260040160405180910390fd5b565b6134c261346f565b6134cb816142ca565b6134d36142e3565b6111d9606082013560808301356134f060c0850160a08601614c2b565b61350060e0860160c087016156cd565b613511610100870160e088016156e6565b61010087013561352961014089016101208a01614fdb565b8861014001356142f3565b5f8281525f80516020615ad5833981519152602052604081206002015481905f80516020615ab583398151915290600160801b90046001600160401b031661357c85826144d8565b5f61358687614742565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561362f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526136569190810190614f81565b6040518263ffffffff1660e01b81526004016136729190614fb2565b6020604051808303815f875af115801561368e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b29190614fc4565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f806137156127f4565b90505f6137258660400151611e63565b90505f60038251600581111561373d5761373d614ce6565b148061375b575060048251600581111561375957613759614ce6565b145b1561376b575060c08101516137a8565b60028251600581111561378057613780614ce6565b0361378c5750426137a8565b815160405163170cc93360e21b81526108929190600401614e78565b86608001516001600160401b0316816001600160401b0316116137d0575f9350505050611a96565b600483015460608801515f916001600160a01b031690634f22429f906137f5906114b0565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa158015613876573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061389a9190614fc4565b90506001600160a01b0387166138b257876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b613901614a4f565b5f8281525f80516020615ad58339815191526020526040808220815160e0810190925280545f80516020615ab583398151915293929190829060ff16600581111561394e5761394e614ce6565b600581111561395f5761395f614ce6565b815260200160018201805461397390614e46565b80601f016020809104026020016040519081016040528092919081815260200182805461399f90614e46565b80156139ea5780601f106139c1576101008083540402835291602001916139ea565b820191905f5260205f20905b8154815290600101906020018083116139cd57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115613a5857613a58614ce6565b14613a8b575f8481526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614e78565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115613ad057613ad0614ce6565b021790555060208201516001820190613ae9908261518a565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f613b878582613534565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613c2a575f80fd5b505af115801561130c573d5f803e3d5ffd5b80471015613c5f5760405163cd78605960e01b8152306004820152602401610892565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613ca8576040519150601f19603f3d011682016040523d82523d5f602084013e613cad565b606091505b505090508061070657604051630a12f52160e11b815260040160405180910390fd5b5f805f613cda6127f4565b5f86815260088201602052604081208054908290559192509081908015613d6e575f87815260068501602052604090205461271090613d2490600160a01b900461ffff1683615514565b613d2e91906154a6565b91508184600a015f8981526020019081526020015f205f828254613d5291906156ba565b90915550613d6290508282615706565b9250613d6e8984613bde565b509097909650945050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613dc057604051637fab81e560e01b815260040160405180910390fd5b5f80516020615ab583398151915242613ddf6060860160408701614c2b565b6001600160401b0316111580613e195750613dfd6202a300426156ba565b613e0d6060860160408701614c2b565b6001600160401b031610155b15613e5357613e2e6060850160408601614c2b565b604051635879da1360e11b81526001600160401b039091166004820152602401610892565b60038101546001600160401b0390613e7690600160401b900482168583166156ba565b1115613ea057604051633e1a785160e01b81526001600160401b0384166004820152602401610892565b613eb5613eb06060860186615719565b6147b7565b613ec5613eb06080860186615719565b6030613ed4602086018661572d565b905014613f0657613ee8602085018561572d565b6040516326475b2f60e11b8152610892925060040190815260200190565b613f10848061572d565b90505f03613f3d57613f22848061572d565b604051633e08a12560e11b815260040161089292919061576f565b5f60068201613f4c868061572d565b604051613f5a9291906155d8565b90815260200160405180910390205414613f9357613f78848061572d565b60405163a41f772f60e01b815260040161089292919061576f565b613f9d835f6144d8565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613fda8a8061572d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190614022908b018b61572d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509082525060200161406b60608b0160408c01614c2b565b6001600160401b0316815260200161408660608b018b615719565b61408f90615782565b81526020016140a160808b018b615719565b6140aa90615782565b8152602001886001600160401b03168152506040518263ffffffff1660e01b81526004016140d891906158af565b5f60405180830381865af41580156140f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141199190810190615966565b5f82815260048601602052604090209193509150614137828261518a565b508160068401614147888061572d565b6040516141559291906155d8565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90614191908590600401614fb2565b6020604051808303815f875af11580156141ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141d19190614fc4565b5f8481526005860160205260409020805460ff1916600117905590506141f7878061572d565b5f8581526005870160205260409020600101916142159190836159a9565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580837fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6886142978b8061572d565b6142a760608e0160408f01614c2b565b6040516142b79493929190615a62565b60405180910390a3509095945050505050565b6142d261346f565b6142da614920565b6111d981614928565b6142eb61346f565b6134b8614a10565b6142fb61346f565b5f6143046127f4565b905061ffff8616158061431c575061271061ffff8716115b1561434057604051635f12e6c360e11b815261ffff87166004820152602401610892565b878911156143645760405163222d164360e21b8152600481018a9052602401610892565b60ff851615806143775750600a60ff8616115b1561439a5760405163170db35960e31b815260ff86166004820152602401610892565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b03161015614401576040516202a06d60e11b81526001600160401b0388166004820152602401610892565b835f036144215760405163a733007160e01b815260040160405180910390fd5b8161444257604051632f6bd1db60e01b815260048101839052602401610892565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f80516020615ab58339815191525f6001600160401b03808416908516111561450c5761450583856155e7565b9050614519565b61451684846155e7565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b9004909216606082015242911580614586575060018401548151614582916001600160401b0316906156ba565b8210155b156145ae576001600160401b03808416606083015282825260408201511660208201526145cd565b82816060018181516145c09190615259565b6001600160401b03169052505b60608101516145dd9060646152bc565b602082015160018601546001600160401b0392909216916146089190600160401b900460ff166152bc565b6001600160401b0316101561464157606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610892565b85816040018181516146539190615259565b6001600160401b03169052506040810180518691906146739083906155e7565b6001600160401b0316905250600184015460408201516064916146a191600160401b90910460ff16906152bc565b6001600160401b031610156146da576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610892565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615ad58339815191526020526040812060020180545f80516020615ab5833981519152919060089061478c90600160401b90046001600160401b0316615a99565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b6147c46020820182614bfe565b63ffffffff161580156147e457506147df6020820182614ff6565b151590505b1561482b576147f66020820182614bfe565b6148036020830183614ff6565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610892565b6148386020820182614ff6565b90506148476020830183614bfe565b63ffffffff161115614860576147f66020820182614bfe565b60015b6148706020830183614ff6565b905081101561171e576148866020830183614ff6565b614891600184615706565b8181106148a0576148a061503b565b90506020020160208101906148b59190614fdb565b6001600160a01b03166148cb6020840184614ff6565b838181106148db576148db61503b565b90506020020160208101906148f09190614fdb565b6001600160a01b0316101561491857604051630dbc8d5f60e31b815260040160405180910390fd5b600101614863565b6134b861346f565b61493061346f565b80355f80516020615ab5833981519152908155601461495560608401604085016156e6565b60ff161180614974575061496f60608301604084016156e6565b60ff16155b156149a85761498960608301604084016156e6565b604051634a59bbff60e11b815260ff9091166004820152602401610892565b6149b860608301604084016156e6565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556149e96040830160208401614c2b565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612e8161346f565b508054614a2490614e46565b5f825580601f10614a33575050565b601f0160209004905f5260205f20908101906111d99190614a8c565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614aa0575f8155600101614a8d565b5090565b80151581146111d9575f80fd5b803563ffffffff81168114611e5e575f80fd5b5f805f60608486031215614ad6575f80fd5b833592506020840135614ae881614aa4565b9150614af660408501614ab1565b90509250925092565b5f60208284031215614b0f575f80fd5b5035919050565b5f6101608284031215614b27575f80fd5b50919050565b5f8060408385031215614b3e575f80fd5b82356001600160401b03811115614b53575f80fd5b830160808186031215614b64575f80fd5b9150614b7260208401614ab1565b90509250929050565b5f8060408385031215614b8c575f80fd5b82359150614b7260208401614ab1565b6001600160a01b03811681146111d9575f80fd5b5f805f8060808587031215614bc3575f80fd5b843593506020850135614bd581614aa4565b9250614be360408601614ab1565b91506060850135614bf381614b9c565b939692955090935050565b5f60208284031215614c0e575f80fd5b611a9682614ab1565b6001600160401b03811681146111d9575f80fd5b5f60208284031215614c3b575f80fd5b8135611a9681614c17565b5f8060408385031215614c57575f80fd5b823591506020830135614c6981614b9c565b809150509250929050565b803561ffff81168114611e5e575f80fd5b5f805f60608486031215614c97575f80fd5b83356001600160401b03811115614cac575f80fd5b840160a08187031215614cbd575f80fd5b9250614ccb60208501614c74565b91506040840135614cdb81614c17565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614d0a57614d0a614ce6565b9052565b5f5b83811015614d28578181015183820152602001614d10565b50505f910152565b5f8151808452614d47816020860160208601614d0e565b601f01601f19169290920160200192915050565b60208152614d6d602082018351614cfa565b5f602083015160e06040840152614d88610100840182614d30565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215614dec575f80fd5b82356001600160401b0380821115614e02575f80fd5b818501915085601f830112614e15575f80fd5b813581811115614e23575f80fd5b866020828501011115614e34575f80fd5b60209290920196919550909350505050565b600181811c90821680614e5a57607f821691505b602082108103614b2757634e487b7160e01b5f52602260045260245ffd5b602081016110e58284614cfa565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614ebc57614ebc614e86565b60405290565b604080519081016001600160401b0381118282101715614ebc57614ebc614e86565b604051601f8201601f191681016001600160401b0381118282101715614f0c57614f0c614e86565b604052919050565b5f6001600160401b03821115614f2c57614f2c614e86565b50601f01601f191660200190565b5f82601f830112614f49575f80fd5b8151614f5c614f5782614f14565b614ee4565b818152846020838601011115614f70575f80fd5b61240e826020830160208701614d0e565b5f60208284031215614f91575f80fd5b81516001600160401b03811115614fa6575f80fd5b61240e84828501614f3a565b602081525f611a966020830184614d30565b5f60208284031215614fd4575f80fd5b5051919050565b5f60208284031215614feb575f80fd5b8135611a9681614b9c565b5f808335601e1984360301811261500b575f80fd5b8301803591506001600160401b03821115615024575f80fd5b6020019150600581901b3603821315613704575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615063575f80fd5b9190910192915050565b5f82601f83011261507c575f80fd5b813561508a614f5782614f14565b81815284602083860101111561509e575f80fd5b816020850160208301375f918101602001919091529392505050565b5f606082360312156150ca575f80fd5b6150d2614e9a565b82356001600160401b03808211156150e8575f80fd5b6150f43683870161506d565b83526020850135915080821115615109575f80fd5b506151163682860161506d565b602083015250604083013561512a81614c17565b604082015292915050565b5f8251615063818460208701614d0e565b601f82111561070657805f5260205f20601f840160051c8101602085101561516b5750805b601f840160051c820191505b818110156110f7575f8155600101615177565b81516001600160401b038111156151a3576151a3614e86565b6151b7816151b18454614e46565b84615146565b602080601f8311600181146151ea575f84156151d35750858301515b5f19600386901b1c1916600185901b17855561130c565b5f85815260208120601f198616915b82811015615218578886015182559484019460019091019084016151f9565b508582101561523557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561252557612525615245565b6001600160401b0383168152604060208201525f61240e6040830184614d30565b5f63ffffffff8083168181036152b2576152b2615245565b6001019392505050565b6001600160401b038181168382160280821691908281146152df576152df615245565b505092915050565b5f808335601e198436030181126152fc575f80fd5b83016020810192503590506001600160401b0381111561531a575f80fd5b803603821315613704575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561540557848303601f19018952813536889003605e1901811261538c575f80fd5b8701606061539a82806152e7565b8287526153aa8388018284615328565b925050506153ba868301836152e7565b868303888801526153cc838284615328565b9250505060408083013592506153e183614c17565b6001600160401b039290921694909101939093529783019790830190600101615367565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561543681614b9c565b6001600160a01b031660608381019190915283013536849003601e1901811261545d575f80fd5b83016020810190356001600160401b03811115615478575f80fd5b8060051b3603821315615489575f80fd5b60808085015261549d60a085018284615350565b95945050505050565b5f826154c057634e487b7160e01b5f52601260045260245ffd5b500490565b60208101600483106154d9576154d9614ce6565b91905290565b5f805f606084860312156154f1575f80fd5b83519250602084015161550381614c17565b6040850151909250614cdb81614c17565b80820281158282048414176110e5576110e5615245565b5f806040838503121561553c575f80fd5b825191506020830151614c6981614aa4565b5f60208083525f845461556081614e46565b806020870152604060018084165f8114615581576001811461559d576155ca565b60ff19851660408a0152604084151560051b8a010195506155ca565b895f5260205f205f5b858110156155c15781548b82018601529083019088016155a6565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561252557612525615245565b5f8060408385031215615618575f80fd5b82516001600160401b038082111561562e575f80fd5b9084019060608287031215615641575f80fd5b615649614e9a565b82518152602083015161565b81614b9c565b6020820152604083015182811115615671575f80fd5b61567d88828601614f3a565b6040830152508094505050506020830151614c6981614aa4565b5f80604083850312156156a8575f80fd5b825191506020830151614c6981614c17565b808201808211156110e5576110e5615245565b5f602082840312156156dd575f80fd5b611a9682614c74565b5f602082840312156156f6575f80fd5b813560ff81168114611a96575f80fd5b818103818111156110e5576110e5615245565b5f8235603e19833603018112615063575f80fd5b5f808335601e19843603018112615742575f80fd5b8301803591506001600160401b0382111561575b575f80fd5b602001915036819003821315613704575f80fd5b602081525f61240e602083018486615328565b5f60408236031215615792575f80fd5b61579a614ec2565b6157a383614ab1565b81526020808401356001600160401b03808211156157bf575f80fd5b9085019036601f8301126157d1575f80fd5b8135818111156157e3576157e3614e86565b8060051b91506157f4848301614ee4565b818152918301840191848101903684111561580d575f80fd5b938501935b83851015615837578435925061582783614b9c565b8282529385019390850190615812565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158a45784516001600160a01b0316825293830193600192909201919083019061587b565b509695505050505050565b60208152815160208201525f602083015160e060408401526158d5610100840182614d30565b90506040840151601f19808584030160608601526158f38383614d30565b92506001600160401b03606087015116608086015260808601519150808584030160a08601526159238383615849565b925060a08601519150808584030160c0860152506159418282615849565b91505060c084015161595e60e08501826001600160401b03169052565b509392505050565b5f8060408385031215615977575f80fd5b8251915060208301516001600160401b03811115615993575f80fd5b61599f85828601614f3a565b9150509250929050565b6001600160401b038311156159c0576159c0614e86565b6159d4836159ce8354614e46565b83615146565b5f601f841160018114615a05575f85156159ee5750838201355b5f19600387901b1c1916600186901b1783556110f7565b5f83815260208120601f198716915b82811015615a345786850135825560209485019460019092019101615a14565b5086821015615a50575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b03808716835260606020840152615a85606084018688615328565b915080841660408401525095945050505050565b5f6001600160401b038083168181036152b2576152b261524556fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220f406748c3ac647a2e55b386a9643e0b935e8ec0642a9215ef35ffdda6141a27d64736f6c63430008190033", } // NativeTokenStakingManagerABI is the input ABI used to generate the binding from. @@ -1334,8 +1334,8 @@ type NativeTokenStakingManagerDelegationEnded struct { // FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (*NativeTokenStakingManagerDelegationEndedIterator, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1345,12 +1345,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDeleg for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1359,8 +1355,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDeleg // WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (event.Subscription, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1370,12 +1366,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1409,7 +1401,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega // ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) +// 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 { @@ -1662,8 +1654,8 @@ type NativeTokenStakingManagerDelegatorRegistered struct { // FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (*NativeTokenStakingManagerDelegatorRegisteredIterator, error) { +// 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 { @@ -1673,12 +1665,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDeleg for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1687,8 +1675,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterDeleg // WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (event.Subscription, error) { +// 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 { @@ -1698,12 +1686,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1737,7 +1721,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchDelega // ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) +// 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 { @@ -1977,19 +1961,15 @@ type NativeTokenStakingManagerInitialValidatorCreated struct { // FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64) (*NativeTokenStakingManagerInitialValidatorCreatedIterator, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerInitialValidatorCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -1998,19 +1978,15 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterIniti // WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialValidatorCreated, validationID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialValidatorCreated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -2044,7 +2020,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitia // ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*NativeTokenStakingManagerInitialValidatorCreated, error) { event := new(NativeTokenStakingManagerInitialValidatorCreated) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { @@ -2264,19 +2240,15 @@ type NativeTokenStakingManagerUptimeUpdated struct { // FilterUptimeUpdated is a free log retrieval operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte, uptime []uint64) (*NativeTokenStakingManagerUptimeUpdatedIterator, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerUptimeUpdatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -2285,19 +2257,15 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterUptim // WatchUptimeUpdated is a free log subscription operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerUptimeUpdated, validationID [][32]byte, uptime []uint64) (event.Subscription, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerUptimeUpdated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -2331,7 +2299,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchUptime // ParseUptimeUpdated is a log parse operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseUptimeUpdated(log types.Log) (*NativeTokenStakingManagerUptimeUpdated, error) { event := new(NativeTokenStakingManagerUptimeUpdated) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "UptimeUpdated", log); err != nil { @@ -2420,8 +2388,8 @@ type NativeTokenStakingManagerValidationPeriodCreated struct { // FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (*NativeTokenStakingManagerValidationPeriodCreatedIterator, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte) (*NativeTokenStakingManagerValidationPeriodCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2431,12 +2399,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2445,8 +2409,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid // WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2456,12 +2420,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2495,7 +2455,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida // ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*NativeTokenStakingManagerValidationPeriodCreated, error) { event := new(NativeTokenStakingManagerValidationPeriodCreated) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { @@ -2735,23 +2695,15 @@ type NativeTokenStakingManagerValidationPeriodRegistered struct { // FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (*NativeTokenStakingManagerValidationPeriodRegisteredIterator, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*NativeTokenStakingManagerValidationPeriodRegisteredIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -2760,23 +2712,15 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid // WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodRegistered, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (event.Subscription, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -2810,7 +2754,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida // ParseValidationPeriodRegistered is a log parse operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*NativeTokenStakingManagerValidationPeriodRegistered, error) { event := new(NativeTokenStakingManagerValidationPeriodRegistered) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { @@ -2898,8 +2842,8 @@ type NativeTokenStakingManagerValidatorRemovalInitialized struct { // FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (*NativeTokenStakingManagerValidatorRemovalInitializedIterator, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*NativeTokenStakingManagerValidatorRemovalInitializedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2909,12 +2853,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -2923,8 +2863,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid // WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2934,12 +2874,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -2973,7 +2909,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida // ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*NativeTokenStakingManagerValidatorRemovalInitialized, error) { event := new(NativeTokenStakingManagerValidatorRemovalInitialized) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { @@ -3061,8 +2997,8 @@ type NativeTokenStakingManagerValidatorWeightUpdate struct { // FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64, weight []uint64) (*NativeTokenStakingManagerValidatorWeightUpdateIterator, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*NativeTokenStakingManagerValidatorWeightUpdateIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -3072,12 +3008,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -3086,8 +3018,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValid // WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -3097,12 +3029,8 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -3136,7 +3064,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida // ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*NativeTokenStakingManagerValidatorWeightUpdate, error) { event := new(NativeTokenStakingManagerValidatorWeightUpdate) if err := _NativeTokenStakingManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { @@ -3149,7 +3077,7 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) ParseValida // ValidatorMessagesMetaData contains all meta data concerning the ValidatorMessages contract. var ValidatorMessagesMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidBLSPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"}],\"name\":\"InvalidCodecID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"actual\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"expected\",\"type\":\"uint32\"}],\"name\":\"InvalidMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMessageType\",\"type\":\"error\"},{\"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\"}],\"name\":\"packConversionData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"packL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"packL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"validationPeriod\",\"type\":\"tuple\"}],\"name\":\"packRegisterL1ValidatorMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"conversionID\",\"type\":\"bytes32\"}],\"name\":\"packSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"packValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackRegisterL1ValidatorMessage\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea2646970667358221220638384be794ac0a88b7c4b85254e350d323a52416ec42695ed945633f232052964736f6c63430008190033", + Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212207a0b6ee4bb75144dd6b8635b3883de8d9364507951a0e3d076ca36181dac9a1764736f6c63430008190033", } // ValidatorMessagesABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go index f51380553..202bbb8c5 100644 --- a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go +++ b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go @@ -90,8 +90,8 @@ type ValidatorRegistrationInput struct { // 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\":\"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\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b506040516137c33803806137c383398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6136768061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063a3a65e48116100a9578063d588c18f1161006e578063d588c18f14610279578063d5f20ff61461028c578063df93d8de146102ac578063f2fde38b146102ce578063fd7ac5e7146102e1575f80fd5b8063a3a65e4814610229578063b771b3bc1461023c578063bc5fbfec1461024a578063bee0a03f1461025e578063c974d1b614610271575f80fd5b8063732214f8116100ef578063732214f8146101905780638280a25a146101a55780638da5cb5b146101bf57806397fb70d4146102035780639ba96b8614610216575f80fd5b80630322ed981461012b57806320d91b7a14610140578063467ef06f1461015357806360305d6214610166578063715018a614610188575b5f80fd5b61013e610139366004612799565b6102f4565b005b61013e61014e3660046127c8565b610584565b61013e610161366004612816565b610b30565b61016e601481565b60405163ffffffff90911681526020015b60405180910390f35b61013e610b3e565b6101975f81565b60405190815260200161017f565b6101ad603081565b60405160ff909116815260200161017f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b61013e610211366004612799565b610b51565b610197610224366004612845565b610b66565b61013e610237366004612816565b610b82565b6101eb6005600160991b0181565b6101975f8051602061360183398151915281565b61013e61026c366004612799565b610d6a565b6101ad601481565b61013e61028736600461289e565b610ea6565b61029f61029a366004612799565b610fb4565b60405161017f919061295b565b6102b66202a30081565b6040516001600160401b03909116815260200161017f565b61013e6102dc3660046129db565b611103565b6101976102ef3660046129fd565b611140565b5f8181525f805160206136218339815191526020526040808220815160e0810190925280545f8051602061360183398151915293929190829060ff166005811115610341576103416128da565b6005811115610352576103526128da565b815260200160018201805461036690612a68565b80601f016020809104026020016040519081016040528092919081815260200182805461039290612a68565b80156103dd5780601f106103b4576101008083540402835291602001916103dd565b820191905f5260205f20905b8154815290600101906020018083116103c057829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115610448576104486128da565b14610484575f8381526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa0565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156104fb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105229190810190612bb1565b6040518263ffffffff1660e01b815260040161053e9190612be2565b6020604051808303815f875af115801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e9190612bf4565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136018339815191529060ff16156105d657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610619573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063d9190612bf4565b836020013514610666576040516372b0a7e760e11b81526020840135600482015260240161047b565b3061067760608501604086016129db565b6001600160a01b0316146106ba5761069560608401604085016129db565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161047b565b5f6106c86060850185612c0b565b905090505f805b828163ffffffff161015610921575f6106eb6060880188612c0b565b8363ffffffff1681811061070157610701612c50565b90506020028101906107139190612c64565b61071c90612ccf565b80516040519192505f91600688019161073491612d48565b9081526020016040518091039020541461076457805160405163a41f772f60e01b815261047b9190600401612be2565b5f6002885f01358460405160200161079392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152908290526107ad91612d48565b602060405180830381855afa1580156107c8573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906107eb9190612bf4565b90508086600601835f01516040516108039190612d48565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108439082612da4565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff191690556108c39085612e77565b935081604001516001600160401b0316817fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff845f01516040516109069190612be2565b60405180910390a350508061091a90612e97565b90506106cf565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384168102919091179091556001840154606491610969910460ff1683612eb9565b6001600160401b0316101561099c57604051633e1a785160e01b81526001600160401b038216600482015260240161047b565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846109c08761119b565b604001516040518263ffffffff1660e01b81526004016109e09190612be2565b602060405180830381865af41580156109fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612bf4565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610a599190613007565b5f60405180830381865af4158015610a73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a9a9190810190612bb1565b90505f600282604051610aad9190612d48565b602060405180830381855afa158015610ac8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610aeb9190612bf4565b9050828114610b175760405163baaea89d60e01b8152600481018290526024810184905260440161047b565b5050506007909201805460ff1916600117905550505050565b610b39816112b1565b505050565b610b46611669565b610b4f5f6116c4565b565b610b59611669565b610b6281611734565b5050565b5f610b6f611669565b610b798383611a16565b90505b92915050565b5f805160206136018339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610bb58661119b565b604001516040518263ffffffff1660e01b8152600401610bd59190612be2565b6040805180830381865af4158015610bef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1391906130aa565b9150915080610c3957604051632d07135360e01b8152811515600482015260240161047b565b5f82815260048401602052604090208054610c5390612a68565b90505f03610c775760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580860160205260409091205460ff1690811115610c9e57610c9e6128da565b14610cd1575f8281526005840160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa0565b5f8281526004840160205260408120610ce99161270d565b5f828152600584016020526040808220805460ff1916600290811782550180546001600160c01b0316600160c01b426001600160401b0381811692909202929092179283905592519093600160801b9092049092169185917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b91a450505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136018339815191529190610db190612a68565b90505f03610dd55760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580840160205260409091205460ff1690811115610dfc57610dfc6128da565b14610e2f575f8281526005820160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa0565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610e6692016130cb565b6020604051808303815f875af1158015610e82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b399190612bf4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610eea5750825b90505f826001600160401b03166001148015610f055750303b155b905081158015610f13575080155b15610f315760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f5b57845460ff60401b1916600160401b1785555b610f658787611f63565b8315610fab57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610fbc612744565b5f8281525f80516020613621833981519152602052604090819020815160e0810190925280545f80516020613601833981519152929190829060ff166005811115611009576110096128da565b600581111561101a5761101a6128da565b815260200160018201805461102e90612a68565b80601f016020809104026020016040519081016040528092919081815260200182805461105a90612a68565b80156110a55780601f1061107c576101008083540402835291602001916110a5565b820191905f5260205f20905b81548152906001019060200180831161108857829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b61110b611669565b6001600160a01b03811661113457604051631e4fbdf760e01b81525f600482015260240161047b565b61113d816116c4565b50565b6040515f905f80516020613601833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906111839086908690613155565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156111ff573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112269190810190613164565b915091508061124857604051636b2f19e960e01b815260040160405180910390fd5b81511561126e578151604051636ba589a560e01b8152600481019190915260240161047b565b60208201516001600160a01b0316156112aa576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161047b565b5092915050565b5f6112ba612744565b5f805160206136018339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6112ed8861119b565b604001516040518263ffffffff1660e01b815260040161130d9190612be2565b6040805180830381865af4158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b91906130aa565b91509150801561137257604051632d07135360e01b8152811515600482015260240161047b565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156113a9576113a96128da565b60058111156113ba576113ba6128da565b81526020016001820180546113ce90612a68565b80601f01602080910402602001604051908101604052809291908181526020018280546113fa90612a68565b80156114455780601f1061141c57610100808354040283529160200191611445565b820191905f5260205f20905b81548152906001019060200180831161142857829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156114b0576114b06128da565b141580156114d157506001815160058111156114ce576114ce6128da565b14155b156114f257805160405163170cc93360e21b815261047b9190600401612aa0565b600381516005811115611507576115076128da565b03611515576004815261151a565b600581525b8360060181602001516040516115309190612d48565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115611573576115736128da565b02179055506020820151600182019061158c9082612da4565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115611632576116326128da565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b3361169b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b4f5760405163118cdaa760e01b815233600482015260240161047b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b61173c612744565b5f8281525f805160206136218339815191526020526040808220815160e0810190925280545f8051602061360183398151915293929190829060ff166005811115611789576117896128da565b600581111561179a5761179a6128da565b81526020016001820180546117ae90612a68565b80601f01602080910402602001604051908101604052809291908181526020018280546117da90612a68565b80156118255780601f106117fc57610100808354040283529160200191611825565b820191905f5260205f20905b81548152906001019060200180831161180857829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115611893576118936128da565b146118c6575f8481526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa0565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff191690600190849081111561190b5761190b6128da565b0217905550602082015160018201906119249082612da4565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6119c28582611f7d565b91505081608001516001600160401b031681867ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa4242604051611a0691815260200190565b60405180910390a4509392505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611a5a57604051637fab81e560e01b815260040160405180910390fd5b5f8051602061360183398151915242611a7960608601604087016131f1565b6001600160401b0316111580611ab35750611a976202a3004261320a565b611aa760608601604087016131f1565b6001600160401b031610155b15611aed57611ac860608501604086016131f1565b604051635879da1360e11b81526001600160401b03909116600482015260240161047b565b60038101546001600160401b0390611b1090600160401b9004821685831661320a565b1115611b3a57604051633e1a785160e01b81526001600160401b038416600482015260240161047b565b611b4f611b4a606086018661321d565b61215a565b611b5f611b4a608086018661321d565b6030611b6e6020860186613231565b905014611ba057611b826020850185613231565b6040516326475b2f60e11b815261047b925060040190815260200190565b611baa8480613231565b90505f03611bd757611bbc8480613231565b604051633e08a12560e11b815260040161047b929190613273565b5f60068201611be68680613231565b604051611bf4929190613155565b90815260200160405180910390205414611c2d57611c128480613231565b60405163a41f772f60e01b815260040161047b929190613273565b611c37835f6122c3565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101611c748a80613231565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190611cbc908b018b613231565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001611d0560608b0160408c016131f1565b6001600160401b03168152602001611d2060608b018b61321d565b611d2990613286565b8152602001611d3b60808b018b61321d565b611d4490613286565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611d7291906133b3565b5f60405180830381865af4158015611d8c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611db3919081019061346a565b5f82815260048601602052604090209193509150611dd18282612da4565b508160068401611de18880613231565b604051611def929190613155565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611e2b908590600401612be2565b6020604051808303815f875af1158015611e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612bf4565b5f8481526005860160205260409020805460ff191660011790559050611e918780613231565b5f858152600587016020526040902060010191611eaf9190836134ad565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b8202176001600160c01b03169091556003909101805467ffffffffffffffff1916905581847fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6611f318b80613231565b611f4160608e0160408f016131f1565b604051611f5093929190613566565b60405180910390a4509095945050505050565b611f6b61252d565b611f7482612576565b610b628161258f565b5f8281525f80516020613621833981519152602052604081206002015481905f8051602061360183398151915290600160801b90046001600160401b0316611fc585826122c3565b5f611fcf876125a0565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015612078573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261209f9190810190612bb1565b6040518263ffffffff1660e01b81526004016120bb9190612be2565b6020604051808303815f875af11580156120d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fb9190612bf4565b9050866001600160401b0316826001600160401b0316897f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df8460405161214391815260200190565b60405180910390a4909450925050505b9250929050565b6121676020820182612816565b63ffffffff1615801561218757506121826020820182612c0b565b151590505b156121ce576121996020820182612816565b6121a66020830183612c0b565b60405163c08a0f1d60e01b815263ffffffff909316600484015260248301525060440161047b565b6121db6020820182612c0b565b90506121ea6020830183612816565b63ffffffff161115612203576121996020820182612816565b60015b6122136020830183612c0b565b9050811015610b62576122296020830183612c0b565b612234600184613592565b81811061224357612243612c50565b905060200201602081019061225891906129db565b6001600160a01b031661226e6020840184612c0b565b8381811061227e5761227e612c50565b905060200201602081019061229391906129db565b6001600160a01b031610156122bb57604051630dbc8d5f60e31b815260040160405180910390fd5b600101612206565b5f805160206136018339815191525f6001600160401b0380841690851611156122f7576122f083856135a5565b9050612304565b61230184846135a5565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b900490921660608201524291158061237157506001840154815161236d916001600160401b03169061320a565b8210155b15612399576001600160401b03808416606083015282825260408201511660208201526123b8565b82816060018181516123ab9190612e77565b6001600160401b03169052505b60608101516123c8906064612eb9565b602082015160018601546001600160401b0392909216916123f39190600160401b900460ff16612eb9565b6001600160401b0316101561242c57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161047b565b858160400181815161243e9190612e77565b6001600160401b031690525060408101805186919061245e9083906135a5565b6001600160401b03169052506001840154604082015160649161248c91600160401b90910460ff1690612eb9565b6001600160401b031610156124c5576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161047b565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b4f57604051631afcd79f60e31b815260040160405180910390fd5b61257e61252d565b612586612615565b61113d8161261d565b61259761252d565b61113d81612705565b5f8181525f805160206136218339815191526020526040812060020180545f8051602061360183398151915291906008906125ea90600160401b90046001600160401b03166135c5565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610b4f61252d565b61262561252d565b80355f80516020613601833981519152908155601461264a60608401604085016135e0565b60ff161180612669575061266460608301604084016135e0565b60ff16155b1561269d5761267e60608301604084016135e0565b604051634a59bbff60e11b815260ff909116600482015260240161047b565b6126ad60608301604084016135e0565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556126de60408301602084016131f1565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b61110b61252d565b50805461271990612a68565b5f825580601f10612728575050565b601f0160209004905f5260205f209081019061113d9190612781565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115612795575f8155600101612782565b5090565b5f602082840312156127a9575f80fd5b5035919050565b803563ffffffff811681146127c3575f80fd5b919050565b5f80604083850312156127d9575f80fd5b82356001600160401b038111156127ee575f80fd5b8301608081860312156127ff575f80fd5b915061280d602084016127b0565b90509250929050565b5f60208284031215612826575f80fd5b610b79826127b0565b80356001600160401b03811681146127c3575f80fd5b5f8060408385031215612856575f80fd5b82356001600160401b0381111561286b575f80fd5b830160a0818603121561287c575f80fd5b915061280d6020840161282f565b6001600160a01b038116811461113d575f80fd5b5f8082840360808112156128b0575f80fd5b60608112156128bd575f80fd5b5082915060608301356128cf8161288a565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061290a57634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b83811015612928578181015183820152602001612910565b50505f910152565b5f815180845261294781602086016020860161290e565b601f01601f19169290920160200192915050565b6020815261296d6020820183516128ee565b5f602083015160e06040840152612988610100840182612930565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f602082840312156129eb575f80fd5b81356129f68161288a565b9392505050565b5f8060208385031215612a0e575f80fd5b82356001600160401b0380821115612a24575f80fd5b818501915085601f830112612a37575f80fd5b813581811115612a45575f80fd5b866020828501011115612a56575f80fd5b60209290920196919550909350505050565b600181811c90821680612a7c57607f821691505b602082108103612a9a57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610b7c82846128ee565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612ae457612ae4612aae565b60405290565b604080519081016001600160401b0381118282101715612ae457612ae4612aae565b604051601f8201601f191681016001600160401b0381118282101715612b3457612b34612aae565b604052919050565b5f6001600160401b03821115612b5457612b54612aae565b50601f01601f191660200190565b5f82601f830112612b71575f80fd5b8151612b84612b7f82612b3c565b612b0c565b818152846020838601011115612b98575f80fd5b612ba982602083016020870161290e565b949350505050565b5f60208284031215612bc1575f80fd5b81516001600160401b03811115612bd6575f80fd5b612ba984828501612b62565b602081525f610b796020830184612930565b5f60208284031215612c04575f80fd5b5051919050565b5f808335601e19843603018112612c20575f80fd5b8301803591506001600160401b03821115612c39575f80fd5b6020019150600581901b3603821315612153575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612c78575f80fd5b9190910192915050565b5f82601f830112612c91575f80fd5b8135612c9f612b7f82612b3c565b818152846020838601011115612cb3575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612cdf575f80fd5b612ce7612ac2565b82356001600160401b0380821115612cfd575f80fd5b612d0936838701612c82565b83526020850135915080821115612d1e575f80fd5b50612d2b36828601612c82565b602083015250612d3d6040840161282f565b604082015292915050565b5f8251612c7881846020870161290e565b601f821115610b3957805f5260205f20601f840160051c81016020851015612d7e5750805b601f840160051c820191505b81811015612d9d575f8155600101612d8a565b5050505050565b81516001600160401b03811115612dbd57612dbd612aae565b612dd181612dcb8454612a68565b84612d59565b602080601f831160018114612e04575f8415612ded5750858301515b5f19600386901b1c1916600185901b178555612e5b565b5f85815260208120601f198616915b82811015612e3257888601518255948401946001909101908401612e13565b5085821015612e4f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156112aa576112aa612e63565b5f63ffffffff808316818103612eaf57612eaf612e63565b6001019392505050565b6001600160401b03818116838216028082169190828114612edc57612edc612e63565b505092915050565b5f808335601e19843603018112612ef9575f80fd5b83016020810192503590506001600160401b03811115612f17575f80fd5b803603821315612153575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b87811015612ffa57848303601f19018952813536889003605e19018112612f89575f80fd5b87016060612f978280612ee4565b828752612fa78388018284612f25565b92505050612fb786830183612ee4565b86830388880152612fc9838284612f25565b9250505060406001600160401b03612fe282850161282f565b16950194909452509783019790830190600101612f64565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561302b8161288a565b6001600160a01b031660608381019190915283013536849003601e19018112613052575f80fd5b83016020810190356001600160401b0381111561306d575f80fd5b8060051b360382131561307e575f80fd5b60808085015261309260a085018284612f4d565b95945050505050565b805180151581146127c3575f80fd5b5f80604083850312156130bb575f80fd5b8251915061280d6020840161309b565b5f60208083525f84546130dd81612a68565b806020870152604060018084165f81146130fe576001811461311a57613147565b60ff19851660408a0152604084151560051b8a01019550613147565b895f5260205f205f5b8581101561313e5781548b8201860152908301908801613123565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b5f8060408385031215613175575f80fd5b82516001600160401b038082111561318b575f80fd5b908401906060828703121561319e575f80fd5b6131a6612ac2565b8251815260208301516131b88161288a565b60208201526040830151828111156131ce575f80fd5b6131da88828601612b62565b604083015250935061280d9150506020840161309b565b5f60208284031215613201575f80fd5b610b798261282f565b80820180821115610b7c57610b7c612e63565b5f8235603e19833603018112612c78575f80fd5b5f808335601e19843603018112613246575f80fd5b8301803591506001600160401b0382111561325f575f80fd5b602001915036819003821315612153575f80fd5b602081525f612ba9602083018486612f25565b5f60408236031215613296575f80fd5b61329e612aea565b6132a7836127b0565b81526020808401356001600160401b03808211156132c3575f80fd5b9085019036601f8301126132d5575f80fd5b8135818111156132e7576132e7612aae565b8060051b91506132f8848301612b0c565b8181529183018401918481019036841115613311575f80fd5b938501935b8385101561333b578435925061332b8361288a565b8282529385019390850190613316565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156133a85784516001600160a01b0316825293830193600192909201919083019061337f565b509695505050505050565b60208152815160208201525f602083015160e060408401526133d9610100840182612930565b90506040840151601f19808584030160608601526133f78383612930565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152613427838361334d565b925060a08601519150808584030160c086015250613445828261334d565b91505060c084015161346260e08501826001600160401b03169052565b509392505050565b5f806040838503121561347b575f80fd5b8251915060208301516001600160401b03811115613497575f80fd5b6134a385828601612b62565b9150509250929050565b6001600160401b038311156134c4576134c4612aae565b6134d8836134d28354612a68565b83612d59565b5f601f841160018114613509575f85156134f25750838201355b5f19600387901b1c1916600186901b178355612d9d565b5f83815260208120601f198716915b828110156135385786850135825560209485019460019092019101613518565b5086821015613554575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081525f613579604083018587612f25565b90506001600160401b0383166020830152949350505050565b81810381811115610b7c57610b7c612e63565b6001600160401b038281168282160390808211156112aa576112aa612e63565b5f6001600160401b03808316818103612eaf57612eaf612e63565b5f602082840312156135f0575f80fd5b813560ff811681146129f6575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a2646970667358221220ab3f5f79e400b17b09213c250ad100df4433f6134009044ca0377bfe9bf379af64736f6c63430008190033", + 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\":\"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\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b506040516137f33803806137f383398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6136a68061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063a3a65e48116100a9578063d588c18f1161006e578063d588c18f14610279578063d5f20ff61461028c578063df93d8de146102ac578063f2fde38b146102ce578063fd7ac5e7146102e1575f80fd5b8063a3a65e4814610229578063b771b3bc1461023c578063bc5fbfec1461024a578063bee0a03f1461025e578063c974d1b614610271575f80fd5b8063732214f8116100ef578063732214f8146101905780638280a25a146101a55780638da5cb5b146101bf57806397fb70d4146102035780639ba96b8614610216575f80fd5b80630322ed981461012b57806320d91b7a14610140578063467ef06f1461015357806360305d6214610166578063715018a614610188575b5f80fd5b61013e61013936600461279d565b6102f4565b005b61013e61014e3660046127cc565b610584565b61013e61016136600461281a565b610b28565b61016e601481565b60405163ffffffff90911681526020015b60405180910390f35b61013e610b36565b6101975f81565b60405190815260200161017f565b6101ad603081565b60405160ff909116815260200161017f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b61013e61021136600461279d565b610b49565b610197610224366004612849565b610b5e565b61013e61023736600461281a565b610b7a565b6101eb6005600160991b0181565b6101975f8051602061363183398151915281565b61013e61026c36600461279d565b610d70565b6101ad601481565b61013e6102873660046128a2565b610eac565b61029f61029a36600461279d565b610fba565b60405161017f919061295f565b6102b66202a30081565b6040516001600160401b03909116815260200161017f565b61013e6102dc3660046129df565b611109565b6101976102ef366004612a01565b611146565b5f8181525f805160206136518339815191526020526040808220815160e0810190925280545f8051602061363183398151915293929190829060ff166005811115610341576103416128de565b6005811115610352576103526128de565b815260200160018201805461036690612a6c565b80601f016020809104026020016040519081016040528092919081815260200182805461039290612a6c565b80156103dd5780601f106103b4576101008083540402835291602001916103dd565b820191905f5260205f20905b8154815290600101906020018083116103c057829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115610448576104486128de565b14610484575f8381526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa4565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156104fb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105229190810190612bb5565b6040518263ffffffff1660e01b815260040161053e9190612be6565b6020604051808303815f875af115801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e9190612bf8565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136318339815191529060ff16156105d657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610619573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063d9190612bf8565b836020013514610666576040516372b0a7e760e11b81526020840135600482015260240161047b565b3061067760608501604086016129df565b6001600160a01b0316146106ba5761069560608401604085016129df565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161047b565b5f6106c86060850185612c0f565b905090505f805b828163ffffffff161015610919575f6106eb6060880188612c0f565b8363ffffffff1681811061070157610701612c54565b90506020028101906107139190612c68565b61071c90612cd3565b80516040519192505f91600688019161073491612d4c565b9081526020016040518091039020541461076457805160405163a41f772f60e01b815261047b9190600401612be6565b5f6002885f01358460405160200161079392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152908290526107ad91612d4c565b602060405180830381855afa1580156107c8573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906107eb9190612bf8565b90508086600601835f01516040516108039190612d4c565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108439082612da8565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff191690556108c39085612e7b565b9350807fd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff8360400151845f01516040516108fe929190612e9b565b60405180910390a250508061091290612ebc565b90506106cf565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384168102919091179091556001840154606491610961910460ff1683612ede565b6001600160401b0316101561099457604051633e1a785160e01b81526001600160401b038216600482015260240161047b565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846109b8876111a1565b604001516040518263ffffffff1660e01b81526004016109d89190612be6565b602060405180830381865af41580156109f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a179190612bf8565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610a51919061302c565b5f60405180830381865af4158015610a6b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a929190810190612bb5565b90505f600282604051610aa59190612d4c565b602060405180830381855afa158015610ac0573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ae39190612bf8565b9050828114610b0f5760405163baaea89d60e01b8152600481018290526024810184905260440161047b565b5050506007909201805460ff1916600117905550505050565b610b31816112b7565b505050565b610b3e61166f565b610b475f6116ca565b565b610b5161166f565b610b5a8161173a565b5050565b5f610b6761166f565b610b718383611a1f565b90505b92915050565b5f805160206136318339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610bad866111a1565b604001516040518263ffffffff1660e01b8152600401610bcd9190612be6565b6040805180830381865af4158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b91906130cf565b9150915080610c3157604051632d07135360e01b8152811515600482015260240161047b565b5f82815260048401602052604090208054610c4b90612a6c565b90505f03610c6f5760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580860160205260409091205460ff1690811115610c9657610c966128de565b14610cc9575f8281526005840160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa4565b5f8281526004840160205260408120610ce191612711565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136318339815191529190610db790612a6c565b90505f03610ddb5760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580840160205260409091205460ff1690811115610e0257610e026128de565b14610e35575f8281526005820160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa4565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610e6c92016130f0565b6020604051808303815f875af1158015610e88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b319190612bf8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610ef05750825b90505f826001600160401b03166001148015610f0b5750303b155b905081158015610f19575080155b15610f375760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f6157845460ff60401b1916600160401b1785555b610f6b8787611f6d565b8315610fb157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610fc2612748565b5f8281525f80516020613651833981519152602052604090819020815160e0810190925280545f80516020613631833981519152929190829060ff16600581111561100f5761100f6128de565b6005811115611020576110206128de565b815260200160018201805461103490612a6c565b80601f016020809104026020016040519081016040528092919081815260200182805461106090612a6c565b80156110ab5780601f10611082576101008083540402835291602001916110ab565b820191905f5260205f20905b81548152906001019060200180831161108e57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b61111161166f565b6001600160a01b03811661113a57604051631e4fbdf760e01b81525f600482015260240161047b565b611143816116ca565b50565b6040515f905f80516020613631833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611189908690869061317a565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015611205573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261122c9190810190613189565b915091508061124e57604051636b2f19e960e01b815260040160405180910390fd5b815115611274578151604051636ba589a560e01b8152600481019190915260240161047b565b60208201516001600160a01b0316156112b0576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161047b565b5092915050565b5f6112c0612748565b5f805160206136318339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6112f3886111a1565b604001516040518263ffffffff1660e01b81526004016113139190612be6565b6040805180830381865af415801561132d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135191906130cf565b91509150801561137857604051632d07135360e01b8152811515600482015260240161047b565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156113af576113af6128de565b60058111156113c0576113c06128de565b81526020016001820180546113d490612a6c565b80601f016020809104026020016040519081016040528092919081815260200182805461140090612a6c565b801561144b5780601f106114225761010080835404028352916020019161144b565b820191905f5260205f20905b81548152906001019060200180831161142e57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156114b6576114b66128de565b141580156114d757506001815160058111156114d4576114d46128de565b14155b156114f857805160405163170cc93360e21b815261047b9190600401612aa4565b60038151600581111561150d5761150d6128de565b0361151b5760048152611520565b600581525b8360060181602001516040516115369190612d4c565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115611579576115796128de565b0217905550602082015160018201906115929082612da8565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115611638576116386128de565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b336116a17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b475760405163118cdaa760e01b815233600482015260240161047b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611742612748565b5f8281525f805160206136518339815191526020526040808220815160e0810190925280545f8051602061363183398151915293929190829060ff16600581111561178f5761178f6128de565b60058111156117a0576117a06128de565b81526020016001820180546117b490612a6c565b80601f01602080910402602001604051908101604052809291908181526020018280546117e090612a6c565b801561182b5780601f106118025761010080835404028352916020019161182b565b820191905f5260205f20905b81548152906001019060200180831161180e57829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115611899576118996128de565b146118cc575f8481526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612aa4565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115611911576119116128de565b02179055506020820151600182019061192a9082612da8565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6119c88582611f87565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611a6357604051637fab81e560e01b815260040160405180910390fd5b5f8051602061363183398151915242611a826060860160408701613216565b6001600160401b0316111580611abc5750611aa06202a3004261322f565b611ab06060860160408701613216565b6001600160401b031610155b15611af657611ad16060850160408601613216565b604051635879da1360e11b81526001600160401b03909116600482015260240161047b565b60038101546001600160401b0390611b1990600160401b9004821685831661322f565b1115611b4357604051633e1a785160e01b81526001600160401b038416600482015260240161047b565b611b58611b536060860186613242565b61215e565b611b68611b536080860186613242565b6030611b776020860186613256565b905014611ba957611b8b6020850185613256565b6040516326475b2f60e11b815261047b925060040190815260200190565b611bb38480613256565b90505f03611be057611bc58480613256565b604051633e08a12560e11b815260040161047b929190613298565b5f60068201611bef8680613256565b604051611bfd92919061317a565b90815260200160405180910390205414611c3657611c1b8480613256565b60405163a41f772f60e01b815260040161047b929190613298565b611c40835f6122c7565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101611c7d8a80613256565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190611cc5908b018b613256565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001611d0e60608b0160408c01613216565b6001600160401b03168152602001611d2960608b018b613242565b611d32906132ab565b8152602001611d4460808b018b613242565b611d4d906132ab565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611d7b91906133d8565b5f60405180830381865af4158015611d95573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dbc919081019061348f565b5f82815260048601602052604090209193509150611dda8282612da8565b508160068401611dea8880613256565b604051611df892919061317a565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611e34908590600401612be6565b6020604051808303815f875af1158015611e50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e749190612bf8565b5f8481526005860160205260409020805460ff191660011790559050611e9a8780613256565b5f858152600587016020526040902060010191611eb89190836134d2565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580837fe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd688611f3a8b80613256565b611f4a60608e0160408f01613216565b604051611f5a949392919061358b565b60405180910390a3509095945050505050565b611f75612531565b611f7e8261257a565b610b5a81612593565b5f8281525f80516020613651833981519152602052604081206002015481905f8051602061363183398151915290600160801b90046001600160401b0316611fcf85826122c7565b5f611fd9876125a4565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015612082573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120a99190810190612bb5565b6040518263ffffffff1660e01b81526004016120c59190612be6565b6020604051808303815f875af11580156120e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121059190612bf8565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b61216b602082018261281a565b63ffffffff1615801561218b57506121866020820182612c0f565b151590505b156121d25761219d602082018261281a565b6121aa6020830183612c0f565b60405163c08a0f1d60e01b815263ffffffff909316600484015260248301525060440161047b565b6121df6020820182612c0f565b90506121ee602083018361281a565b63ffffffff1611156122075761219d602082018261281a565b60015b6122176020830183612c0f565b9050811015610b5a5761222d6020830183612c0f565b6122386001846135c2565b81811061224757612247612c54565b905060200201602081019061225c91906129df565b6001600160a01b03166122726020840184612c0f565b8381811061228257612282612c54565b905060200201602081019061229791906129df565b6001600160a01b031610156122bf57604051630dbc8d5f60e31b815260040160405180910390fd5b60010161220a565b5f805160206136318339815191525f6001600160401b0380841690851611156122fb576122f483856135d5565b9050612308565b61230584846135d5565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b9004909216606082015242911580612375575060018401548151612371916001600160401b03169061322f565b8210155b1561239d576001600160401b03808416606083015282825260408201511660208201526123bc565b82816060018181516123af9190612e7b565b6001600160401b03169052505b60608101516123cc906064612ede565b602082015160018601546001600160401b0392909216916123f79190600160401b900460ff16612ede565b6001600160401b0316101561243057606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161047b565b85816040018181516124429190612e7b565b6001600160401b03169052506040810180518691906124629083906135d5565b6001600160401b03169052506001840154604082015160649161249091600160401b90910460ff1690612ede565b6001600160401b031610156124c9576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161047b565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b4757604051631afcd79f60e31b815260040160405180910390fd5b612582612531565b61258a612619565b61114381612621565b61259b612531565b61114381612709565b5f8181525f805160206136518339815191526020526040812060020180545f8051602061363183398151915291906008906125ee90600160401b90046001600160401b03166135f5565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610b47612531565b612629612531565b80355f80516020613631833981519152908155601461264e6060840160408501613610565b60ff16118061266d57506126686060830160408401613610565b60ff16155b156126a1576126826060830160408401613610565b604051634a59bbff60e11b815260ff909116600482015260240161047b565b6126b16060830160408401613610565b60018201805460ff92909216600160401b0260ff60401b199092169190911790556126e26040830160208401613216565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b611111612531565b50805461271d90612a6c565b5f825580601f1061272c575050565b601f0160209004905f5260205f20908101906111439190612785565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115612799575f8155600101612786565b5090565b5f602082840312156127ad575f80fd5b5035919050565b803563ffffffff811681146127c7575f80fd5b919050565b5f80604083850312156127dd575f80fd5b82356001600160401b038111156127f2575f80fd5b830160808186031215612803575f80fd5b9150612811602084016127b4565b90509250929050565b5f6020828403121561282a575f80fd5b610b71826127b4565b80356001600160401b03811681146127c7575f80fd5b5f806040838503121561285a575f80fd5b82356001600160401b0381111561286f575f80fd5b830160a08186031215612880575f80fd5b915061281160208401612833565b6001600160a01b0381168114611143575f80fd5b5f8082840360808112156128b4575f80fd5b60608112156128c1575f80fd5b5082915060608301356128d38161288e565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061290e57634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b8381101561292c578181015183820152602001612914565b50505f910152565b5f815180845261294b816020860160208601612912565b601f01601f19169290920160200192915050565b602081526129716020820183516128f2565b5f602083015160e0604084015261298c610100840182612934565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f602082840312156129ef575f80fd5b81356129fa8161288e565b9392505050565b5f8060208385031215612a12575f80fd5b82356001600160401b0380821115612a28575f80fd5b818501915085601f830112612a3b575f80fd5b813581811115612a49575f80fd5b866020828501011115612a5a575f80fd5b60209290920196919550909350505050565b600181811c90821680612a8057607f821691505b602082108103612a9e57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610b7482846128f2565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612ae857612ae8612ab2565b60405290565b604080519081016001600160401b0381118282101715612ae857612ae8612ab2565b604051601f8201601f191681016001600160401b0381118282101715612b3857612b38612ab2565b604052919050565b5f6001600160401b03821115612b5857612b58612ab2565b50601f01601f191660200190565b5f82601f830112612b75575f80fd5b8151612b88612b8382612b40565b612b10565b818152846020838601011115612b9c575f80fd5b612bad826020830160208701612912565b949350505050565b5f60208284031215612bc5575f80fd5b81516001600160401b03811115612bda575f80fd5b612bad84828501612b66565b602081525f610b716020830184612934565b5f60208284031215612c08575f80fd5b5051919050565b5f808335601e19843603018112612c24575f80fd5b8301803591506001600160401b03821115612c3d575f80fd5b6020019150600581901b3603821315612157575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612c7c575f80fd5b9190910192915050565b5f82601f830112612c95575f80fd5b8135612ca3612b8382612b40565b818152846020838601011115612cb7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612ce3575f80fd5b612ceb612ac6565b82356001600160401b0380821115612d01575f80fd5b612d0d36838701612c86565b83526020850135915080821115612d22575f80fd5b50612d2f36828601612c86565b602083015250612d4160408401612833565b604082015292915050565b5f8251612c7c818460208701612912565b601f821115610b3157805f5260205f20601f840160051c81016020851015612d825750805b601f840160051c820191505b81811015612da1575f8155600101612d8e565b5050505050565b81516001600160401b03811115612dc157612dc1612ab2565b612dd581612dcf8454612a6c565b84612d5d565b602080601f831160018114612e08575f8415612df15750858301515b5f19600386901b1c1916600185901b178555612e5f565b5f85815260208120601f198616915b82811015612e3657888601518255948401946001909101908401612e17565b5085821015612e5357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156112b0576112b0612e67565b6001600160401b0383168152604060208201525f612bad6040830184612934565b5f63ffffffff808316818103612ed457612ed4612e67565b6001019392505050565b6001600160401b03818116838216028082169190828114612f0157612f01612e67565b505092915050565b5f808335601e19843603018112612f1e575f80fd5b83016020810192503590506001600160401b03811115612f3c575f80fd5b803603821315612157575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561301f57848303601f19018952813536889003605e19018112612fae575f80fd5b87016060612fbc8280612f09565b828752612fcc8388018284612f4a565b92505050612fdc86830183612f09565b86830388880152612fee838284612f4a565b9250505060406001600160401b03613007828501612833565b16950194909452509783019790830190600101612f89565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356130508161288e565b6001600160a01b031660608381019190915283013536849003601e19018112613077575f80fd5b83016020810190356001600160401b03811115613092575f80fd5b8060051b36038213156130a3575f80fd5b6080808501526130b760a085018284612f72565b95945050505050565b805180151581146127c7575f80fd5b5f80604083850312156130e0575f80fd5b82519150612811602084016130c0565b5f60208083525f845461310281612a6c565b806020870152604060018084165f8114613123576001811461313f5761316c565b60ff19851660408a0152604084151560051b8a0101955061316c565b895f5260205f205f5b858110156131635781548b8201860152908301908801613148565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b5f806040838503121561319a575f80fd5b82516001600160401b03808211156131b0575f80fd5b90840190606082870312156131c3575f80fd5b6131cb612ac6565b8251815260208301516131dd8161288e565b60208201526040830151828111156131f3575f80fd5b6131ff88828601612b66565b6040830152509350612811915050602084016130c0565b5f60208284031215613226575f80fd5b610b7182612833565b80820180821115610b7457610b74612e67565b5f8235603e19833603018112612c7c575f80fd5b5f808335601e1984360301811261326b575f80fd5b8301803591506001600160401b03821115613284575f80fd5b602001915036819003821315612157575f80fd5b602081525f612bad602083018486612f4a565b5f604082360312156132bb575f80fd5b6132c3612aee565b6132cc836127b4565b81526020808401356001600160401b03808211156132e8575f80fd5b9085019036601f8301126132fa575f80fd5b81358181111561330c5761330c612ab2565b8060051b915061331d848301612b10565b8181529183018401918481019036841115613336575f80fd5b938501935b8385101561336057843592506133508361288e565b828252938501939085019061333b565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156133cd5784516001600160a01b031682529383019360019290920191908301906133a4565b509695505050505050565b60208152815160208201525f602083015160e060408401526133fe610100840182612934565b90506040840151601f198085840301606086015261341c8383612934565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261344c8383613372565b925060a08601519150808584030160c08601525061346a8282613372565b91505060c084015161348760e08501826001600160401b03169052565b509392505050565b5f80604083850312156134a0575f80fd5b8251915060208301516001600160401b038111156134bc575f80fd5b6134c885828601612b66565b9150509250929050565b6001600160401b038311156134e9576134e9612ab2565b6134fd836134f78354612a6c565b83612d5d565b5f601f84116001811461352e575f85156135175750838201355b5f19600387901b1c1916600186901b178355612da1565b5f83815260208120601f198716915b8281101561355d578685013582556020948501946001909201910161353d565b5086821015613579575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b038087168352606060208401526135ae606084018688612f4a565b915080841660408401525095945050505050565b81810381811115610b7457610b74612e67565b6001600160401b038281168282160390808211156112b0576112b0612e67565b5f6001600160401b03808316818103612ed457612ed4612e67565b5f60208284031215613620575f80fd5b813560ff811681146129fa575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a26469706673582212203057a124216812576a3051efe3bb807c65de1d374da29f2d76d66054fc164e1464736f6c63430008190033", } // PoAValidatorManagerABI is the input ABI used to generate the binding from. @@ -861,19 +861,15 @@ type PoAValidatorManagerInitialValidatorCreated struct { // FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64) (*PoAValidatorManagerInitialValidatorCreatedIterator, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte) (*PoAValidatorManagerInitialValidatorCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -882,19 +878,15 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorC // WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialValidatorCreated, validationID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialValidatorCreated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -928,7 +920,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCr // ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*PoAValidatorManagerInitialValidatorCreated, error) { event := new(PoAValidatorManagerInitialValidatorCreated) if err := _PoAValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { @@ -1304,8 +1296,8 @@ type PoAValidatorManagerValidationPeriodCreated struct { // FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (*PoAValidatorManagerValidationPeriodCreatedIterator, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte) (*PoAValidatorManagerValidationPeriodCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1315,12 +1307,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodC for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1329,8 +1317,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodC // WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1340,12 +1328,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCr for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1379,7 +1363,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCr // ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*PoAValidatorManagerValidationPeriodCreated, error) { event := new(PoAValidatorManagerValidationPeriodCreated) if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { @@ -1619,23 +1603,15 @@ type PoAValidatorManagerValidationPeriodRegistered struct { // FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (*PoAValidatorManagerValidationPeriodRegisteredIterator, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*PoAValidatorManagerValidationPeriodRegisteredIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -1644,23 +1620,15 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodR // WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodRegistered, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (event.Subscription, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -1694,7 +1662,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodRe // ParseValidationPeriodRegistered is a log parse operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*PoAValidatorManagerValidationPeriodRegistered, error) { event := new(PoAValidatorManagerValidationPeriodRegistered) if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { @@ -1782,8 +1750,8 @@ type PoAValidatorManagerValidatorRemovalInitialized struct { // FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (*PoAValidatorManagerValidatorRemovalInitializedIterator, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*PoAValidatorManagerValidatorRemovalInitializedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1793,12 +1761,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalI for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -1807,8 +1771,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorRemovalI // WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1818,12 +1782,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalIn for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -1857,7 +1817,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorRemovalIn // ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*PoAValidatorManagerValidatorRemovalInitialized, error) { event := new(PoAValidatorManagerValidatorRemovalInitialized) if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { @@ -1945,8 +1905,8 @@ type PoAValidatorManagerValidatorWeightUpdate struct { // FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64, weight []uint64) (*PoAValidatorManagerValidatorWeightUpdateIterator, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*PoAValidatorManagerValidatorWeightUpdateIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1956,12 +1916,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUp for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -1970,8 +1926,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidatorWeightUp // WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1981,12 +1937,8 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpd for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -2020,7 +1972,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidatorWeightUpd // ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*PoAValidatorManagerValidatorWeightUpdate, error) { event := new(PoAValidatorManagerValidatorWeightUpdate) if err := _PoAValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { @@ -2033,7 +1985,7 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) ParseValidatorWeightUpd // ValidatorMessagesMetaData contains all meta data concerning the ValidatorMessages contract. var ValidatorMessagesMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidBLSPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"}],\"name\":\"InvalidCodecID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"actual\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"expected\",\"type\":\"uint32\"}],\"name\":\"InvalidMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMessageType\",\"type\":\"error\"},{\"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\"}],\"name\":\"packConversionData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"packL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"packL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"validationPeriod\",\"type\":\"tuple\"}],\"name\":\"packRegisterL1ValidatorMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"conversionID\",\"type\":\"bytes32\"}],\"name\":\"packSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"packValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorRegistrationMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackL1ValidatorWeightMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackRegisterL1ValidatorMessage\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"subnetID\",\"type\":\"bytes32\"},{\"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\"}],\"internalType\":\"structValidatorMessages.ValidationPeriod\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackSubnetToL1ConversionMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"unpackValidationUptimeMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea2646970667358221220638384be794ac0a88b7c4b85254e350d323a52416ec42695ed945633f232052964736f6c63430008190033", + Bin: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212207a0b6ee4bb75144dd6b8635b3883de8d9364507951a0e3d076ca36181dac9a1764736f6c63430008190033", } // ValidatorMessagesABI is the input ABI used to generate the binding from. diff --git a/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go b/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go index 2dd406634..89b1d3b28 100644 --- a/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go +++ b/abi-bindings/go/validator-manager/interfaces/IPoSValidatorManager/IPoSValidatorManager.go @@ -46,7 +46,7 @@ type InitialValidator 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\":true,\"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\":true,\"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\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":[{\"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\":\"messsageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"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\":[{\"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\":\"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\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"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\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":[{\"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\":\"messsageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"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\":[{\"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\"}]", } // IPoSValidatorManagerABI is the input ABI used to generate the binding from. @@ -693,8 +693,8 @@ type IPoSValidatorManagerDelegationEnded struct { // FilterDelegationEnded is a free log retrieval operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegationEnded(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (*IPoSValidatorManagerDelegationEndedIterator, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -704,12 +704,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegationEnded for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -718,8 +714,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegationEnded // WatchDelegationEnded is a free log subscription operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegationEnded, delegationID [][32]byte, validationID [][32]byte, rewards []*big.Int) (event.Subscription, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -729,12 +725,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded( for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var rewardsRule []interface{} - for _, rewardsItem := range rewards { - rewardsRule = append(rewardsRule, rewardsItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule, rewardsRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegationEnded", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -768,7 +760,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegationEnded( // ParseDelegationEnded is a log parse operation binding the contract event 0x8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993. // -// Solidity: event DelegationEnded(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed rewards, uint256 fees) +// 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 { @@ -1021,8 +1013,8 @@ type IPoSValidatorManagerDelegatorRegistered struct { // FilterDelegatorRegistered is a free log retrieval operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRegistered(opts *bind.FilterOpts, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (*IPoSValidatorManagerDelegatorRegisteredIterator, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1032,12 +1024,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRegist for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1046,8 +1034,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterDelegatorRegist // WatchDelegatorRegistered is a free log subscription operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegistered(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerDelegatorRegistered, delegationID [][32]byte, validationID [][32]byte, startTime []*big.Int) (event.Subscription, error) { +// 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) { var delegationIDRule []interface{} for _, delegationIDItem := range delegationID { @@ -1057,12 +1045,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegiste for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var startTimeRule []interface{} - for _, startTimeItem := range startTime { - startTimeRule = append(startTimeRule, startTimeItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule, startTimeRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "DelegatorRegistered", delegationIDRule, validationIDRule) if err != nil { return nil, err } @@ -1096,7 +1080,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchDelegatorRegiste // ParseDelegatorRegistered is a log parse operation binding the contract event 0x047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6. // -// Solidity: event DelegatorRegistered(bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime) +// 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 { @@ -1336,19 +1320,15 @@ type IPoSValidatorManagerInitialValidatorCreated struct { // FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64) (*IPoSValidatorManagerInitialValidatorCreatedIterator, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte) (*IPoSValidatorManagerInitialValidatorCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -1357,19 +1337,15 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitialValidato // WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerInitialValidatorCreated, validationID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerInitialValidatorCreated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -1403,7 +1379,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitialValidator // ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*IPoSValidatorManagerInitialValidatorCreated, error) { event := new(IPoSValidatorManagerInitialValidatorCreated) if err := _IPoSValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { @@ -1489,19 +1465,15 @@ type IPoSValidatorManagerUptimeUpdated struct { // FilterUptimeUpdated is a free log retrieval operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte, uptime []uint64) (*IPoSValidatorManagerUptimeUpdatedIterator, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterUptimeUpdated(opts *bind.FilterOpts, validationID [][32]byte) (*IPoSValidatorManagerUptimeUpdatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -1510,19 +1482,15 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterUptimeUpdated(o // WatchUptimeUpdated is a free log subscription operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerUptimeUpdated, validationID [][32]byte, uptime []uint64) (event.Subscription, error) { +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchUptimeUpdated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerUptimeUpdated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var uptimeRule []interface{} - for _, uptimeItem := range uptime { - uptimeRule = append(uptimeRule, uptimeItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule, uptimeRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "UptimeUpdated", validationIDRule) if err != nil { return nil, err } @@ -1556,7 +1524,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchUptimeUpdated(op // ParseUptimeUpdated is a log parse operation binding the contract event 0xec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435. // -// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime) +// Solidity: event UptimeUpdated(bytes32 indexed validationID, uint64 uptime) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseUptimeUpdated(log types.Log) (*IPoSValidatorManagerUptimeUpdated, error) { event := new(IPoSValidatorManagerUptimeUpdated) if err := _IPoSValidatorManager.contract.UnpackLog(event, "UptimeUpdated", log); err != nil { @@ -1645,8 +1613,8 @@ type IPoSValidatorManagerValidationPeriodCreated struct { // FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (*IPoSValidatorManagerValidationPeriodCreatedIterator, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte) (*IPoSValidatorManagerValidationPeriodCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1656,12 +1624,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPerio for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1670,8 +1634,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPerio // WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1681,12 +1645,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriod for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1720,7 +1680,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriod // ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*IPoSValidatorManagerValidationPeriodCreated, error) { event := new(IPoSValidatorManagerValidationPeriodCreated) if err := _IPoSValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { @@ -1960,23 +1920,15 @@ type IPoSValidatorManagerValidationPeriodRegistered struct { // FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (*IPoSValidatorManagerValidationPeriodRegisteredIterator, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*IPoSValidatorManagerValidationPeriodRegisteredIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -1985,23 +1937,15 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPerio // WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidationPeriodRegistered, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (event.Subscription, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -2035,7 +1979,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriod // ParseValidationPeriodRegistered is a log parse operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*IPoSValidatorManagerValidationPeriodRegistered, error) { event := new(IPoSValidatorManagerValidationPeriodRegistered) if err := _IPoSValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { @@ -2123,8 +2067,8 @@ type IPoSValidatorManagerValidatorRemovalInitialized struct { // FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (*IPoSValidatorManagerValidatorRemovalInitializedIterator, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*IPoSValidatorManagerValidatorRemovalInitializedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2134,12 +2078,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorRemova for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -2148,8 +2088,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorRemova // WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2159,12 +2099,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorRemoval for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -2198,7 +2134,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorRemoval // ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*IPoSValidatorManagerValidatorRemovalInitialized, error) { event := new(IPoSValidatorManagerValidatorRemovalInitialized) if err := _IPoSValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { @@ -2286,8 +2222,8 @@ type IPoSValidatorManagerValidatorWeightUpdate struct { // FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64, weight []uint64) (*IPoSValidatorManagerValidatorWeightUpdateIterator, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*IPoSValidatorManagerValidatorWeightUpdateIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2297,12 +2233,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorWeight for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -2311,8 +2243,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidatorWeight // WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -2322,12 +2254,8 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorWeightU for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -2361,7 +2289,7 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidatorWeightU // ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*IPoSValidatorManagerValidatorWeightUpdate, error) { event := new(IPoSValidatorManagerValidatorWeightUpdate) if err := _IPoSValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { diff --git a/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go b/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go index 00d890769..111992f1d 100644 --- a/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go +++ b/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go @@ -46,7 +46,7 @@ type InitialValidator struct { // IValidatorManagerMetaData contains all meta data concerning the IValidatorManager contract. var IValidatorManagerMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"messsageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"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\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"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\":\"messsageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"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\"}]", } // IValidatorManagerABI is the input ABI used to generate the binding from. @@ -377,19 +377,15 @@ type IValidatorManagerInitialValidatorCreated struct { // FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_IValidatorManager *IValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64) (*IValidatorManagerInitialValidatorCreatedIterator, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_IValidatorManager *IValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte) (*IValidatorManagerInitialValidatorCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -398,19 +394,15 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterInitialValidatorCreat // WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) -func (_IValidatorManager *IValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerInitialValidatorCreated, validationID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) +func (_IValidatorManager *IValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerInitialValidatorCreated, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -444,7 +436,7 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchInitialValidatorCreate // ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 indexed weight, bytes nodeID) +// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID) func (_IValidatorManager *IValidatorManagerFilterer) ParseInitialValidatorCreated(log types.Log) (*IValidatorManagerInitialValidatorCreated, error) { event := new(IValidatorManagerInitialValidatorCreated) if err := _IValidatorManager.contract.UnpackLog(event, "InitialValidatorCreated", log); err != nil { @@ -533,8 +525,8 @@ type IValidatorManagerValidationPeriodCreated struct { // FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (*IValidatorManagerValidationPeriodCreatedIterator, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, registerValidationMessageID [][32]byte) (*IValidatorManagerValidationPeriodCreatedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -544,12 +536,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodCreat for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -558,8 +546,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodCreat // WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) -func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) +func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidationPeriodCreated, validationID [][32]byte, registerValidationMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -569,12 +557,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreate for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -608,7 +592,7 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreate // ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 indexed weight, bytes nodeID, uint64 registrationExpiry) +// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, uint64 weight, bytes nodeID, uint64 registrationExpiry) func (_IValidatorManager *IValidatorManagerFilterer) ParseValidationPeriodCreated(log types.Log) (*IValidatorManagerValidationPeriodCreated, error) { event := new(IValidatorManagerValidationPeriodCreated) if err := _IValidatorManager.contract.UnpackLog(event, "ValidationPeriodCreated", log); err != nil { @@ -848,23 +832,15 @@ type IValidatorManagerValidationPeriodRegistered struct { // FilterValidationPeriodRegistered is a free log retrieval operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (*IValidatorManagerValidationPeriodRegisteredIterator, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodRegistered(opts *bind.FilterOpts, validationID [][32]byte) (*IValidatorManagerValidationPeriodRegisteredIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -873,23 +849,15 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodRegis // WatchValidationPeriodRegistered is a free log subscription operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) -func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidationPeriodRegistered, validationID [][32]byte, weight []uint64, timestamp []*big.Int) (event.Subscription, error) { +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) +func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodRegistered(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidationPeriodRegistered, validationID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { validationIDRule = append(validationIDRule, validationIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - var timestampRule []interface{} - for _, timestampItem := range timestamp { - timestampRule = append(timestampRule, timestampItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule, weightRule, timestampRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodRegistered", validationIDRule) if err != nil { return nil, err } @@ -923,7 +891,7 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodRegist // ParseValidationPeriodRegistered is a log parse operation binding the contract event 0x8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b. // -// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp) +// Solidity: event ValidationPeriodRegistered(bytes32 indexed validationID, uint64 weight, uint256 timestamp) func (_IValidatorManager *IValidatorManagerFilterer) ParseValidationPeriodRegistered(log types.Log) (*IValidatorManagerValidationPeriodRegistered, error) { event := new(IValidatorManagerValidationPeriodRegistered) if err := _IValidatorManager.contract.UnpackLog(event, "ValidationPeriodRegistered", log); err != nil { @@ -1011,8 +979,8 @@ type IValidatorManagerValidatorRemovalInitialized struct { // FilterValidatorRemovalInitialized is a free log retrieval operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (*IValidatorManagerValidatorRemovalInitializedIterator, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorRemovalInitialized(opts *bind.FilterOpts, validationID [][32]byte, setWeightMessageID [][32]byte) (*IValidatorManagerValidatorRemovalInitializedIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1022,12 +990,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorRemovalIniti for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -1036,8 +1000,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorRemovalIniti // WatchValidatorRemovalInitialized is a free log subscription operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) -func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) +func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorRemovalInitialized(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidatorRemovalInitialized, validationID [][32]byte, setWeightMessageID [][32]byte) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1047,12 +1011,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorRemovalInitia for _, setWeightMessageIDItem := range setWeightMessageID { setWeightMessageIDRule = append(setWeightMessageIDRule, setWeightMessageIDItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule, weightRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidatorRemovalInitialized", validationIDRule, setWeightMessageIDRule) if err != nil { return nil, err } @@ -1086,7 +1046,7 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorRemovalInitia // ParseValidatorRemovalInitialized is a log parse operation binding the contract event 0xfbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42. // -// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 indexed weight, uint256 endTime) +// Solidity: event ValidatorRemovalInitialized(bytes32 indexed validationID, bytes32 indexed setWeightMessageID, uint64 weight, uint256 endTime) func (_IValidatorManager *IValidatorManagerFilterer) ParseValidatorRemovalInitialized(log types.Log) (*IValidatorManagerValidatorRemovalInitialized, error) { event := new(IValidatorManagerValidatorRemovalInitialized) if err := _IValidatorManager.contract.UnpackLog(event, "ValidatorRemovalInitialized", log); err != nil { @@ -1174,8 +1134,8 @@ type IValidatorManagerValidatorWeightUpdate struct { // FilterValidatorWeightUpdate is a free log retrieval operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64, weight []uint64) (*IValidatorManagerValidatorWeightUpdateIterator, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorWeightUpdate(opts *bind.FilterOpts, validationID [][32]byte, nonce []uint64) (*IValidatorManagerValidatorWeightUpdateIterator, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1185,12 +1145,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorWeightUpdate for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -1199,8 +1155,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) FilterValidatorWeightUpdate // WatchValidatorWeightUpdate is a free log subscription operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) -func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64, weight []uint64) (event.Subscription, error) { +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) +func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorWeightUpdate(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidatorWeightUpdate, validationID [][32]byte, nonce []uint64) (event.Subscription, error) { var validationIDRule []interface{} for _, validationIDItem := range validationID { @@ -1210,12 +1166,8 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorWeightUpdate( for _, nonceItem := range nonce { nonceRule = append(nonceRule, nonceItem) } - var weightRule []interface{} - for _, weightItem := range weight { - weightRule = append(weightRule, weightItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule, weightRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidatorWeightUpdate", validationIDRule, nonceRule) if err != nil { return nil, err } @@ -1249,7 +1201,7 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidatorWeightUpdate( // ParseValidatorWeightUpdate is a log parse operation binding the contract event 0x07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df. // -// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 indexed weight, bytes32 setWeightMessageID) +// Solidity: event ValidatorWeightUpdate(bytes32 indexed validationID, uint64 indexed nonce, uint64 weight, bytes32 setWeightMessageID) func (_IValidatorManager *IValidatorManagerFilterer) ParseValidatorWeightUpdate(log types.Log) (*IValidatorManagerValidatorWeightUpdate, error) { event := new(IValidatorManagerValidatorWeightUpdate) if err := _IValidatorManager.contract.UnpackLog(event, "ValidatorWeightUpdate", log); err != nil { diff --git a/contracts/validator-manager/interfaces/IPoSValidatorManager.sol b/contracts/validator-manager/interfaces/IPoSValidatorManager.sol index 2602fe7c8..841f7d362 100644 --- a/contracts/validator-manager/interfaces/IPoSValidatorManager.sol +++ b/contracts/validator-manager/interfaces/IPoSValidatorManager.sol @@ -98,7 +98,7 @@ interface IPoSValidatorManager is IValidatorManager { * @param startTime The time at which the registration was completed */ event DelegatorRegistered( - bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime + bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime ); /** @@ -116,10 +116,7 @@ interface IPoSValidatorManager is IValidatorManager { * @param fees The portion of the delegator's rewards paid to the validator */ event DelegationEnded( - bytes32 indexed delegationID, - bytes32 indexed validationID, - uint256 indexed rewards, - uint256 fees + bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees ); /** @@ -127,7 +124,7 @@ interface IPoSValidatorManager is IValidatorManager { * @param validationID The ID of the validation period * @param uptime The updated uptime of the validator */ - event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime); + event UptimeUpdated(bytes32 indexed validationID, uint64 uptime); /** * @notice Updates the uptime of the validationID if the submitted proof is greated than the stored uptime. diff --git a/contracts/validator-manager/interfaces/IValidatorManager.sol b/contracts/validator-manager/interfaces/IValidatorManager.sol index 6e36b184b..63e24e925 100644 --- a/contracts/validator-manager/interfaces/IValidatorManager.sol +++ b/contracts/validator-manager/interfaces/IValidatorManager.sol @@ -113,14 +113,12 @@ interface IValidatorManager { event ValidationPeriodCreated( bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, - uint64 indexed weight, + uint64 weight, bytes nodeID, uint64 registrationExpiry ); - event InitialValidatorCreated( - bytes32 indexed validationID, uint64 indexed weight, bytes nodeID - ); + event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID); /** * @notice Emitted when the staking manager learns that the validation period has been successfully registered @@ -130,7 +128,7 @@ interface IValidatorManager { * @param timestamp The time at which the validation period was registered with the contract. */ event ValidationPeriodRegistered( - bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp + bytes32 indexed validationID, uint64 weight, uint256 timestamp ); /** @@ -145,7 +143,7 @@ interface IValidatorManager { event ValidatorRemovalInitialized( bytes32 indexed validationID, bytes32 indexed setWeightMessageID, - uint64 indexed weight, + uint64 weight, uint256 endTime ); @@ -167,7 +165,7 @@ interface IValidatorManager { event ValidatorWeightUpdate( bytes32 indexed validationID, uint64 indexed nonce, - uint64 indexed weight, + uint64 weight, bytes32 setWeightMessageID ); diff --git a/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol index dc432b4f8..bfd4c5b1a 100644 --- a/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol +++ b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol @@ -55,8 +55,6 @@ abstract contract PoSValidatorManagerTest is ValidatorManagerTest { disableOwner: DEFAULT_P_CHAIN_OWNER }); - event ValidationUptimeUpdated(bytes32 indexed validationID, uint64 uptime); - event DelegatorAdded( bytes32 indexed delegationID, bytes32 indexed validationID, @@ -68,19 +66,16 @@ abstract contract PoSValidatorManagerTest is ValidatorManagerTest { ); event DelegatorRegistered( - bytes32 indexed delegationID, bytes32 indexed validationID, uint256 indexed startTime + bytes32 indexed delegationID, bytes32 indexed validationID, uint256 startTime ); event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID); event DelegationEnded( - bytes32 indexed delegationID, - bytes32 indexed validationID, - uint256 indexed rewards, - uint256 fees + bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees ); - event UptimeUpdated(bytes32 indexed validationID, uint64 indexed uptime); + event UptimeUpdated(bytes32 indexed validationID, uint64 uptime); function testDelegationFeeBipsTooLow() public { vm.expectRevert( diff --git a/contracts/validator-manager/tests/ValidatorManagerTests.t.sol b/contracts/validator-manager/tests/ValidatorManagerTests.t.sol index 717333a3d..53865d841 100644 --- a/contracts/validator-manager/tests/ValidatorManagerTests.t.sol +++ b/contracts/validator-manager/tests/ValidatorManagerTests.t.sol @@ -65,23 +65,21 @@ abstract contract ValidatorManagerTest is Test { event ValidationPeriodCreated( bytes32 indexed validationID, bytes32 indexed registerValidationMessageID, - uint64 indexed weight, + uint64 weight, bytes nodeID, uint64 registrationExpiry ); - event InitialValidatorCreated( - bytes32 indexed validationID, uint64 indexed weight, bytes nodeID - ); + event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID); event ValidationPeriodRegistered( - bytes32 indexed validationID, uint64 indexed weight, uint256 indexed timestamp + bytes32 indexed validationID, uint64 weight, uint256 timestamp ); event ValidatorRemovalInitialized( bytes32 indexed validationID, bytes32 indexed setWeightMessageID, - uint64 indexed weight, + uint64 weight, uint256 endTime ); @@ -90,7 +88,7 @@ abstract contract ValidatorManagerTest is Test { event ValidatorWeightUpdate( bytes32 indexed validationID, uint64 indexed nonce, - uint64 indexed weight, + uint64 weight, bytes32 setWeightMessageID );