diff --git a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go index 84936ff6f..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\":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\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"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: "0x608060405234801561000f575f80fd5b50604051615f4b380380615f4b83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615dfe8061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c806380dd672f11610135578063b771b3bc116100b4578063d5f20ff611610079578063d5f20ff61461051c578063df93d8de1461053c578063e4a63c4014610546578063fb8b11dd1461055a578063fd7ac5e71461056d575f80fd5b8063b771b3bc146104cc578063ba3a4b97146104da578063bc5fbfec146104ed578063bee0a03f14610501578063c974d1b614610514575f80fd5b80639e1bc4ef116100fa5780639e1bc4ef1461046c5780639e478eea1461047f578063a3a65e4814610492578063a9778a7a146102ee578063afb98096146104a5575f80fd5b806380dd672f146104185780638280a25a1461042b5780638ef34c981461043357806393e24598146104465780639ae0644714610459575f80fd5b8063467ef06f116101c1578063620658561161018657806362065856146103a7578063732214f8146103ba57806376f78621146103c1578063785e9e86146103d45780637d8d2f7714610405575f80fd5b8063467ef06f146103305780634bee0040146103435780635dd6a6cb1461036457806360305d621461037757806360ad778414610394575f80fd5b806325e1c7761161020757806325e1c776146102b05780632e2194d8146102c357806335455ded146102ee57806337b9be8f1461030a5780633a1cfff61461031d575f80fd5b80630118acc4146102435780630322ed9814610258578063151d30d11461026b5780631ec447241461028a57806320d91b7a1461029d575b5f80fd5b610256610251366004614d42565b610580565b005b610256610266366004614d7d565b610591565b610273600a81565b60405160ff90911681526020015b60405180910390f35b610256610298366004614d42565b610821565b6102566102ab366004614d94565b61082d565b6102566102be366004614de2565b610de3565b6102d66102d1366004614d7d565b610e57565b6040516001600160401b039091168152602001610281565b6102f761271081565b60405161ffff9091168152602001610281565b610256610318366004614e17565b610eab565b61025661032b366004614d42565b610ebe565b61025661033e366004614e65565b610eca565b610356610351366004614ea3565b610f9c565b604051908152602001610281565b610256610372366004614e17565b610fd1565b61037f601481565b60405163ffffffff9091168152602001610281565b6102566103a2366004614de2565b610fdd565b6103566103b5366004614f0a565b6112a5565b6103565f81565b6102566103cf366004614d42565b6112c5565b5f80516020615d49833981519152546001600160a01b03165b6040516001600160a01b039091168152602001610281565b610256610413366004614e17565b6112d1565b610256610426366004614de2565b6112dd565b610273603081565b610256610441366004614f25565b611517565b610256610454366004614d7d565b6115c8565b610256610467366004614e17565b61165c565b61035661047a366004614f53565b611668565b61025661048d366004614f73565b611694565b6102566104a0366004614e65565b611773565b6103567f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6103ed6005600160991b0181565b6102566104e8366004614d7d565b611969565b6103565f80516020615d6983398151915281565b61025661050f366004614d7d565b611bc2565b610273601481565b61052f61052a366004614d7d565b611cfe565b604051610281919061501b565b6102d66202a30081565b6103565f80516020615d4983398151915281565b610256610568366004614f25565b611e4d565b61035661057b36600461509b565b611ee4565b61058c8383835f611f3f565b505050565b5f8181525f80516020615d898339815191526020526040808220815160e0810190925280545f80516020615d6983398151915293929190829060ff1660058111156105de576105de614fa6565b60058111156105ef576105ef614fa6565b815260200160018201805461060390615106565b80601f016020809104026020016040519081016040528092919081815260200182805461062f90615106565b801561067a5780601f106106515761010080835404028352916020019161067a565b820191905f5260205f20905b81548152906001019060200180831161065d57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156106e5576106e5614fa6565b14610721575f8381526005830160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610798573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107bf9190810190615247565b6040518263ffffffff1660e01b81526004016107db9190615278565b6020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b919061528a565b50505050565b61081b8383835f611f6b565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615d698339815191529060ff161561087f57604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e6919061528a565b83602001351461090f576040516372b0a7e760e11b815260208401356004820152602401610718565b3061092060608501604086016152a1565b6001600160a01b0316146109635761093e60608401604085016152a1565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610718565b5f61097160608501856152bc565b905090505f805b828163ffffffff161015610bd9575f61099460608801886152bc565b8363ffffffff168181106109aa576109aa615301565b90506020028101906109bc9190615315565b6109c590615380565b80516040519192505f9160068801916109dd916153fb565b90815260200160405180910390205414610a0d57805160405163a41f772f60e01b81526107189190600401615278565b5f6002885f013584604051602001610a3c92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610a56916153fb565b602060405180830381855afa158015610a71573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a94919061528a565b90508086600601835f0151604051610aac91906153fb565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610aec9082615450565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610b6c908561551f565b8251604051919550610b7d916153fb565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610bd29061553f565b9050610978565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c1c910460ff1683615561565b6001600160401b03161015610c4f57604051633e1a785160e01b81526001600160401b0382166004820152602401610718565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610c7387612298565b604001516040518263ffffffff1660e01b8152600401610c939190615278565b602060405180830381865af4158015610cae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd2919061528a565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610d0c91906156b7565b5f60405180830381865af4158015610d26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d4d9190810190615247565b90505f600282604051610d6091906153fb565b602060405180830381855afa158015610d7b573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d9e919061528a565b9050828114610dca5760405163baaea89d60e01b81526004810182905260248101849052604401610718565b5050506007909201805460ff1916600117905550505050565b610dec826123ae565b610e0c576040516330efa98b60e01b815260048101839052602401610718565b5f610e1683611cfe565b5190506002816005811115610e2d57610e2d614fa6565b14610e4d578060405163170cc93360e21b8152600401610718919061513e565b61081b83836123d7565b5f80610e61612676565b60030154610e6f908461574b565b9050801580610e8457506001600160401b0381115b15610ea55760405163222d164360e21b815260048101849052602401610718565b92915050565b610eb784848484611f6b565b5050505050565b61081b8383835f61269a565b610ed26128d7565b5f610edb612676565b90505f80610ee88461290e565b91509150610ef5826123ae565b610f0157505050610f83565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680610f435750805b600483516005811115610f5857610f58614fa6565b03610f6757610f678185612cc6565b610f7d82610f7885604001516112a5565b612cf0565b50505050505b610f9960015f80516020615da983398151915255565b50565b5f610fa56128d7565b610fb185858585612d26565b9050610fc960015f80516020615da983398151915255565b949350505050565b61081b84848484612ea6565b5f610fe6612676565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561101f5761101f614fa6565b600381111561103057611030614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6110a682611cfe565b90506001835160038111156110bd576110bd614fa6565b146110de578251604051633b0d540d60e21b8152610718919060040161576a565b6004815160058111156110f3576110f3614fa6565b036111095761110186612ed2565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61112e89612298565b604001516040518263ffffffff1660e01b815260040161114e9190615278565b606060405180830381865af4158015611169573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118d9190615784565b50915091508184146111ba57846040015160405163089938b360e11b815260040161071891815260200190565b806001600160401b031683606001516001600160401b031610806111f35750806001600160401b03168560a001516001600160401b0316115b1561121c57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6112ae612676565b60030154610ea5906001600160401b0384166157c4565b61058c8383835f612ea6565b610eb78484848461269a565b6112e56128d7565b5f6112ee612676565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561132757611327614fa6565b600381111561133857611338614fa6565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156113b1576113b1614fa6565b146113d2578051604051633b0d540d60e21b8152610718919060040161576a565b60046113e18260400151611cfe565b5160058111156113f3576113f3614fa6565b146114f2575f61140284612298565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016114419190615278565b606060405180830381865af415801561145c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114809190615784565b5091509150818460400151146114ac5760405163089938b360e11b815260048101839052602401610718565b806001600160401b03168460c001516001600160401b031611156114ee57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5050505b6114fb84612ed2565b505061151360015f80516020615da983398151915255565b5050565b5f611520612676565b90506001600160a01b0382166115545760405163caa903f960e01b81526001600160a01b0383166004820152602401610718565b5f8381526006820160205260409020546001600160a01b0316331461159a57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610718565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6115d1612676565b90505f6115dd83611cfe565b51905060048160058111156115f4576115f4614fa6565b14611614578060405163170cc93360e21b8152600401610718919061513e565b5f8381526006830160205260409020546001600160a01b031633146116395733611575565b5f83815260068301602052604090205461058c906001600160a01b031684612cc6565b61081b84848484611f3f565b5f6116716128d7565b61167c8333846130cc565b9050610ea560015f80516020615da983398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806116dd575080546001600160401b03808416911610155b156116fb5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556117268484613311565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615d698339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6117a686612298565b604001516040518263ffffffff1660e01b81526004016117c69190615278565b6040805180830381865af41580156117e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180491906157db565b915091508061182a57604051632d07135360e01b81528115156004820152602401610718565b5f8281526004840160205260409020805461184490615106565b90505f036118685760405163089938b360e11b815260048101839052602401610718565b60015f838152600580860160205260409091205460ff169081111561188f5761188f614fa6565b146118c2575f8281526005840160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b5f82815260048401602052604081206118da91614c91565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611972612676565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156119ab576119ab614fa6565b60038111156119bc576119bc614fa6565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611a3557611a35614fa6565b14158015611a565750600381516003811115611a5357611a53614fa6565b14155b15611a77578051604051633b0d540d60e21b8152610718919060040161576a565b5f611a858260400151611cfe565b905080606001516001600160401b03165f03611ab7576040516339b894f960e21b815260048101859052602401610718565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611b2593906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611b3f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b669190810190615247565b6040518263ffffffff1660e01b8152600401611b829190615278565b6020604051808303815f875af1158015611b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb7919061528a565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615d698339815191529190611c0990615106565b90505f03611c2d5760405163089938b360e11b815260048101839052602401610718565b60015f838152600580840160205260409091205460ff1690811115611c5457611c54614fa6565b14611c87575f8281526005820160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611cbe92016157fe565b6020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c919061528a565b611d06614cc8565b5f8281525f80516020615d89833981519152602052604090819020815160e0810190925280545f80516020615d69833981519152929190829060ff166005811115611d5357611d53614fa6565b6005811115611d6457611d64614fa6565b8152602001600182018054611d7890615106565b80601f0160208091040260200160405190810160405280929190818152602001828054611da490615106565b8015611def5780601f10611dc657610100808354040283529160200191611def565b820191905f5260205f20905b815481529060010190602001808311611dd257829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611e7f5760405163caa903f960e01b81526001600160a01b0382166004820152602401610718565b5f611e88612676565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611eb65733611575565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615d69833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611f279086908690615888565b90815260200160405180910390205491505092915050565b611f4b84848484611f6b565b61081b57604051631036cf9160e11b815260048101859052602401610718565b5f80611f75612676565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611fae57611fae614fa6565b6003811115611fbf57611fbf614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61203582611cfe565b905060028351600381111561204c5761204c614fa6565b1461206d578251604051633b0d540d60e21b8152610718919060040161576a565b60208301516001600160a01b03163314612109575f8281526006850160205260409020546001600160a01b031633146120a65733611575565b5f82815260068501602052604090205460a08201516120d591600160b01b90046001600160401b03169061551f565b6001600160401b03164210156121095760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b60028151600581111561211e5761211e614fa6565b036122405760028401546080840151612140916001600160401b03169061551f565b6001600160401b03164210156121745760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b87156121865761218482886123d7565b505b5f8981526007850160205260409020805460ff19166003179055606083015160808201516121bf9184916121ba9190615897565b61332b565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561220284888c613502565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610fc99350505050565b60048151600581111561225557612255614fa6565b0361227c5761226583878b613502565b5061226f89612ed2565b6001945050505050610fc9565b805160405163170cc93360e21b8152610718919060040161513e565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156122fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261232391908101906158b7565b915091508061234557604051636b2f19e960e01b815260040160405180910390fd5b81511561236b578151604051636ba589a560e01b81526004810191909152602401610718565b60208201516001600160a01b0316156123a7576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5092915050565b5f806123b8612676565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612422573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261244991908101906158b7565b915091508061246b57604051636b2f19e960e01b815260040160405180910390fd5b5f612474612676565b60058101548451919250146124a2578251604051636ba589a560e01b81526004810191909152602401610718565b60208301516001600160a01b0316156124de576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b60208301516001600160a01b03161561251a576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016125579190615278565b6040805180830381865af4158015612571573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125959190615947565b915091508188146125bc5760405163089938b360e11b815260048101899052602401610718565b5f8881526006840160205260409020600101546001600160401b03908116908216111561264d575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a261266b565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806126a4612676565b90505f6126b0876136f0565b90506126bb876123ae565b6126ca57600192505050610fc9565b5f8781526006830160205260409020546001600160a01b031633146126ef5733611575565b5f87815260068301602052604090205460a082015161271e91600160b01b90046001600160401b03169061551f565b6001600160401b03168160c001516001600160401b031610156127655760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610718565b5f861561277d5761277688876123d7565b905061279b565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906127c0906112a5565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa158015612829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061284d919061528a565b90506001600160a01b038616612879575f8981526006850160205260409020546001600160a01b031695505b5f898152600a850160205260408120805483929061289890849061596a565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615da983398151915280546001190161290857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612917614cc8565b5f80516020615d698339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61294a88612298565b604001516040518263ffffffff1660e01b815260040161296a9190615278565b6040805180830381865af4158015612984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a891906157db565b9150915080156129cf57604051632d07135360e01b81528115156004820152602401610718565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612a0657612a06614fa6565b6005811115612a1757612a17614fa6565b8152602001600182018054612a2b90615106565b80601f0160208091040260200160405190810160405280929190818152602001828054612a5790615106565b8015612aa25780601f10612a7957610100808354040283529160200191612aa2565b820191905f5260205f20905b815481529060010190602001808311612a8557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612b0d57612b0d614fa6565b14158015612b2e5750600181516005811115612b2b57612b2b614fa6565b14155b15612b4f57805160405163170cc93360e21b8152610718919060040161513e565b600381516005811115612b6457612b64614fa6565b03612b725760048152612b77565b600581525b836006018160200151604051612b8d91906153fb565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612bd057612bd0614fa6565b021790555060208201516001820190612be99082615450565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612c8f57612c8f614fa6565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612ccf612676565b5f838152600a820160205260408120805491905590915061081b84826139d5565b5f80516020615d4983398151915254611513906001600160a01b03168383613a4b565b60015f80516020615da983398151915255565b5f80612d30612676565b600281015490915061ffff600160401b90910481169086161080612d59575061271061ffff8616115b15612d7d57604051635f12e6c360e11b815261ffff86166004820152602401610718565b60028101546001600160401b039081169085161015612db9576040516202a06d60e11b81526001600160401b0385166004820152602401610718565b8054831080612dcb5750806001015483115b15612dec5760405163222d164360e21b815260048101849052602401610718565b5f612df684613aaa565b90505f612e0282610e57565b90505f612e0f8983613acd565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b612eb28484848461269a565b61081b57604051635bff683f60e11b815260048101859052602401610718565b5f612edb612676565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f1457612f14614fa6565b6003811115612f2557612f25614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fc27fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fd1919061551f565b6001600160401b03164210156130055760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613060575060208201515b5f8061306d83888661403f565b915091506130868560200151610f7887606001516112a5565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130d6612676565b90505f6130e56102d185613aaa565b90505f6130f187611cfe565b90506130fc876123ae565b61311c576040516330efa98b60e01b815260048101889052602401610718565b60028151600581111561313157613131614fa6565b1461315257805160405163170cc93360e21b8152610718919060040161513e565b5f828260800151613163919061551f565b905083600201600a9054906101000a90046001600160401b0316826040015161318c9190615561565b6001600160401b0316816001600160401b031611156131c957604051636d51fe0560e11b81526001600160401b0382166004820152602401610718565b5f806131d58a8461332b565b915091505f8a8360405160200161320392919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b6133196140ec565b61332282614137565b611513816141b1565b5f8281525f80516020615d89833981519152602052604081206002015481905f80516020615d6983398151915290600160801b90046001600160401b03166133738582614219565b5f61337d87614483565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613426573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261344d9190810190615247565b6040518263ffffffff1660e01b81526004016134699190615278565b6020604051808303815f875af1158015613485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a9919061528a565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061350c612676565b90505f61351c8660400151611cfe565b90505f60038251600581111561353457613534614fa6565b1480613552575060048251600581111561355057613550614fa6565b145b15613562575060c081015161359f565b60028251600581111561357757613577614fa6565b0361358357504261359f565b815160405163170cc93360e21b8152610718919060040161513e565b86608001516001600160401b0316816001600160401b0316116135c7575f935050505061330a565b600483015460608801515f916001600160a01b031690634f22429f906135ec906112a5565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561366d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613691919061528a565b90506001600160a01b0387166136a957876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6136f8614cc8565b5f8281525f80516020615d898339815191526020526040808220815160e0810190925280545f80516020615d6983398151915293929190829060ff16600581111561374557613745614fa6565b600581111561375657613756614fa6565b815260200160018201805461376a90615106565b80601f016020809104026020016040519081016040528092919081815260200182805461379690615106565b80156137e15780601f106137b8576101008083540402835291602001916137e1565b820191905f5260205f20905b8154815290600101906020018083116137c457829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a0909101529091508151600581111561384f5761384f614fa6565b14613882575f8481526005830160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff19169060019084908111156138c7576138c7614fa6565b0217905550602082015160018201906138e09082615450565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61397e858261332b565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b5f5f80516020615d4983398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015613a30575f80fd5b505af1158015613a42573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261058c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506144f8565b5f610ea5825f80516020615d49833981519152546001600160a01b031690614559565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613b1157604051637fab81e560e01b815260040160405180910390fd5b5f80516020615d6983398151915242613b306060860160408701614f0a565b6001600160401b0316111580613b6a5750613b4e6202a3004261596a565b613b5e6060860160408701614f0a565b6001600160401b031610155b15613ba457613b7f6060850160408601614f0a565b604051635879da1360e11b81526001600160401b039091166004820152602401610718565b60038101546001600160401b0390613bc790600160401b9004821685831661596a565b1115613bf157604051633e1a785160e01b81526001600160401b0384166004820152602401610718565b613c06613c01606086018661597d565b614565565b613c16613c01608086018661597d565b6030613c256020860186615991565b905014613c5757613c396020850185615991565b6040516326475b2f60e11b8152610718925060040190815260200190565b613c618480615991565b90505f03613c8e57613c738480615991565b604051633e08a12560e11b81526004016107189291906159d3565b5f60068201613c9d8680615991565b604051613cab929190615888565b90815260200160405180910390205414613ce457613cc98480615991565b60405163a41f772f60e01b81526004016107189291906159d3565b613cee835f614219565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613d2b8a80615991565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190613d73908b018b615991565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001613dbc60608b0160408c01614f0a565b6001600160401b03168152602001613dd760608b018b61597d565b613de0906159e6565b8152602001613df260808b018b61597d565b613dfb906159e6565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613e299190615b13565b5f60405180830381865af4158015613e43573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613e6a9190810190615bca565b5f82815260048601602052604090209193509150613e888282615450565b508160068401613e988880615991565b604051613ea6929190615888565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613ee2908590600401615278565b6020604051808303815f875af1158015613efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f22919061528a565b5f8481526005860160205260409020805460ff191660011790559050613f488780615991565b5f858152600587016020526040902060010191613f66919083615c0d565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580613fc58880615991565b604051613fd3929190615888565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906140119190614f0a565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b5f805f61404a612676565b5f868152600882016020526040812080549082905591925090819080156140de575f8781526006850160205260409020546127109061409490600160a01b900461ffff16836157c4565b61409e919061574b565b91508184600a015f8981526020019081526020015f205f8282546140c2919061596a565b909155506140d290508282615cc6565b92506140de89846139d5565b509097909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661413557604051631afcd79f60e31b815260040160405180910390fd5b565b61413f6140ec565b614148816146ce565b6141506146e7565b610f996060820135608083013561416d60c0850160a08601614f0a565b61417d60e0860160c08701615cd9565b61418e610100870160e08801615cf2565b6101008701356141a661014089016101208a016152a1565b8861014001356146f7565b6141b96140ec565b5f80516020615d498339815191526001600160a01b0382166141f957604051637330680360e01b81526001600160a01b0383166004820152602401610718565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80516020615d698339815191525f6001600160401b03808416908516111561424d576142468385615897565b905061425a565b6142578484615897565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806142c75750600184015481516142c3916001600160401b03169061596a565b8210155b156142ef576001600160401b038084166060830152828252604082015116602082015261430e565b8281606001818151614301919061551f565b6001600160401b03169052505b606081015161431e906064615561565b602082015160018601546001600160401b0392909216916143499190600160401b900460ff16615561565b6001600160401b0316101561438257606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610718565b8581604001818151614394919061551f565b6001600160401b03169052506040810180518691906143b4908390615897565b6001600160401b0316905250600184015460408201516064916143e291600160401b90910460ff1690615561565b6001600160401b0316101561441b576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610718565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615d898339815191526020526040812060020180545f80516020615d6983398151915291906008906144cd90600160401b90046001600160401b0316615d12565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f61450c6001600160a01b038416836148dc565b905080515f1415801561453057508080602001905181019061452e9190615d2d565b155b1561058c57604051635274afe760e01b81526001600160a01b0384166004820152602401610718565b5f61330a8333846148e9565b6145726020820182614e65565b63ffffffff16158015614592575061458d60208201826152bc565b151590505b156145d9576145a46020820182614e65565b6145b160208301836152bc565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610718565b6145e660208201826152bc565b90506145f56020830183614e65565b63ffffffff16111561460e576145a46020820182614e65565b60015b61461e60208301836152bc565b90508110156115135761463460208301836152bc565b61463f600184615cc6565b81811061464e5761464e615301565b905060200201602081019061466391906152a1565b6001600160a01b031661467960208401846152bc565b8381811061468957614689615301565b905060200201602081019061469e91906152a1565b6001600160a01b031610156146c657604051630dbc8d5f60e31b815260040160405180910390fd5b600101614611565b6146d66140ec565b6146de614a4c565b610f9981614a54565b6146ef6140ec565b614135614b3c565b6146ff6140ec565b5f614708612676565b905061ffff86161580614720575061271061ffff8716115b1561474457604051635f12e6c360e11b815261ffff87166004820152602401610718565b878911156147685760405163222d164360e21b8152600481018a9052602401610718565b60ff8516158061477b5750600a60ff8616115b1561479e5760405163170db35960e31b815260ff86166004820152602401610718565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b03161015614805576040516202a06d60e11b81526001600160401b0388166004820152602401610718565b835f036148255760405163a733007160e01b815260040160405180910390fd5b8161484657604051632f6bd1db60e01b815260048101839052602401610718565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b606061330a83835f614b44565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561492f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614953919061528a565b905061496a6001600160a01b038616853086614bd3565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa1580156149ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149d2919061528a565b9050818111614a385760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610718565b614a428282615cc6565b9695505050505050565b6141356140ec565b614a5c6140ec565b80355f80516020615d698339815191529081556014614a816060840160408501615cf2565b60ff161180614aa05750614a9b6060830160408401615cf2565b60ff16155b15614ad457614ab56060830160408401615cf2565b604051634a59bbff60e11b815260ff9091166004820152602401610718565b614ae46060830160408401615cf2565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614b156040830160208401614f0a565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612d136140ec565b606081471015614b695760405163cd78605960e01b8152306004820152602401610718565b5f80856001600160a01b03168486604051614b8491906153fb565b5f6040518083038185875af1925050503d805f8114614bbe576040519150601f19603f3d011682016040523d82523d5f602084013e614bc3565b606091505b5091509150614a42868383614c0c565b6040516001600160a01b03848116602483015283811660448301526064820183905261081b9186918216906323b872dd90608401613a78565b606082614c2157614c1c82614c68565b61330a565b8151158015614c3857506001600160a01b0384163b155b15614c6157604051639996b31560e01b81526001600160a01b0385166004820152602401610718565b508061330a565b805115614c785780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614c9d90615106565b5f825580601f10614cac575050565b601f0160209004905f5260205f2090810190610f999190614d05565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614d19575f8155600101614d06565b5090565b8015158114610f99575f80fd5b803563ffffffff81168114614d3d575f80fd5b919050565b5f805f60608486031215614d54575f80fd5b833592506020840135614d6681614d1d565b9150614d7460408501614d2a565b90509250925092565b5f60208284031215614d8d575f80fd5b5035919050565b5f8060408385031215614da5575f80fd5b82356001600160401b03811115614dba575f80fd5b830160808186031215614dcb575f80fd5b9150614dd960208401614d2a565b90509250929050565b5f8060408385031215614df3575f80fd5b82359150614dd960208401614d2a565b6001600160a01b0381168114610f99575f80fd5b5f805f8060808587031215614e2a575f80fd5b843593506020850135614e3c81614d1d565b9250614e4a60408601614d2a565b91506060850135614e5a81614e03565b939692955090935050565b5f60208284031215614e75575f80fd5b61330a82614d2a565b803561ffff81168114614d3d575f80fd5b6001600160401b0381168114610f99575f80fd5b5f805f8060808587031215614eb6575f80fd5b84356001600160401b03811115614ecb575f80fd5b850160a08188031215614edc575f80fd5b9350614eea60208601614e7e565b92506040850135614efa81614e8f565b9396929550929360600135925050565b5f60208284031215614f1a575f80fd5b813561330a81614e8f565b5f8060408385031215614f36575f80fd5b823591506020830135614f4881614e03565b809150509250929050565b5f8060408385031215614f64575f80fd5b50508035926020909101359150565b5f80828403610180811215614f86575f80fd5b61016080821215614f95575f80fd5b8493508301359050614f4881614e03565b634e487b7160e01b5f52602160045260245ffd5b60068110614fca57614fca614fa6565b9052565b5f5b83811015614fe8578181015183820152602001614fd0565b50505f910152565b5f8151808452615007816020860160208601614fce565b601f01601f19169290920160200192915050565b6020815261502d602082018351614fba565b5f602083015160e06040840152615048610100840182614ff0565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f80602083850312156150ac575f80fd5b82356001600160401b03808211156150c2575f80fd5b818501915085601f8301126150d5575f80fd5b8135818111156150e3575f80fd5b8660208285010111156150f4575f80fd5b60209290920196919550909350505050565b600181811c9082168061511a57607f821691505b60208210810361513857634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610ea58284614fba565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156151825761518261514c565b60405290565b604080519081016001600160401b03811182821017156151825761518261514c565b604051601f8201601f191681016001600160401b03811182821017156151d2576151d261514c565b604052919050565b5f6001600160401b038211156151f2576151f261514c565b50601f01601f191660200190565b5f82601f83011261520f575f80fd5b815161522261521d826151da565b6151aa565b818152846020838601011115615236575f80fd5b610fc9826020830160208701614fce565b5f60208284031215615257575f80fd5b81516001600160401b0381111561526c575f80fd5b610fc984828501615200565b602081525f61330a6020830184614ff0565b5f6020828403121561529a575f80fd5b5051919050565b5f602082840312156152b1575f80fd5b813561330a81614e03565b5f808335601e198436030181126152d1575f80fd5b8301803591506001600160401b038211156152ea575f80fd5b6020019150600581901b36038213156134fb575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615329575f80fd5b9190910192915050565b5f82601f830112615342575f80fd5b813561535061521d826151da565b818152846020838601011115615364575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615390575f80fd5b615398615160565b82356001600160401b03808211156153ae575f80fd5b6153ba36838701615333565b835260208501359150808211156153cf575f80fd5b506153dc36828601615333565b60208301525060408301356153f081614e8f565b604082015292915050565b5f8251615329818460208701614fce565b601f82111561058c57805f5260205f20601f840160051c810160208510156154315750805b601f840160051c820191505b81811015610eb7575f815560010161543d565b81516001600160401b038111156154695761546961514c565b61547d816154778454615106565b8461540c565b602080601f8311600181146154b0575f84156154995750858301515b5f19600386901b1c1916600185901b178555611101565b5f85815260208120601f198616915b828110156154de578886015182559484019460019091019084016154bf565b50858210156154fb57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156123a7576123a761550b565b5f63ffffffff8083168181036155575761555761550b565b6001019392505050565b6001600160401b038181168382160280821691908281146155845761558461550b565b505092915050565b5f808335601e198436030181126155a1575f80fd5b83016020810192503590506001600160401b038111156155bf575f80fd5b8036038213156134fb575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156156aa57848303601f19018952813536889003605e19018112615631575f80fd5b8701606061563f828061558c565b82875261564f83880182846155cd565b9250505061565f8683018361558c565b868303888801526156718382846155cd565b92505050604080830135925061568683614e8f565b6001600160401b03929092169490910193909352978301979083019060010161560c565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356156db81614e03565b6001600160a01b031660608381019190915283013536849003601e19018112615702575f80fd5b83016020810190356001600160401b0381111561571d575f80fd5b8060051b360382131561572e575f80fd5b60808085015261574260a0850182846155f5565b95945050505050565b5f8261576557634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061577e5761577e614fa6565b91905290565b5f805f60608486031215615796575f80fd5b8351925060208401516157a881614e8f565b60408501519092506157b981614e8f565b809150509250925092565b8082028115828204841417610ea557610ea561550b565b5f80604083850312156157ec575f80fd5b825191506020830151614f4881614d1d565b5f60208083525f845461581081615106565b806020870152604060018084165f8114615831576001811461584d5761587a565b60ff19851660408a0152604084151560051b8a0101955061587a565b895f5260205f205f5b858110156158715781548b8201860152908301908801615856565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b038281168282160390808211156123a7576123a761550b565b5f80604083850312156158c8575f80fd5b82516001600160401b03808211156158de575f80fd5b90840190606082870312156158f1575f80fd5b6158f9615160565b82518152602083015161590b81614e03565b6020820152604083015182811115615921575f80fd5b61592d88828601615200565b6040830152508094505050506020830151614f4881614d1d565b5f8060408385031215615958575f80fd5b825191506020830151614f4881614e8f565b80820180821115610ea557610ea561550b565b5f8235603e19833603018112615329575f80fd5b5f808335601e198436030181126159a6575f80fd5b8301803591506001600160401b038211156159bf575f80fd5b6020019150368190038213156134fb575f80fd5b602081525f610fc96020830184866155cd565b5f604082360312156159f6575f80fd5b6159fe615188565b615a0783614d2a565b81526020808401356001600160401b0380821115615a23575f80fd5b9085019036601f830112615a35575f80fd5b813581811115615a4757615a4761514c565b8060051b9150615a588483016151aa565b8181529183018401918481019036841115615a71575f80fd5b938501935b83851015615a9b5784359250615a8b83614e03565b8282529385019390850190615a76565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615b085784516001600160a01b03168252938301936001929092019190830190615adf565b509695505050505050565b60208152815160208201525f602083015160e06040840152615b39610100840182614ff0565b90506040840151601f1980858403016060860152615b578383614ff0565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b878383615aad565b925060a08601519150808584030160c086015250615ba58282615aad565b91505060c0840151615bc260e08501826001600160401b03169052565b509392505050565b5f8060408385031215615bdb575f80fd5b8251915060208301516001600160401b03811115615bf7575f80fd5b615c0385828601615200565b9150509250929050565b6001600160401b03831115615c2457615c2461514c565b615c3883615c328354615106565b8361540c565b5f601f841160018114615c69575f8515615c525750838201355b5f19600387901b1c1916600186901b178355610eb7565b5f83815260208120601f198716915b82811015615c985786850135825560209485019460019092019101615c78565b5086821015615cb4575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610ea557610ea561550b565b5f60208284031215615ce9575f80fd5b61330a82614e7e565b5f60208284031215615d02575f80fd5b813560ff8116811461330a575f80fd5b5f6001600160401b038083168181036155575761555761550b565b5f60208284031215615d3d575f80fd5b815161330a81614d1d56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122005eb241b3104f5fbb12b4e541b87af5320778171ef2c39642761cc3b544ea0bc64736f6c63430008190033", + 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. @@ -1985,47 +1985,39 @@ func (it *ERC20TokenStakingManagerInitialValidatorCreatedIterator) Close() error // ERC20TokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the ERC20TokenStakingManager contract. type ERC20TokenStakingManagerInitialValidatorCreated struct { ValidationID [32]byte - NodeID common.Hash Weight uint64 + NodeID []byte Raw types.Log // Blockchain specific contextual infos } -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte) (*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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } return &ERC20TokenStakingManagerInitialValidatorCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil } -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][]byte) (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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -2057,9 +2049,9 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchInitialV }), nil } -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) +// 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 { @@ -2418,57 +2410,49 @@ func (it *ERC20TokenStakingManagerValidationPeriodCreatedIterator) Close() error // ERC20TokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the ERC20TokenStakingManager contract. type ERC20TokenStakingManagerValidationPeriodCreated struct { ValidationID [32]byte - NodeID common.Hash RegisterValidationMessageID [32]byte Weight uint64 + NodeID []byte RegistrationExpiry uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (*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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } return &ERC20TokenStakingManagerValidationPeriodCreatedIterator{contract: _ERC20TokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil } -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *ERC20TokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _ERC20TokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2500,9 +2484,9 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerFilterer) WatchValidati }), nil } -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, 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 { @@ -3124,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: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212209b053b8f4b1240668e63fcf61c1058f38e82bf86a5ffafe8ef50c8ba2c10a75564736f6c63430008190033", + 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 353fa808d..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\":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\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"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: "0x608060405234801561000f575f80fd5b50604051615c7a380380615c7a83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615b2d8061014d5f395ff3fe608060405260043610610228575f3560e01c80637d8d2f7711610129578063b771b3bc116100a8578063c974d1b61161006d578063c974d1b614610666578063d5f20ff61461067a578063df93d8de146106a6578063fb8b11dd146106bc578063fd7ac5e7146106db575f80fd5b8063b771b3bc146105db578063ba3a4b97146105f5578063bc5fbfec14610614578063bee0a03f14610634578063c599e24f14610653575f80fd5b80639ae06447116100ee5780639ae0644714610557578063a3a65e4814610576578063a9778a7a1461037c578063af2f5feb14610595578063afb98096146105a8575f80fd5b80637d8d2f77146104c757806380dd672f146104e65780638280a25a146105055780638ef34c981461051957806393e2459814610538575f80fd5b806335455ded116101b557806360305d621161017a57806360305d621461042057806360ad7784146104495780636206585614610468578063732214f81461049557806376f78621146104a8575f80fd5b806335455ded1461037c57806337b9be8f146103a45780633a1cfff6146103c3578063467ef06f146103e25780635dd6a6cb14610401575f80fd5b80631ec44724116101fb5780631ec44724146102b657806320d91b7a146102d557806325e1c776146102f45780632e2194d814610313578063329c3e121461034a575f80fd5b80630118acc41461022c5780630322ed981461024d5780630ba512d11461026c578063151d30d11461028b575b5f80fd5b348015610237575f80fd5b5061024b610246366004614aff565b6106fa565b005b348015610258575f80fd5b5061024b610267366004614b3a565b61070b565b348015610277575f80fd5b5061024b610286366004614b51565b61099b565b348015610296575f80fd5b5061029f600a81565b60405160ff90911681526020015b60405180910390f35b3480156102c1575f80fd5b5061024b6102d0366004614aff565b610a78565b3480156102e0575f80fd5b5061024b6102ef366004614b68565b610a84565b3480156102ff575f80fd5b5061024b61030e366004614bb6565b61103a565b34801561031e575f80fd5b5061033261032d366004614b3a565b6110ae565b6040516001600160401b0390911681526020016102ad565b348015610355575f80fd5b506103646001600160991b0181565b6040516001600160a01b0390911681526020016102ad565b348015610387575f80fd5b5061039161271081565b60405161ffff90911681526020016102ad565b3480156103af575f80fd5b5061024b6103be366004614beb565b611102565b3480156103ce575f80fd5b5061024b6103dd366004614aff565b611115565b3480156103ed575f80fd5b5061024b6103fc366004614c39565b611121565b34801561040c575f80fd5b5061024b61041b366004614beb565b6111f3565b34801561042b575f80fd5b50610434601481565b60405163ffffffff90911681526020016102ad565b348015610454575f80fd5b5061024b610463366004614bb6565b6111ff565b348015610473575f80fd5b50610487610482366004614c66565b6114c7565b6040519081526020016102ad565b3480156104a0575f80fd5b506104875f81565b3480156104b3575f80fd5b5061024b6104c2366004614aff565b6114e7565b3480156104d2575f80fd5b5061024b6104e1366004614beb565b6114f3565b3480156104f1575f80fd5b5061024b610500366004614bb6565b6114ff565b348015610510575f80fd5b5061029f603081565b348015610524575f80fd5b5061024b610533366004614c81565b611739565b348015610543575f80fd5b5061024b610552366004614b3a565b6117ea565b348015610562575f80fd5b5061024b610571366004614beb565b61187e565b348015610581575f80fd5b5061024b610590366004614c39565b61188a565b6104876105a3366004614cc0565b611a80565b3480156105b3575f80fd5b506104877f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b3480156105e6575f80fd5b506103646005600160991b0181565b348015610600575f80fd5b5061024b61060f366004614b3a565b611ab4565b34801561061f575f80fd5b506104875f80516020615a9883398151915281565b34801561063f575f80fd5b5061024b61064e366004614b3a565b611d0d565b610487610661366004614b3a565b611e49565b348015610671575f80fd5b5061029f601481565b348015610685575f80fd5b50610699610694366004614b3a565b611e7a565b6040516102ad9190614d96565b3480156106b1575f80fd5b506103326202a30081565b3480156106c7575f80fd5b5061024b6106d6366004614c81565b611fc9565b3480156106e6575f80fd5b506104876106f5366004614e16565b612060565b6107068383835f6120bb565b505050565b5f8181525f80516020615ab88339815191526020526040808220815160e0810190925280545f80516020615a9883398151915293929190829060ff16600581111561075857610758614d21565b600581111561076957610769614d21565b815260200160018201805461077d90614e81565b80601f01602080910402602001604051908101604052809291908181526020018280546107a990614e81565b80156107f45780601f106107cb576101008083540402835291602001916107f4565b820191905f5260205f20905b8154815290600101906020018083116107d757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561085f5761085f614d21565b1461089b575f8381526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610912573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109399190810190614fbc565b6040518263ffffffff1660e01b81526004016109559190614fed565b6020604051808303815f875af1158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190614fff565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806109e4575080546001600160401b03808416911610155b15610a025760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a2c836120e7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6109958383835f6120f8565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615a988339815191529060ff1615610ad657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3d9190614fff565b836020013514610b66576040516372b0a7e760e11b815260208401356004820152602401610892565b30610b776060850160408601615016565b6001600160a01b031614610bba57610b956060840160408501615016565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610892565b5f610bc86060850185615031565b905090505f805b828163ffffffff161015610e30575f610beb6060880188615031565b8363ffffffff16818110610c0157610c01615076565b9050602002810190610c13919061508a565b610c1c906150f5565b80516040519192505f916006880191610c3491615170565b90815260200160405180910390205414610c6457805160405163a41f772f60e01b81526108929190600401614fed565b5f6002885f013584604051602001610c9392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610cad91615170565b602060405180830381855afa158015610cc8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ceb9190614fff565b90508086600601835f0151604051610d039190615170565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d4390826151c5565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610dc39085615294565b8251604051919550610dd491615170565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610e29906152b4565b9050610bcf565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e73910460ff16836152d6565b6001600160401b03161015610ea657604051633e1a785160e01b81526001600160401b0382166004820152602401610892565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610eca8761242d565b604001516040518263ffffffff1660e01b8152600401610eea9190614fed565b602060405180830381865af4158015610f05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f299190614fff565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f63919061542c565b5f60405180830381865af4158015610f7d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa49190810190614fbc565b90505f600282604051610fb79190615170565b602060405180830381855afa158015610fd2573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff59190614fff565b90508281146110215760405163baaea89d60e01b81526004810182905260248101849052604401610892565b5050506007909201805460ff1916600117905550505050565b61104382612543565b611063576040516330efa98b60e01b815260048101839052602401610892565b5f61106d83611e7a565b519050600281600581111561108457611084614d21565b146110a4578060405163170cc93360e21b81526004016108929190614eb3565b610995838361256c565b5f806110b861280b565b600301546110c690846154c0565b90508015806110db57506001600160401b0381115b156110fc5760405163222d164360e21b815260048101849052602401610892565b92915050565b61110e848484846120f8565b5050505050565b6109958383835f61282f565b611129612a6c565b5f61113261280b565b90505f8061113f84612aa3565b9150915061114c82612543565b611158575050506111da565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b0391821691168061119a5750805b6004835160058111156111af576111af614d21565b036111be576111be8185612e5b565b6111d4826111cf85604001516114c7565b612e85565b50505050505b6111f060015f80516020615ad883398151915255565b50565b61099584848484612eab565b5f61120861280b565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561124157611241614d21565b600381111561125257611252614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6112c882611e7a565b90506001835160038111156112df576112df614d21565b14611300578251604051633b0d540d60e21b815261089291906004016154df565b60048151600581111561131557611315614d21565b0361132b5761132386612ed7565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f6113508961242d565b604001516040518263ffffffff1660e01b81526004016113709190614fed565b606060405180830381865af415801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af91906154f9565b50915091508184146113dc57846040015160405163089938b360e11b815260040161089291815260200190565b806001600160401b031683606001516001600160401b031610806114155750806001600160401b03168560a001516001600160401b0316115b1561143e57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6114d061280b565b600301546110fc906001600160401b03841661552e565b6107068383835f612eab565b61110e8484848461282f565b611507612a6c565b5f61151061280b565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561154957611549614d21565b600381111561155a5761155a614d21565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156115d3576115d3614d21565b146115f4578051604051633b0d540d60e21b815261089291906004016154df565b60046116038260400151611e7a565b51600581111561161557611615614d21565b14611714575f6116248461242d565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016116639190614fed565b606060405180830381865af415801561167e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a291906154f9565b5091509150818460400151146116ce5760405163089938b360e11b815260048101839052602401610892565b806001600160401b03168460c001516001600160401b0316111561171057604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5050505b61171d84612ed7565b505061173560015f80516020615ad883398151915255565b5050565b5f61174261280b565b90506001600160a01b0382166117765760405163caa903f960e01b81526001600160a01b0383166004820152602401610892565b5f8381526006820160205260409020546001600160a01b031633146117bc57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610892565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6117f361280b565b90505f6117ff83611e7a565b519050600481600581111561181657611816614d21565b14611836578060405163170cc93360e21b81526004016108929190614eb3565b5f8381526006830160205260409020546001600160a01b0316331461185b5733611797565b5f838152600683016020526040902054610706906001600160a01b031684612e5b565b610995848484846120bb565b5f80516020615a988339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6118bd8661242d565b604001516040518263ffffffff1660e01b81526004016118dd9190614fed565b6040805180830381865af41580156118f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191b9190615545565b915091508061194157604051632d07135360e01b81528115156004820152602401610892565b5f8281526004840160205260409020805461195b90614e81565b90505f0361197f5760405163089938b360e11b815260048101839052602401610892565b60015f838152600580860160205260409091205460ff16908111156119a6576119a6614d21565b146119d9575f8281526005840160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b5f82815260048401602052604081206119f191614a53565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611a89612a6c565b611a95848484346130d1565b9050611aad60015f80516020615ad883398151915255565b9392505050565b5f611abd61280b565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611af657611af6614d21565b6003811115611b0757611b07614d21565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611b8057611b80614d21565b14158015611ba15750600381516003811115611b9e57611b9e614d21565b14155b15611bc2578051604051633b0d540d60e21b815261089291906004016154df565b5f611bd08260400151611e7a565b905080606001516001600160401b03165f03611c02576040516339b894f960e21b815260048101859052602401610892565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611c7093906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611c8a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cb19190810190614fbc565b6040518263ffffffff1660e01b8152600401611ccd9190614fed565b6020604051808303815f875af1158015611ce9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110e9190614fff565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615a988339815191529190611d5490614e81565b90505f03611d785760405163089938b360e11b815260048101839052602401610892565b60015f838152600580840160205260409091205460ff1690811115611d9f57611d9f614d21565b14611dd2575f8281526005820160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611e099201615568565b6020604051808303815f875af1158015611e25573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107069190614fff565b5f611e52612a6c565b611e5d823334613246565b9050611e7560015f80516020615ad883398151915255565b919050565b611e82614a8a565b5f8281525f80516020615ab8833981519152602052604090819020815160e0810190925280545f80516020615a98833981519152929190829060ff166005811115611ecf57611ecf614d21565b6005811115611ee057611ee0614d21565b8152602001600182018054611ef490614e81565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2090614e81565b8015611f6b5780601f10611f4257610100808354040283529160200191611f6b565b820191905f5260205f20905b815481529060010190602001808311611f4e57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611ffb5760405163caa903f960e01b81526001600160a01b0382166004820152602401610892565b5f61200461280b565b5f8481526007820160205260409020549091506001600160a01b036101009091041633146120325733611797565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615a98833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906120a390869086906155f2565b90815260200160405180910390205491505092915050565b6120c7848484846120f8565b61099557604051631036cf9160e11b815260048101859052602401610892565b6120ef613486565b6111f0816134d1565b5f8061210261280b565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561213b5761213b614d21565b600381111561214c5761214c614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6121c282611e7a565b90506002835160038111156121d9576121d9614d21565b146121fa578251604051633b0d540d60e21b815261089291906004016154df565b60208301516001600160a01b03163314612296575f8281526006850160205260409020546001600160a01b031633146122335733611797565b5f82815260068501602052604090205460a082015161226291600160b01b90046001600160401b031690615294565b6001600160401b03164210156122965760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b6002815160058111156122ab576122ab614d21565b036123cd57600284015460808401516122cd916001600160401b031690615294565b6001600160401b03164210156123015760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b871561231357612311828861256c565b505b5f8981526007850160205260409020805460ff191660031790556060830151608082015161234c9184916123479190615601565b61354b565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561238f84888c613722565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a3151594506124259350505050565b6004815160058111156123e2576123e2614d21565b03612409576123f283878b613722565b506123fc89612ed7565b6001945050505050612425565b805160405163170cc93360e21b81526108929190600401614eb3565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015612491573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124b89190810190615621565b91509150806124da57604051636b2f19e960e01b815260040160405180910390fd5b815115612500578151604051636ba589a560e01b81526004810191909152602401610892565b60208201516001600160a01b03161561253c576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5092915050565b5f8061254d61280b565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156125b7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125de9190810190615621565b915091508061260057604051636b2f19e960e01b815260040160405180910390fd5b5f61260961280b565b6005810154845191925014612637578251604051636ba589a560e01b81526004810191909152602401610892565b60208301516001600160a01b031615612673576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b60208301516001600160a01b0316156126af576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016126ec9190614fed565b6040805180830381865af4158015612706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272a91906156b1565b915091508188146127515760405163089938b360e11b815260048101899052602401610892565b5f8881526006840160205260409020600101546001600160401b0390811690821611156127e2575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2612800565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f8061283961280b565b90505f61284587613910565b905061285087612543565b61285f57600192505050612425565b5f8781526006830160205260409020546001600160a01b031633146128845733611797565b5f87815260068301602052604090205460a08201516128b391600160b01b90046001600160401b031690615294565b6001600160401b03168160c001516001600160401b031610156128fa5760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610892565b5f86156129125761290b888761256c565b9050612930565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f90612955906114c7565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa1580156129be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129e29190614fff565b90506001600160a01b038616612a0e575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612a2d9084906156d4565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615ad8833981519152805460011901612a9d57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612aac614a8a565b5f80516020615a988339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612adf8861242d565b604001516040518263ffffffff1660e01b8152600401612aff9190614fed565b6040805180830381865af4158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190615545565b915091508015612b6457604051632d07135360e01b81528115156004820152602401610892565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612b9b57612b9b614d21565b6005811115612bac57612bac614d21565b8152602001600182018054612bc090614e81565b80601f0160208091040260200160405190810160405280929190818152602001828054612bec90614e81565b8015612c375780601f10612c0e57610100808354040283529160200191612c37565b820191905f5260205f20905b815481529060010190602001808311612c1a57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612ca257612ca2614d21565b14158015612cc35750600181516005811115612cc057612cc0614d21565b14155b15612ce457805160405163170cc93360e21b81526108929190600401614eb3565b600381516005811115612cf957612cf9614d21565b03612d075760048152612d0c565b600581525b836006018160200151604051612d229190615170565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612d6557612d65614d21565b021790555060208201516001820190612d7e90826151c5565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612e2457612e24614d21565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612e6461280b565b5f838152600a82016020526040812080549190559091506109958482613bf5565b6117356001600160a01b03831682613c53565b60015f80516020615ad883398151915255565b612eb78484848461282f565b61099557604051635bff683f60e11b815260048101859052602401610892565b5f612ee061280b565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f1957612f19614d21565b6003811115612f2a57612f2a614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fc77fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fd69190615294565b6001600160401b031642101561300a5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613065575060208201515b5f80613072838886613ce6565b9150915061308b85602001516111cf87606001516114c7565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130db61280b565b600281015490915061ffff600160401b90910481169086161080613104575061271061ffff8616115b1561312857604051635f12e6c360e11b815261ffff86166004820152602401610892565b60028101546001600160401b039081169085161015613164576040516202a06d60e11b81526001600160401b0385166004820152602401610892565b80548310806131765750806001015483115b156131975760405163222d164360e21b815260048101849052602401610892565b825f6131a2826110ae565b90505f6131af8983613d93565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f8061325061280b565b90505f61325c846110ae565b90505f61326887611e7a565b905061327387612543565b613293576040516330efa98b60e01b815260048101889052602401610892565b6002815160058111156132a8576132a8614d21565b146132c957805160405163170cc93360e21b81526108929190600401614eb3565b5f8282608001516132da9190615294565b905083600201600a9054906101000a90046001600160401b0316826040015161330391906152d6565b6001600160401b0316816001600160401b0316111561334057604051636d51fe0560e11b81526001600160401b0382166004820152602401610892565b5f8061334c8a8461354b565b915091505f8a8360405160200161337a92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166134cf57604051631afcd79f60e31b815260040160405180910390fd5b565b6134d9613486565b6134e281614305565b6134ea61431e565b6111f06060820135608083013561350760c0850160a08601614c66565b61351760e0860160c087016156e7565b613528610100870160e08801615700565b61010087013561354061014089016101208a01615016565b88610140013561432e565b5f8281525f80516020615ab8833981519152602052604081206002015481905f80516020615a9883398151915290600160801b90046001600160401b03166135938582614513565b5f61359d8761477d565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613646573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261366d9190810190614fbc565b6040518263ffffffff1660e01b81526004016136899190614fed565b6020604051808303815f875af11580156136a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136c99190614fff565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061372c61280b565b90505f61373c8660400151611e7a565b90505f60038251600581111561375457613754614d21565b1480613772575060048251600581111561377057613770614d21565b145b15613782575060c08101516137bf565b60028251600581111561379757613797614d21565b036137a35750426137bf565b815160405163170cc93360e21b81526108929190600401614eb3565b86608001516001600160401b0316816001600160401b0316116137e7575f9350505050611aad565b600483015460608801515f916001600160a01b031690634f22429f9061380c906114c7565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561388d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138b19190614fff565b90506001600160a01b0387166138c957876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b613918614a8a565b5f8281525f80516020615ab88339815191526020526040808220815160e0810190925280545f80516020615a9883398151915293929190829060ff16600581111561396557613965614d21565b600581111561397657613976614d21565b815260200160018201805461398a90614e81565b80601f01602080910402602001604051908101604052809291908181526020018280546139b690614e81565b8015613a015780601f106139d857610100808354040283529160200191613a01565b820191905f5260205f20905b8154815290600101906020018083116139e457829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115613a6f57613a6f614d21565b14613aa2575f8481526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115613ae757613ae7614d21565b021790555060208201516001820190613b0090826151c5565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f613b9e858261354b565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613c41575f80fd5b505af1158015611323573d5f803e3d5ffd5b80471015613c765760405163cd78605960e01b8152306004820152602401610892565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cbf576040519150601f19603f3d011682016040523d82523d5f602084013e613cc4565b606091505b505090508061070657604051630a12f52160e11b815260040160405180910390fd5b5f805f613cf161280b565b5f86815260088201602052604081208054908290559192509081908015613d85575f87815260068501602052604090205461271090613d3b90600160a01b900461ffff168361552e565b613d4591906154c0565b91508184600a015f8981526020019081526020015f205f828254613d6991906156d4565b90915550613d7990508282615720565b9250613d858984613bf5565b509097909650945050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613dd757604051637fab81e560e01b815260040160405180910390fd5b5f80516020615a9883398151915242613df66060860160408701614c66565b6001600160401b0316111580613e305750613e146202a300426156d4565b613e246060860160408701614c66565b6001600160401b031610155b15613e6a57613e456060850160408601614c66565b604051635879da1360e11b81526001600160401b039091166004820152602401610892565b60038101546001600160401b0390613e8d90600160401b900482168583166156d4565b1115613eb757604051633e1a785160e01b81526001600160401b0384166004820152602401610892565b613ecc613ec76060860186615733565b6147f2565b613edc613ec76080860186615733565b6030613eeb6020860186615747565b905014613f1d57613eff6020850185615747565b6040516326475b2f60e11b8152610892925060040190815260200190565b613f278480615747565b90505f03613f5457613f398480615747565b604051633e08a12560e11b8152600401610892929190615789565b5f60068201613f638680615747565b604051613f719291906155f2565b90815260200160405180910390205414613faa57613f8f8480615747565b60405163a41f772f60e01b8152600401610892929190615789565b613fb4835f614513565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613ff18a80615747565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190614039908b018b615747565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509082525060200161408260608b0160408c01614c66565b6001600160401b0316815260200161409d60608b018b615733565b6140a69061579c565b81526020016140b860808b018b615733565b6140c19061579c565b8152602001886001600160401b03168152506040518263ffffffff1660e01b81526004016140ef91906158c9565b5f60405180830381865af4158015614109573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141309190810190615980565b5f8281526004860160205260409020919350915061414e82826151c5565b50816006840161415e8880615747565b60405161416c9291906155f2565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb906141a8908590600401614fed565b6020604051808303815f875af11580156141c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141e89190614fff565b5f8481526005860160205260409020805460ff19166001179055905061420e8780615747565b5f85815260058701602052604090206001019161422c9190836159c3565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff191690558061428b8880615747565b6040516142999291906155f2565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906142d79190614c66565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b61430d613486565b61431561495b565b6111f081614963565b614326613486565b6134cf614a4b565b614336613486565b5f61433f61280b565b905061ffff86161580614357575061271061ffff8716115b1561437b57604051635f12e6c360e11b815261ffff87166004820152602401610892565b8789111561439f5760405163222d164360e21b8152600481018a9052602401610892565b60ff851615806143b25750600a60ff8616115b156143d55760405163170db35960e31b815260ff86166004820152602401610892565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b0316101561443c576040516202a06d60e11b81526001600160401b0388166004820152602401610892565b835f0361445c5760405163a733007160e01b815260040160405180910390fd5b8161447d57604051632f6bd1db60e01b815260048101839052602401610892565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f80516020615a988339815191525f6001600160401b038084169085161115614547576145408385615601565b9050614554565b6145518484615601565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806145c15750600184015481516145bd916001600160401b0316906156d4565b8210155b156145e9576001600160401b0380841660608301528282526040820151166020820152614608565b82816060018181516145fb9190615294565b6001600160401b03169052505b60608101516146189060646152d6565b602082015160018601546001600160401b0392909216916146439190600160401b900460ff166152d6565b6001600160401b0316101561467c57606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610892565b858160400181815161468e9190615294565b6001600160401b03169052506040810180518691906146ae908390615601565b6001600160401b0316905250600184015460408201516064916146dc91600160401b90910460ff16906152d6565b6001600160401b03161015614715576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610892565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615ab88339815191526020526040812060020180545f80516020615a9883398151915291906008906147c790600160401b90046001600160401b0316615a7c565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b6147ff6020820182614c39565b63ffffffff1615801561481f575061481a6020820182615031565b151590505b15614866576148316020820182614c39565b61483e6020830183615031565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610892565b6148736020820182615031565b90506148826020830183614c39565b63ffffffff16111561489b576148316020820182614c39565b60015b6148ab6020830183615031565b9050811015611735576148c16020830183615031565b6148cc600184615720565b8181106148db576148db615076565b90506020020160208101906148f09190615016565b6001600160a01b03166149066020840184615031565b8381811061491657614916615076565b905060200201602081019061492b9190615016565b6001600160a01b0316101561495357604051630dbc8d5f60e31b815260040160405180910390fd5b60010161489e565b6134cf613486565b61496b613486565b80355f80516020615a9883398151915290815560146149906060840160408501615700565b60ff1611806149af57506149aa6060830160408401615700565b60ff16155b156149e3576149c46060830160408401615700565b604051634a59bbff60e11b815260ff9091166004820152602401610892565b6149f36060830160408401615700565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614a246040830160208401614c66565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612e98613486565b508054614a5f90614e81565b5f825580601f10614a6e575050565b601f0160209004905f5260205f20908101906111f09190614ac7565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614adb575f8155600101614ac8565b5090565b80151581146111f0575f80fd5b803563ffffffff81168114611e75575f80fd5b5f805f60608486031215614b11575f80fd5b833592506020840135614b2381614adf565b9150614b3160408501614aec565b90509250925092565b5f60208284031215614b4a575f80fd5b5035919050565b5f6101608284031215614b62575f80fd5b50919050565b5f8060408385031215614b79575f80fd5b82356001600160401b03811115614b8e575f80fd5b830160808186031215614b9f575f80fd5b9150614bad60208401614aec565b90509250929050565b5f8060408385031215614bc7575f80fd5b82359150614bad60208401614aec565b6001600160a01b03811681146111f0575f80fd5b5f805f8060808587031215614bfe575f80fd5b843593506020850135614c1081614adf565b9250614c1e60408601614aec565b91506060850135614c2e81614bd7565b939692955090935050565b5f60208284031215614c49575f80fd5b611aad82614aec565b6001600160401b03811681146111f0575f80fd5b5f60208284031215614c76575f80fd5b8135611aad81614c52565b5f8060408385031215614c92575f80fd5b823591506020830135614ca481614bd7565b809150509250929050565b803561ffff81168114611e75575f80fd5b5f805f60608486031215614cd2575f80fd5b83356001600160401b03811115614ce7575f80fd5b840160a08187031215614cf8575f80fd5b9250614d0660208501614caf565b91506040840135614d1681614c52565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614d4557614d45614d21565b9052565b5f5b83811015614d63578181015183820152602001614d4b565b50505f910152565b5f8151808452614d82816020860160208601614d49565b601f01601f19169290920160200192915050565b60208152614da8602082018351614d35565b5f602083015160e06040840152614dc3610100840182614d6b565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215614e27575f80fd5b82356001600160401b0380821115614e3d575f80fd5b818501915085601f830112614e50575f80fd5b813581811115614e5e575f80fd5b866020828501011115614e6f575f80fd5b60209290920196919550909350505050565b600181811c90821680614e9557607f821691505b602082108103614b6257634e487b7160e01b5f52602260045260245ffd5b602081016110fc8284614d35565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614ef757614ef7614ec1565b60405290565b604080519081016001600160401b0381118282101715614ef757614ef7614ec1565b604051601f8201601f191681016001600160401b0381118282101715614f4757614f47614ec1565b604052919050565b5f6001600160401b03821115614f6757614f67614ec1565b50601f01601f191660200190565b5f82601f830112614f84575f80fd5b8151614f97614f9282614f4f565b614f1f565b818152846020838601011115614fab575f80fd5b612425826020830160208701614d49565b5f60208284031215614fcc575f80fd5b81516001600160401b03811115614fe1575f80fd5b61242584828501614f75565b602081525f611aad6020830184614d6b565b5f6020828403121561500f575f80fd5b5051919050565b5f60208284031215615026575f80fd5b8135611aad81614bd7565b5f808335601e19843603018112615046575f80fd5b8301803591506001600160401b0382111561505f575f80fd5b6020019150600581901b360382131561371b575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261509e575f80fd5b9190910192915050565b5f82601f8301126150b7575f80fd5b81356150c5614f9282614f4f565b8181528460208386010111156150d9575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615105575f80fd5b61510d614ed5565b82356001600160401b0380821115615123575f80fd5b61512f368387016150a8565b83526020850135915080821115615144575f80fd5b50615151368286016150a8565b602083015250604083013561516581614c52565b604082015292915050565b5f825161509e818460208701614d49565b601f82111561070657805f5260205f20601f840160051c810160208510156151a65750805b601f840160051c820191505b8181101561110e575f81556001016151b2565b81516001600160401b038111156151de576151de614ec1565b6151f2816151ec8454614e81565b84615181565b602080601f831160018114615225575f841561520e5750858301515b5f19600386901b1c1916600185901b178555611323565b5f85815260208120601f198616915b8281101561525357888601518255948401946001909101908401615234565b508582101561527057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561253c5761253c615280565b5f63ffffffff8083168181036152cc576152cc615280565b6001019392505050565b6001600160401b038181168382160280821691908281146152f9576152f9615280565b505092915050565b5f808335601e19843603018112615316575f80fd5b83016020810192503590506001600160401b03811115615334575f80fd5b80360382131561371b575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561541f57848303601f19018952813536889003605e190181126153a6575f80fd5b870160606153b48280615301565b8287526153c48388018284615342565b925050506153d486830183615301565b868303888801526153e6838284615342565b9250505060408083013592506153fb83614c52565b6001600160401b039290921694909101939093529783019790830190600101615381565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561545081614bd7565b6001600160a01b031660608381019190915283013536849003601e19018112615477575f80fd5b83016020810190356001600160401b03811115615492575f80fd5b8060051b36038213156154a3575f80fd5b6080808501526154b760a08501828461536a565b95945050505050565b5f826154da57634e487b7160e01b5f52601260045260245ffd5b500490565b60208101600483106154f3576154f3614d21565b91905290565b5f805f6060848603121561550b575f80fd5b83519250602084015161551d81614c52565b6040850151909250614d1681614c52565b80820281158282048414176110fc576110fc615280565b5f8060408385031215615556575f80fd5b825191506020830151614ca481614adf565b5f60208083525f845461557a81614e81565b806020870152604060018084165f811461559b57600181146155b7576155e4565b60ff19851660408a0152604084151560051b8a010195506155e4565b895f5260205f205f5b858110156155db5781548b82018601529083019088016155c0565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561253c5761253c615280565b5f8060408385031215615632575f80fd5b82516001600160401b0380821115615648575f80fd5b908401906060828703121561565b575f80fd5b615663614ed5565b82518152602083015161567581614bd7565b602082015260408301518281111561568b575f80fd5b61569788828601614f75565b6040830152508094505050506020830151614ca481614adf565b5f80604083850312156156c2575f80fd5b825191506020830151614ca481614c52565b808201808211156110fc576110fc615280565b5f602082840312156156f7575f80fd5b611aad82614caf565b5f60208284031215615710575f80fd5b813560ff81168114611aad575f80fd5b818103818111156110fc576110fc615280565b5f8235603e1983360301811261509e575f80fd5b5f808335601e1984360301811261575c575f80fd5b8301803591506001600160401b03821115615775575f80fd5b60200191503681900382131561371b575f80fd5b602081525f612425602083018486615342565b5f604082360312156157ac575f80fd5b6157b4614efd565b6157bd83614aec565b81526020808401356001600160401b03808211156157d9575f80fd5b9085019036601f8301126157eb575f80fd5b8135818111156157fd576157fd614ec1565b8060051b915061580e848301614f1f565b8181529183018401918481019036841115615827575f80fd5b938501935b83851015615851578435925061584183614bd7565b828252938501939085019061582c565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158be5784516001600160a01b03168252938301936001929092019190830190615895565b509695505050505050565b60208152815160208201525f602083015160e060408401526158ef610100840182614d6b565b90506040840151601f198085840301606086015261590d8383614d6b565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261593d8383615863565b925060a08601519150808584030160c08601525061595b8282615863565b91505060c084015161597860e08501826001600160401b03169052565b509392505050565b5f8060408385031215615991575f80fd5b8251915060208301516001600160401b038111156159ad575f80fd5b6159b985828601614f75565b9150509250929050565b6001600160401b038311156159da576159da614ec1565b6159ee836159e88354614e81565b83615181565b5f601f841160018114615a1f575f8515615a085750838201355b5f19600387901b1c1916600186901b17835561110e565b5f83815260208120601f198716915b82811015615a4e5786850135825560209485019460019092019101615a2e565b5086821015615a6a575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b038083168181036152cc576152cc61528056fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220c6b95b0cfc7fd2728184fa003095efa246be86e199b7ff9c5ccdf31a9ed4ecbd64736f6c63430008190033", + 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. @@ -1954,47 +1954,39 @@ func (it *NativeTokenStakingManagerInitialValidatorCreatedIterator) Close() erro // NativeTokenStakingManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the NativeTokenStakingManager contract. type NativeTokenStakingManagerInitialValidatorCreated struct { ValidationID [32]byte - NodeID common.Hash Weight uint64 + NodeID []byte Raw types.Log // Blockchain specific contextual infos } -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte) (*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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } return &NativeTokenStakingManagerInitialValidatorCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil } -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][]byte) (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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -2026,9 +2018,9 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchInitia }), nil } -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) +// 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 { @@ -2387,57 +2379,49 @@ func (it *NativeTokenStakingManagerValidationPeriodCreatedIterator) Close() erro // NativeTokenStakingManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the NativeTokenStakingManager contract. type NativeTokenStakingManagerValidationPeriodCreated struct { ValidationID [32]byte - NodeID common.Hash RegisterValidationMessageID [32]byte Weight uint64 + NodeID []byte RegistrationExpiry uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (*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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } return &NativeTokenStakingManagerValidationPeriodCreatedIterator{contract: _NativeTokenStakingManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil } -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *NativeTokenStakingManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _NativeTokenStakingManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -2469,9 +2453,9 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerFilterer) WatchValida }), nil } -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, 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 { @@ -3093,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: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212209b053b8f4b1240668e63fcf61c1058f38e82bf86a5ffafe8ef50c8ba2c10a75564736f6c63430008190033", + 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 e8e382790..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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"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: "0x608060405234801561000f575f80fd5b506040516137d63803806137d683398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6136898061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063a3a65e48116100a9578063d588c18f1161006e578063d588c18f14610279578063d5f20ff61461028c578063df93d8de146102ac578063f2fde38b146102ce578063fd7ac5e7146102e1575f80fd5b8063a3a65e4814610229578063b771b3bc1461023c578063bc5fbfec1461024a578063bee0a03f1461025e578063c974d1b614610271575f80fd5b8063732214f8116100ef578063732214f8146101905780638280a25a146101a55780638da5cb5b146101bf57806397fb70d4146102035780639ba96b8614610216575f80fd5b80630322ed981461012b57806320d91b7a14610140578063467ef06f1461015357806360305d6214610166578063715018a614610188575b5f80fd5b61013e6101393660046127d8565b6102f4565b005b61013e61014e366004612807565b610584565b61013e610161366004612855565b610b3f565b61016e601481565b60405163ffffffff90911681526020015b60405180910390f35b61013e610b4d565b6101975f81565b60405190815260200161017f565b6101ad603081565b60405160ff909116815260200161017f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b61013e6102113660046127d8565b610b60565b610197610224366004612884565b610b75565b61013e610237366004612855565b610b91565b6101eb6005600160991b0181565b6101975f8051602061361483398151915281565b61013e61026c3660046127d8565b610d87565b6101ad601481565b61013e6102873660046128dd565b610ec3565b61029f61029a3660046127d8565b610fd1565b60405161017f919061299a565b6102b66202a30081565b6040516001600160401b03909116815260200161017f565b61013e6102dc366004612a1a565b611120565b6101976102ef366004612a3c565b61115d565b5f8181525f805160206136348339815191526020526040808220815160e0810190925280545f8051602061361483398151915293929190829060ff16600581111561034157610341612919565b600581111561035257610352612919565b815260200160018201805461036690612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461039290612aa7565b80156103dd5780601f106103b4576101008083540402835291602001916103dd565b820191905f5260205f20905b8154815290600101906020018083116103c057829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561044857610448612919565b14610484575f8381526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156104fb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105229190810190612bf0565b6040518263ffffffff1660e01b815260040161053e9190612c21565b6020604051808303815f875af115801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e9190612c33565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136148339815191529060ff16156105d657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610619573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063d9190612c33565b836020013514610666576040516372b0a7e760e11b81526020840135600482015260240161047b565b306106776060850160408601612a1a565b6001600160a01b0316146106ba576106956060840160408501612a1a565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161047b565b5f6106c86060850185612c4a565b905090505f805b828163ffffffff161015610930575f6106eb6060880188612c4a565b8363ffffffff1681811061070157610701612c8f565b90506020028101906107139190612ca3565b61071c90612d0e565b80516040519192505f91600688019161073491612d87565b9081526020016040518091039020541461076457805160405163a41f772f60e01b815261047b9190600401612c21565b5f6002885f01358460405160200161079392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152908290526107ad91612d87565b602060405180830381855afa1580156107c8573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906107eb9190612c33565b90508086600601835f01516040516108039190612d87565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108439082612de3565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff191690556108c39085612eb6565b82516040519195506108d491612d87565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a350508061092990612ed6565b90506106cf565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384168102919091179091556001840154606491610978910460ff1683612ef8565b6001600160401b031610156109ab57604051633e1a785160e01b81526001600160401b038216600482015260240161047b565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846109cf876111b8565b604001516040518263ffffffff1660e01b81526004016109ef9190612c21565b602060405180830381865af4158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e9190612c33565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610a689190613046565b5f60405180830381865af4158015610a82573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610aa99190810190612bf0565b90505f600282604051610abc9190612d87565b602060405180830381855afa158015610ad7573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610afa9190612c33565b9050828114610b265760405163baaea89d60e01b8152600481018290526024810184905260440161047b565b5050506007909201805460ff1916600117905550505050565b610b48816112ce565b505050565b610b55611686565b610b5e5f6116e1565b565b610b68611686565b610b7181611751565b5050565b5f610b7e611686565b610b888383611a36565b90505b92915050565b5f805160206136148339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610bc4866111b8565b604001516040518263ffffffff1660e01b8152600401610be49190612c21565b6040805180830381865af4158015610bfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2291906130e9565b9150915080610c4857604051632d07135360e01b8152811515600482015260240161047b565b5f82815260048401602052604090208054610c6290612aa7565b90505f03610c865760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580860160205260409091205460ff1690811115610cad57610cad612919565b14610ce0575f8281526005840160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b5f8281526004840160205260408120610cf89161274c565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136148339815191529190610dce90612aa7565b90505f03610df25760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580840160205260409091205460ff1690811115610e1957610e19612919565b14610e4c575f8281526005820160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610e83920161310a565b6020604051808303815f875af1158015610e9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b489190612c33565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610f075750825b90505f826001600160401b03166001148015610f225750303b155b905081158015610f30575080155b15610f4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f7857845460ff60401b1916600160401b1785555b610f828787611fa8565b8315610fc857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610fd9612783565b5f8281525f80516020613634833981519152602052604090819020815160e0810190925280545f80516020613614833981519152929190829060ff16600581111561102657611026612919565b600581111561103757611037612919565b815260200160018201805461104b90612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461107790612aa7565b80156110c25780601f10611099576101008083540402835291602001916110c2565b820191905f5260205f20905b8154815290600101906020018083116110a557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b611128611686565b6001600160a01b03811661115157604051631e4fbdf760e01b81525f600482015260240161047b565b61115a816116e1565b50565b6040515f905f80516020613614833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906111a09086908690613194565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561121c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261124391908101906131a3565b915091508061126557604051636b2f19e960e01b815260040160405180910390fd5b81511561128b578151604051636ba589a560e01b8152600481019190915260240161047b565b60208201516001600160a01b0316156112c7576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161047b565b5092915050565b5f6112d7612783565b5f805160206136148339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61130a886111b8565b604001516040518263ffffffff1660e01b815260040161132a9190612c21565b6040805180830381865af4158015611344573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136891906130e9565b91509150801561138f57604051632d07135360e01b8152811515600482015260240161047b565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156113c6576113c6612919565b60058111156113d7576113d7612919565b81526020016001820180546113eb90612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461141790612aa7565b80156114625780601f1061143957610100808354040283529160200191611462565b820191905f5260205f20905b81548152906001019060200180831161144557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156114cd576114cd612919565b141580156114ee57506001815160058111156114eb576114eb612919565b14155b1561150f57805160405163170cc93360e21b815261047b9190600401612adf565b60038151600581111561152457611524612919565b036115325760048152611537565b600581525b83600601816020015160405161154d9190612d87565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561159057611590612919565b0217905550602082015160018201906115a99082612de3565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558051600581111561164f5761164f612919565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b336116b87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b5e5760405163118cdaa760e01b815233600482015260240161047b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611759612783565b5f8281525f805160206136348339815191526020526040808220815160e0810190925280545f8051602061361483398151915293929190829060ff1660058111156117a6576117a6612919565b60058111156117b7576117b7612919565b81526020016001820180546117cb90612aa7565b80601f01602080910402602001604051908101604052809291908181526020018280546117f790612aa7565b80156118425780601f1061181957610100808354040283529160200191611842565b820191905f5260205f20905b81548152906001019060200180831161182557829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a090910152909150815160058111156118b0576118b0612919565b146118e3575f8481526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff191690600190849081111561192857611928612919565b0217905550602082015160018201906119419082612de3565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6119df8582611fc2565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611a7a57604051637fab81e560e01b815260040160405180910390fd5b5f8051602061361483398151915242611a996060860160408701613230565b6001600160401b0316111580611ad35750611ab76202a30042613249565b611ac76060860160408701613230565b6001600160401b031610155b15611b0d57611ae86060850160408601613230565b604051635879da1360e11b81526001600160401b03909116600482015260240161047b565b60038101546001600160401b0390611b3090600160401b90048216858316613249565b1115611b5a57604051633e1a785160e01b81526001600160401b038416600482015260240161047b565b611b6f611b6a606086018661325c565b612199565b611b7f611b6a608086018661325c565b6030611b8e6020860186613270565b905014611bc057611ba26020850185613270565b6040516326475b2f60e11b815261047b925060040190815260200190565b611bca8480613270565b90505f03611bf757611bdc8480613270565b604051633e08a12560e11b815260040161047b9291906132b2565b5f60068201611c068680613270565b604051611c14929190613194565b90815260200160405180910390205414611c4d57611c328480613270565b60405163a41f772f60e01b815260040161047b9291906132b2565b611c57835f612302565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101611c948a80613270565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190611cdc908b018b613270565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001611d2560608b0160408c01613230565b6001600160401b03168152602001611d4060608b018b61325c565b611d49906132c5565b8152602001611d5b60808b018b61325c565b611d64906132c5565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611d9291906133f2565b5f60405180830381865af4158015611dac573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dd391908101906134a9565b5f82815260048601602052604090209193509150611df18282612de3565b508160068401611e018880613270565b604051611e0f929190613194565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611e4b908590600401612c21565b6020604051808303815f875af1158015611e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8b9190612c33565b5f8481526005860160205260409020805460ff191660011790559050611eb18780613270565b5f858152600587016020526040902060010191611ecf9190836134ec565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580611f2e8880613270565b604051611f3c929190613194565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b6040016020810190611f7a9190613230565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b611fb061256c565b611fb9826125b5565b610b71816125ce565b5f8281525f80516020613634833981519152602052604081206002015481905f8051602061361483398151915290600160801b90046001600160401b031661200a8582612302565b5f612014876125df565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156120bd573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120e49190810190612bf0565b6040518263ffffffff1660e01b81526004016121009190612c21565b6020604051808303815f875af115801561211c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121409190612c33565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b6121a66020820182612855565b63ffffffff161580156121c657506121c16020820182612c4a565b151590505b1561220d576121d86020820182612855565b6121e56020830183612c4a565b60405163c08a0f1d60e01b815263ffffffff909316600484015260248301525060440161047b565b61221a6020820182612c4a565b90506122296020830183612855565b63ffffffff161115612242576121d86020820182612855565b60015b6122526020830183612c4a565b9050811015610b71576122686020830183612c4a565b6122736001846135a5565b81811061228257612282612c8f565b90506020020160208101906122979190612a1a565b6001600160a01b03166122ad6020840184612c4a565b838181106122bd576122bd612c8f565b90506020020160208101906122d29190612a1a565b6001600160a01b031610156122fa57604051630dbc8d5f60e31b815260040160405180910390fd5b600101612245565b5f805160206136148339815191525f6001600160401b0380841690851611156123365761232f83856135b8565b9050612343565b61234084846135b8565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806123b05750600184015481516123ac916001600160401b031690613249565b8210155b156123d8576001600160401b03808416606083015282825260408201511660208201526123f7565b82816060018181516123ea9190612eb6565b6001600160401b03169052505b6060810151612407906064612ef8565b602082015160018601546001600160401b0392909216916124329190600160401b900460ff16612ef8565b6001600160401b0316101561246b57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161047b565b858160400181815161247d9190612eb6565b6001600160401b031690525060408101805186919061249d9083906135b8565b6001600160401b0316905250600184015460408201516064916124cb91600160401b90910460ff1690612ef8565b6001600160401b03161015612504576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161047b565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b5e57604051631afcd79f60e31b815260040160405180910390fd5b6125bd61256c565b6125c5612654565b61115a8161265c565b6125d661256c565b61115a81612744565b5f8181525f805160206136348339815191526020526040812060020180545f80516020613614833981519152919060089061262990600160401b90046001600160401b03166135d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610b5e61256c565b61266461256c565b80355f80516020613614833981519152908155601461268960608401604085016135f3565b60ff1611806126a857506126a360608301604084016135f3565b60ff16155b156126dc576126bd60608301604084016135f3565b604051634a59bbff60e11b815260ff909116600482015260240161047b565b6126ec60608301604084016135f3565b60018201805460ff92909216600160401b0260ff60401b1990921691909117905561271d6040830160208401613230565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b61112861256c565b50805461275890612aa7565b5f825580601f10612767575050565b601f0160209004905f5260205f209081019061115a91906127c0565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b808211156127d4575f81556001016127c1565b5090565b5f602082840312156127e8575f80fd5b5035919050565b803563ffffffff81168114612802575f80fd5b919050565b5f8060408385031215612818575f80fd5b82356001600160401b0381111561282d575f80fd5b83016080818603121561283e575f80fd5b915061284c602084016127ef565b90509250929050565b5f60208284031215612865575f80fd5b610b88826127ef565b80356001600160401b0381168114612802575f80fd5b5f8060408385031215612895575f80fd5b82356001600160401b038111156128aa575f80fd5b830160a081860312156128bb575f80fd5b915061284c6020840161286e565b6001600160a01b038116811461115a575f80fd5b5f8082840360808112156128ef575f80fd5b60608112156128fc575f80fd5b50829150606083013561290e816128c9565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061294957634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b8381101561296757818101518382015260200161294f565b50505f910152565b5f815180845261298681602086016020860161294d565b601f01601f19169290920160200192915050565b602081526129ac60208201835161292d565b5f602083015160e060408401526129c761010084018261296f565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f60208284031215612a2a575f80fd5b8135612a35816128c9565b9392505050565b5f8060208385031215612a4d575f80fd5b82356001600160401b0380821115612a63575f80fd5b818501915085601f830112612a76575f80fd5b813581811115612a84575f80fd5b866020828501011115612a95575f80fd5b60209290920196919550909350505050565b600181811c90821680612abb57607f821691505b602082108103612ad957634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610b8b828461292d565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612b2357612b23612aed565b60405290565b604080519081016001600160401b0381118282101715612b2357612b23612aed565b604051601f8201601f191681016001600160401b0381118282101715612b7357612b73612aed565b604052919050565b5f6001600160401b03821115612b9357612b93612aed565b50601f01601f191660200190565b5f82601f830112612bb0575f80fd5b8151612bc3612bbe82612b7b565b612b4b565b818152846020838601011115612bd7575f80fd5b612be882602083016020870161294d565b949350505050565b5f60208284031215612c00575f80fd5b81516001600160401b03811115612c15575f80fd5b612be884828501612ba1565b602081525f610b88602083018461296f565b5f60208284031215612c43575f80fd5b5051919050565b5f808335601e19843603018112612c5f575f80fd5b8301803591506001600160401b03821115612c78575f80fd5b6020019150600581901b3603821315612192575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612cb7575f80fd5b9190910192915050565b5f82601f830112612cd0575f80fd5b8135612cde612bbe82612b7b565b818152846020838601011115612cf2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612d1e575f80fd5b612d26612b01565b82356001600160401b0380821115612d3c575f80fd5b612d4836838701612cc1565b83526020850135915080821115612d5d575f80fd5b50612d6a36828601612cc1565b602083015250612d7c6040840161286e565b604082015292915050565b5f8251612cb781846020870161294d565b601f821115610b4857805f5260205f20601f840160051c81016020851015612dbd5750805b601f840160051c820191505b81811015612ddc575f8155600101612dc9565b5050505050565b81516001600160401b03811115612dfc57612dfc612aed565b612e1081612e0a8454612aa7565b84612d98565b602080601f831160018114612e43575f8415612e2c5750858301515b5f19600386901b1c1916600185901b178555612e9a565b5f85815260208120601f198616915b82811015612e7157888601518255948401946001909101908401612e52565b5085821015612e8e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156112c7576112c7612ea2565b5f63ffffffff808316818103612eee57612eee612ea2565b6001019392505050565b6001600160401b03818116838216028082169190828114612f1b57612f1b612ea2565b505092915050565b5f808335601e19843603018112612f38575f80fd5b83016020810192503590506001600160401b03811115612f56575f80fd5b803603821315612192575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561303957848303601f19018952813536889003605e19018112612fc8575f80fd5b87016060612fd68280612f23565b828752612fe68388018284612f64565b92505050612ff686830183612f23565b86830388880152613008838284612f64565b9250505060406001600160401b0361302182850161286e565b16950194909452509783019790830190600101612fa3565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561306a816128c9565b6001600160a01b031660608381019190915283013536849003601e19018112613091575f80fd5b83016020810190356001600160401b038111156130ac575f80fd5b8060051b36038213156130bd575f80fd5b6080808501526130d160a085018284612f8c565b95945050505050565b80518015158114612802575f80fd5b5f80604083850312156130fa575f80fd5b8251915061284c602084016130da565b5f60208083525f845461311c81612aa7565b806020870152604060018084165f811461313d576001811461315957613186565b60ff19851660408a0152604084151560051b8a01019550613186565b895f5260205f205f5b8581101561317d5781548b8201860152908301908801613162565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b5f80604083850312156131b4575f80fd5b82516001600160401b03808211156131ca575f80fd5b90840190606082870312156131dd575f80fd5b6131e5612b01565b8251815260208301516131f7816128c9565b602082015260408301518281111561320d575f80fd5b61321988828601612ba1565b604083015250935061284c915050602084016130da565b5f60208284031215613240575f80fd5b610b888261286e565b80820180821115610b8b57610b8b612ea2565b5f8235603e19833603018112612cb7575f80fd5b5f808335601e19843603018112613285575f80fd5b8301803591506001600160401b0382111561329e575f80fd5b602001915036819003821315612192575f80fd5b602081525f612be8602083018486612f64565b5f604082360312156132d5575f80fd5b6132dd612b29565b6132e6836127ef565b81526020808401356001600160401b0380821115613302575f80fd5b9085019036601f830112613314575f80fd5b81358181111561332657613326612aed565b8060051b9150613337848301612b4b565b8181529183018401918481019036841115613350575f80fd5b938501935b8385101561337a578435925061336a836128c9565b8282529385019390850190613355565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156133e75784516001600160a01b031682529383019360019290920191908301906133be565b509695505050505050565b60208152815160208201525f602083015160e0604084015261341861010084018261296f565b90506040840151601f1980858403016060860152613436838361296f565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152613466838361338c565b925060a08601519150808584030160c086015250613484828261338c565b91505060c08401516134a160e08501826001600160401b03169052565b509392505050565b5f80604083850312156134ba575f80fd5b8251915060208301516001600160401b038111156134d6575f80fd5b6134e285828601612ba1565b9150509250929050565b6001600160401b0383111561350357613503612aed565b613517836135118354612aa7565b83612d98565b5f601f841160018114613548575f85156135315750838201355b5f19600387901b1c1916600186901b178355612ddc565b5f83815260208120601f198716915b828110156135775786850135825560209485019460019092019101613557565b5086821015613593575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610b8b57610b8b612ea2565b6001600160401b038281168282160390808211156112c7576112c7612ea2565b5f6001600160401b03808316818103612eee57612eee612ea2565b5f60208284031215613603575f80fd5b813560ff81168114612a35575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a2646970667358221220ebc25064c3cd73a57273c4ba714e3c512faf23351ee58c0e2dc9fb2f791944eb64736f6c63430008190033", + 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. @@ -854,47 +854,39 @@ func (it *PoAValidatorManagerInitialValidatorCreatedIterator) Close() error { // PoAValidatorManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the PoAValidatorManager contract. type PoAValidatorManagerInitialValidatorCreated struct { ValidationID [32]byte - NodeID common.Hash Weight uint64 + NodeID []byte Raw types.Log // Blockchain specific contextual infos } -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte) (*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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } return &PoAValidatorManagerInitialValidatorCreatedIterator{contract: _PoAValidatorManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil } -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][]byte) (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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -926,9 +918,9 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchInitialValidatorCr }), nil } -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) +// 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 { @@ -1295,57 +1287,49 @@ func (it *PoAValidatorManagerValidationPeriodCreatedIterator) Close() error { // PoAValidatorManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the PoAValidatorManager contract. type PoAValidatorManagerValidationPeriodCreated struct { ValidationID [32]byte - NodeID common.Hash RegisterValidationMessageID [32]byte Weight uint64 + NodeID []byte RegistrationExpiry uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (*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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _PoAValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } return &PoAValidatorManagerValidationPeriodCreatedIterator{contract: _PoAValidatorManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil } -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *PoAValidatorManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _PoAValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1377,9 +1361,9 @@ func (_PoAValidatorManager *PoAValidatorManagerFilterer) WatchValidationPeriodCr }), nil } -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, 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 { @@ -2001,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: "0x61217b610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b1575f3560e01c8063854a893f11610079578063854a893f146101b257806387418b8e1461020f5780639b83546514610222578063a699c13514610242578063e1d68f3014610255578063eb97ce5114610268575f80fd5b8063021de88f146100b5578063088c2463146100e25780634d8478841461011257806350782b0f146101335780637f7c427a1461016b575b5f80fd5b6100c86100c33660046118a9565b610289565b604080519283529015156020830152015b60405180910390f35b6100f56100f03660046118a9565b61044a565b604080519283526001600160401b039091166020830152016100d9565b6101256101203660046118a9565b61063b565b6040519081526020016100d9565b6101466101413660046118a9565b6107c8565b604080519384526001600160401b0392831660208501529116908201526060016100d9565b6101a56101793660046118e2565b604080515f60208201819052602282015260268082019390935281518082039093018352604601905290565b6040516100d99190611946565b6101a56101c036600461197a565b604080515f6020820152600360e01b602282015260268101949094526001600160c01b031960c093841b811660468601529190921b16604e830152805180830360360181526056909201905290565b6101a561021d3660046119eb565b610a1e565b6102356102303660046118a9565b610b60565b6040516100d99190611bb4565b6101a5610250366004611c6b565b6114ab565b6101a5610263366004611c9d565b6114ef565b61027b610276366004611d80565b611525565b6040516100d9929190611e7c565b5f8082516027146102c457825160405163cc92daa160e01b815263ffffffff9091166004820152602760248201526044015b60405180910390fd5b5f805b6002811015610313576102db816001611ea8565b6102e6906008611ebb565b61ffff168582815181106102fc576102fc611ed2565b016020015160f81c901b91909117906001016102c7565b5061ffff81161561033d5760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561039857610354816003611ea8565b61035f906008611ebb565b63ffffffff1686610371836002611ee6565b8151811061038157610381611ed2565b016020015160f81c901b9190911790600101610340565b5063ffffffff81166002146103c057604051635b60892f60e01b815260040160405180910390fd5b5f805b6020811015610415576103d781601f611ea8565b6103e2906008611ebb565b876103ee836006611ee6565b815181106103fe576103fe611ed2565b016020015160f81c901b91909117906001016103c3565b505f8660268151811061042a5761042a611ed2565b016020015191976001600160f81b03199092161515965090945050505050565b5f808251602e1461048057825160405163cc92daa160e01b815263ffffffff9091166004820152602e60248201526044016102bb565b5f805b60028110156104cf57610497816001611ea8565b6104a2906008611ebb565b61ffff168582815181106104b8576104b8611ed2565b016020015160f81c901b9190911790600101610483565b5061ffff8116156104f95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561055457610510816003611ea8565b61051b906008611ebb565b63ffffffff168661052d836002611ee6565b8151811061053d5761053d611ed2565b016020015160f81c901b91909117906001016104fc565b5063ffffffff81161561057a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156105cf5761059181601f611ea8565b61059c906008611ebb565b876105a8836006611ee6565b815181106105b8576105b8611ed2565b016020015160f81c901b919091179060010161057d565b505f805b600881101561062e576105e7816007611ea8565b6105f2906008611ebb565b6001600160401b031688610607836026611ee6565b8151811061061757610617611ed2565b016020015160f81c901b91909117906001016105d3565b5090969095509350505050565b5f815160261461067057815160405163cc92daa160e01b815263ffffffff9091166004820152602660248201526044016102bb565b5f805b60028110156106bf57610687816001611ea8565b610692906008611ebb565b61ffff168482815181106106a8576106a8611ed2565b016020015160f81c901b9190911790600101610673565b5061ffff8116156106e95760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b600481101561074457610700816003611ea8565b61070b906008611ebb565b63ffffffff168561071d836002611ee6565b8151811061072d5761072d611ed2565b016020015160f81c901b91909117906001016106ec565b5063ffffffff81161561076a57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156107bf5761078181601f611ea8565b61078c906008611ebb565b86610798836006611ee6565b815181106107a8576107a8611ed2565b016020015160f81c901b919091179060010161076d565b50949350505050565b5f805f83516036146107ff57835160405163cc92daa160e01b815263ffffffff9091166004820152603660248201526044016102bb565b5f805b600281101561084e57610816816001611ea8565b610821906008611ebb565b61ffff1686828151811061083757610837611ed2565b016020015160f81c901b9190911790600101610802565b5061ffff8116156108785760405163407b587360e01b815261ffff821660048201526024016102bb565b5f805b60048110156108d35761088f816003611ea8565b61089a906008611ebb565b63ffffffff16876108ac836002611ee6565b815181106108bc576108bc611ed2565b016020015160f81c901b919091179060010161087b565b5063ffffffff81166003146108fb57604051635b60892f60e01b815260040160405180910390fd5b5f805b60208110156109505761091281601f611ea8565b61091d906008611ebb565b88610929836006611ee6565b8151811061093957610939611ed2565b016020015160f81c901b91909117906001016108fe565b505f805b60088110156109af57610968816007611ea8565b610973906008611ebb565b6001600160401b031689610988836026611ee6565b8151811061099857610998611ed2565b016020015160f81c901b9190911790600101610954565b505f805b6008811015610a0e576109c7816007611ea8565b6109d2906008611ebb565b6001600160401b03168a6109e783602e611ee6565b815181106109f7576109f7611ed2565b016020015160f81c901b91909117906001016109b3565b5091989097509095509350505050565b80516020808301516040808501516060868101515192515f95810186905260228101969096526042860193909352600560e21b60628601526bffffffffffffffffffffffff1990831b16606685015260e01b6001600160e01b031916607a84015291607e0160405160208183030381529060405290505f5b836060015151811015610b59578184606001518281518110610aba57610aba611ed2565b60200260200101515f01515185606001518381518110610adc57610adc611ed2565b60200260200101515f015186606001518481518110610afd57610afd611ed2565b60200260200101516020015187606001518581518110610b1f57610b1f611ed2565b602002602001015160400151604051602001610b3f959493929190611ef9565b60408051601f198184030181529190529150600101610a96565b5092915050565b610b68611712565b5f610b71611712565b5f805b6002811015610bcf57610b88816001611ea8565b610b93906008611ebb565b61ffff1686610ba863ffffffff871684611ee6565b81518110610bb857610bb8611ed2565b016020015160f81c901b9190911790600101610b74565b5061ffff811615610bf95760405163407b587360e01b815261ffff821660048201526024016102bb565b610c04600284611f72565b9250505f805b6004811015610c6957610c1e816003611ea8565b610c29906008611ebb565b63ffffffff16868563ffffffff1683610c429190611ee6565b81518110610c5257610c52611ed2565b016020015160f81c901b9190911790600101610c0a565b5063ffffffff8116600114610c9157604051635b60892f60e01b815260040160405180910390fd5b610c9c600484611f72565b9250505f805b6020811015610cf957610cb681601f611ea8565b610cc1906008611ebb565b86610cd263ffffffff871684611ee6565b81518110610ce257610ce2611ed2565b016020015160f81c901b9190911790600101610ca2565b50808252610d08602084611f72565b9250505f805b6004811015610d6d57610d22816003611ea8565b610d2d906008611ebb565b63ffffffff16868563ffffffff1683610d469190611ee6565b81518110610d5657610d56611ed2565b016020015160f81c901b9190911790600101610d0e565b50610d79600484611f72565b92505f8163ffffffff166001600160401b03811115610d9a57610d9a61176c565b6040519080825280601f01601f191660200182016040528015610dc4576020820181803683370190505b5090505f5b8263ffffffff16811015610e335786610de863ffffffff871683611ee6565b81518110610df857610df8611ed2565b602001015160f81c60f81b828281518110610e1557610e15611ed2565b60200101906001600160f81b03191690815f1a905350600101610dc9565b5060208301819052610e458285611f72565b604080516030808252606082019092529195505f92506020820181803683370190505090505f5b6030811015610ed15786610e8663ffffffff871683611ee6565b81518110610e9657610e96611ed2565b602001015160f81c60f81b828281518110610eb357610eb3611ed2565b60200101906001600160f81b03191690815f1a905350600101610e6c565b5060408301819052610ee4603085611f72565b9350505f805b6008811015610f4a57610efe816007611ea8565b610f09906008611ebb565b6001600160401b031687610f2363ffffffff881684611ee6565b81518110610f3357610f33611ed2565b016020015160f81c901b9190911790600101610eea565b506001600160401b0381166060840152610f65600885611f72565b9350505f805f5b6004811015610fcb57610f80816003611ea8565b610f8b906008611ebb565b63ffffffff16888763ffffffff1683610fa49190611ee6565b81518110610fb457610fb4611ed2565b016020015160f81c901b9190911790600101610f6c565b50610fd7600486611f72565b94505f5b600481101561103a57610fef816003611ea8565b610ffa906008611ebb565b63ffffffff16888763ffffffff16836110139190611ee6565b8151811061102357611023611ed2565b016020015160f81c901b9290921791600101610fdb565b50611046600486611f72565b94505f8263ffffffff166001600160401b038111156110675761106761176c565b604051908082528060200260200182016040528015611090578160200160208202803683370190505b5090505f5b8363ffffffff16811015611178576040805160148082528183019092525f916020820181803683370190505090505f5b601481101561112a578a6110df63ffffffff8b1683611ee6565b815181106110ef576110ef611ed2565b602001015160f81c60f81b82828151811061110c5761110c611ed2565b60200101906001600160f81b03191690815f1a9053506001016110c5565b505f601482015190508084848151811061114657611146611ed2565b6001600160a01b039092166020928302919091019091015261116960148a611f72565b98505050806001019050611095565b506040805180820190915263ffffffff9092168252602082015260808401525f80805b60048110156111fa576111af816003611ea8565b6111ba906008611ebb565b63ffffffff16898863ffffffff16836111d39190611ee6565b815181106111e3576111e3611ed2565b016020015160f81c901b919091179060010161119b565b50611206600487611f72565b95505f5b60048110156112695761121e816003611ea8565b611229906008611ebb565b63ffffffff16898863ffffffff16836112429190611ee6565b8151811061125257611252611ed2565b016020015160f81c901b929092179160010161120a565b50611275600487611f72565b95505f8263ffffffff166001600160401b038111156112965761129661176c565b6040519080825280602002602001820160405280156112bf578160200160208202803683370190505b5090505f5b8363ffffffff168110156113a7576040805160148082528183019092525f916020820181803683370190505090505f5b6014811015611359578b61130e63ffffffff8c1683611ee6565b8151811061131e5761131e611ed2565b602001015160f81c60f81b82828151811061133b5761133b611ed2565b60200101906001600160f81b03191690815f1a9053506001016112f4565b505f601482015190508084848151811061137557611375611ed2565b6001600160a01b039092166020928302919091019091015261139860148b611f72565b995050508060010190506112c4565b506040805180820190915263ffffffff9092168252602082015260a08501525f6113d18284611f72565b6113dc906014611f8f565b6113e785607a611f72565b6113f19190611f72565b90508063ffffffff1688511461142d57875160405163cc92daa160e01b815263ffffffff918216600482015290821660248201526044016102bb565b5f805b600881101561149057611444816007611ea8565b61144f906008611ebb565b6001600160401b03168a61146963ffffffff8b1684611ee6565b8151811061147957611479611ed2565b016020015160f81c901b9190911790600101611430565b506001600160401b031660c086015250929695505050505050565b6040515f6020820152600160e11b60228201526026810183905281151560f81b60468201526060906047015b60405160208183030381529060405290505b92915050565b6040515f602082018190526022820152602681018390526001600160c01b031960c083901b166046820152606090604e016114d7565b5f606082604001515160301461154e5760405163180ffa0d60e01b815260040160405180910390fd5b82516020808501518051604080880151606089015160808a01518051908701515193515f9861158f988a986001989297929690959094909390929101611fb7565b60405160208183030381529060405290505f5b84608001516020015151811015611601578185608001516020015182815181106115ce576115ce611ed2565b60200260200101516040516020016115e7929190612071565b60408051601f1981840301815291905291506001016115a2565b5060a08401518051602091820151516040516116219385939291016120a7565b60405160208183030381529060405290505f5b8460a00151602001515181101561169357818560a0015160200151828151811061166057611660611ed2565b6020026020010151604051602001611679929190612071565b60408051601f198184030181529190529150600101611634565b5060c08401516040516116aa9183916020016120e2565b60405160208183030381529060405290506002816040516116cb9190612113565b602060405180830381855afa1580156116e6573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611709919061212e565b94909350915050565b6040805160e0810182525f808252606060208084018290528385018290528184018390528451808601865283815280820183905260808501528451808601909552918452908301529060a082019081525f60209091015290565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156117a2576117a261176c565b60405290565b604051606081016001600160401b03811182821017156117a2576117a261176c565b604080519081016001600160401b03811182821017156117a2576117a261176c565b60405160e081016001600160401b03811182821017156117a2576117a261176c565b604051601f8201601f191681016001600160401b03811182821017156118365761183661176c565b604052919050565b5f82601f83011261184d575f80fd5b81356001600160401b038111156118665761186661176c565b611879601f8201601f191660200161180e565b81815284602083860101111561188d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156118b9575f80fd5b81356001600160401b038111156118ce575f80fd5b6118da8482850161183e565b949350505050565b5f602082840312156118f2575f80fd5b5035919050565b5f5b838110156119135781810151838201526020016118fb565b50505f910152565b5f81518084526119328160208601602086016118f9565b601f01601f19169290920160200192915050565b602081525f611958602083018461191b565b9392505050565b80356001600160401b0381168114611975575f80fd5b919050565b5f805f6060848603121561198c575f80fd5b8335925061199c6020850161195f565b91506119aa6040850161195f565b90509250925092565b80356001600160a01b0381168114611975575f80fd5b5f6001600160401b038211156119e1576119e161176c565b5060051b60200190565b5f60208083850312156119fc575f80fd5b82356001600160401b0380821115611a12575f80fd5b9084019060808287031215611a25575f80fd5b611a2d611780565b823581528383013584820152611a45604084016119b3565b604082015260608084013583811115611a5c575f80fd5b80850194505087601f850112611a70575f80fd5b8335611a83611a7e826119c9565b61180e565b81815260059190911b8501860190868101908a831115611aa1575f80fd5b8787015b83811015611b3a57803587811115611abb575f80fd5b8801808d03601f1901861315611acf575f80fd5b611ad76117a8565b8a82013589811115611ae7575f80fd5b611af58f8d8386010161183e565b825250604082013589811115611b09575f80fd5b611b178f8d8386010161183e565b8c83015250611b2787830161195f565b6040820152845250918801918801611aa5565b506060850152509198975050505050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015611ba95784516001600160a01b03168252938301936001929092019190830190611b80565b509695505050505050565b60208152815160208201525f602083015160e06040840152611bda61010084018261191b565b90506040840151601f1980858403016060860152611bf8838361191b565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152611c288383611b4e565b925060a08601519150808584030160c086015250611c468282611b4e565b91505060c0840151611c6360e08501826001600160401b03169052565b509392505050565b5f8060408385031215611c7c575f80fd5b8235915060208301358015158114611c92575f80fd5b809150509250929050565b5f8060408385031215611cae575f80fd5b82359150611cbe6020840161195f565b90509250929050565b5f60408284031215611cd7575f80fd5b611cdf6117ca565b9050813563ffffffff81168114611cf4575f80fd5b81526020828101356001600160401b03811115611d0f575f80fd5b8301601f81018513611d1f575f80fd5b8035611d2d611a7e826119c9565b81815260059190911b82018301908381019087831115611d4b575f80fd5b928401925b82841015611d7057611d61846119b3565b82529284019290840190611d50565b8085870152505050505092915050565b5f60208284031215611d90575f80fd5b81356001600160401b0380821115611da6575f80fd5b9083019060e08286031215611db9575f80fd5b611dc16117ec565b82358152602083013582811115611dd6575f80fd5b611de28782860161183e565b602083015250604083013582811115611df9575f80fd5b611e058782860161183e565b604083015250611e176060840161195f565b6060820152608083013582811115611e2d575f80fd5b611e3987828601611cc7565b60808301525060a083013582811115611e50575f80fd5b611e5c87828601611cc7565b60a083015250611e6e60c0840161195f565b60c082015295945050505050565b828152604060208201525f6118da604083018461191b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156114e9576114e9611e94565b80820281158282048414176114e9576114e9611e94565b634e487b7160e01b5f52603260045260245ffd5b808201808211156114e9576114e9611e94565b5f8651611f0a818460208b016118f9565b60e087901b6001600160e01b0319169083019081528551611f32816004840160208a016118f9565b8551910190611f488160048401602089016118f9565b60c09490941b6001600160c01b031916600491909401908101939093525050600c01949350505050565b63ffffffff818116838216019080821115610b5957610b59611e94565b63ffffffff818116838216028082169190828114611faf57611faf611e94565b505092915050565b61ffff60f01b8a60f01b1681525f63ffffffff60e01b808b60e01b166002840152896006840152808960e01b166026840152508651611ffd81602a850160208b016118f9565b86519083019061201481602a840160208b016118f9565b60c087901b6001600160c01b031916602a9290910191820152612046603282018660e01b6001600160e01b0319169052565b61205f603682018560e01b6001600160e01b0319169052565b603a019b9a5050505050505050505050565b5f83516120828184602088016118f9565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f84516120b88184602089016118f9565b6001600160e01b031960e095861b8116919093019081529290931b16600482015260080192915050565b5f83516120f38184602088016118f9565b60c09390931b6001600160c01b0319169190920190815260080192915050565b5f82516121248184602087016118f9565b9190910192915050565b5f6020828403121561213e575f80fd5b505191905056fea26469706673582212209b053b8f4b1240668e63fcf61c1058f38e82bf86a5ffafe8ef50c8ba2c10a75564736f6c63430008190033", + 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 5acc40a14..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\":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\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"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\"}]", + 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. @@ -1313,47 +1313,39 @@ func (it *IPoSValidatorManagerInitialValidatorCreatedIterator) Close() error { // IPoSValidatorManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the IPoSValidatorManager contract. type IPoSValidatorManagerInitialValidatorCreated struct { ValidationID [32]byte - NodeID common.Hash Weight uint64 + NodeID []byte Raw types.Log // Blockchain specific contextual infos } -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte) (*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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } return &IPoSValidatorManagerInitialValidatorCreatedIterator{contract: _IPoSValidatorManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil } -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][]byte) (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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -1385,9 +1377,9 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchInitialValidator }), nil } -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) +// 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 { @@ -1612,57 +1604,49 @@ func (it *IPoSValidatorManagerValidationPeriodCreatedIterator) Close() error { // IPoSValidatorManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the IPoSValidatorManager contract. type IPoSValidatorManagerValidationPeriodCreated struct { ValidationID [32]byte - NodeID common.Hash RegisterValidationMessageID [32]byte Weight uint64 + NodeID []byte RegistrationExpiry uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (*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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _IPoSValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } return &IPoSValidatorManagerValidationPeriodCreatedIterator{contract: _IPoSValidatorManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil } -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IPoSValidatorManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _IPoSValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -1694,9 +1678,9 @@ func (_IPoSValidatorManager *IPoSValidatorManagerFilterer) WatchValidationPeriod }), nil } -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, 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 { diff --git a/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go b/abi-bindings/go/validator-manager/interfaces/IValidatorManager/IValidatorManager.go index 9135c7b1b..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\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"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\"}]", + 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. @@ -370,47 +370,39 @@ func (it *IValidatorManagerInitialValidatorCreatedIterator) Close() error { // IValidatorManagerInitialValidatorCreated represents a InitialValidatorCreated event raised by the IValidatorManager contract. type IValidatorManagerInitialValidatorCreated struct { ValidationID [32]byte - NodeID common.Hash Weight uint64 + NodeID []byte Raw types.Log // Blockchain specific contextual infos } -// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// FilterInitialValidatorCreated is a free log retrieval operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_IValidatorManager *IValidatorManagerFilterer) FilterInitialValidatorCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte) (*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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } return &IValidatorManagerInitialValidatorCreatedIterator{contract: _IValidatorManager.contract, event: "InitialValidatorCreated", logs: logs, sub: sub}, nil } -// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// WatchInitialValidatorCreated is a free log subscription operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) -func (_IValidatorManager *IValidatorManagerFilterer) WatchInitialValidatorCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerInitialValidatorCreated, validationID [][32]byte, nodeID [][]byte) (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 nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule, nodeIDRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "InitialValidatorCreated", validationIDRule) if err != nil { return nil, err } @@ -442,9 +434,9 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchInitialValidatorCreate }), nil } -// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xfe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c. +// ParseInitialValidatorCreated is a log parse operation binding the contract event 0xd80a750132c7a4fb67e226bdfecab0d8609bbb4e48cdad62cee218f25b758fff. // -// Solidity: event InitialValidatorCreated(bytes32 indexed validationID, bytes indexed nodeID, uint64 weight) +// 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 { @@ -524,57 +516,49 @@ func (it *IValidatorManagerValidationPeriodCreatedIterator) Close() error { // IValidatorManagerValidationPeriodCreated represents a ValidationPeriodCreated event raised by the IValidatorManager contract. type IValidatorManagerValidationPeriodCreated struct { ValidationID [32]byte - NodeID common.Hash RegisterValidationMessageID [32]byte Weight uint64 + NodeID []byte RegistrationExpiry uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// FilterValidationPeriodCreated is a free log retrieval operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_IValidatorManager *IValidatorManagerFilterer) FilterValidationPeriodCreated(opts *bind.FilterOpts, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (*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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _IValidatorManager.contract.FilterLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } return &IValidatorManagerValidationPeriodCreatedIterator{contract: _IValidatorManager.contract, event: "ValidationPeriodCreated", logs: logs, sub: sub}, nil } -// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// WatchValidationPeriodCreated is a free log subscription operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, uint64 registrationExpiry) -func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreated(opts *bind.WatchOpts, sink chan<- *IValidatorManagerValidationPeriodCreated, validationID [][32]byte, nodeID [][]byte, registerValidationMessageID [][32]byte) (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 { validationIDRule = append(validationIDRule, validationIDItem) } - var nodeIDRule []interface{} - for _, nodeIDItem := range nodeID { - nodeIDRule = append(nodeIDRule, nodeIDItem) - } var registerValidationMessageIDRule []interface{} for _, registerValidationMessageIDItem := range registerValidationMessageID { registerValidationMessageIDRule = append(registerValidationMessageIDRule, registerValidationMessageIDItem) } - logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, nodeIDRule, registerValidationMessageIDRule) + logs, sub, err := _IValidatorManager.contract.WatchLogs(opts, "ValidationPeriodCreated", validationIDRule, registerValidationMessageIDRule) if err != nil { return nil, err } @@ -606,9 +590,9 @@ func (_IValidatorManager *IValidatorManagerFilterer) WatchValidationPeriodCreate }), nil } -// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49. +// ParseValidationPeriodCreated is a log parse operation binding the contract event 0xe093cab27f3fc60439e008f3a2073310d3ac9ac9b7d59e53a06b2588f7498bd6. // -// Solidity: event ValidationPeriodCreated(bytes32 indexed validationID, bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, 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 { diff --git a/contracts/validator-manager/ValidatorManager.sol b/contracts/validator-manager/ValidatorManager.sol index f7f39653f..5a504549f 100644 --- a/contracts/validator-manager/ValidatorManager.sol +++ b/contracts/validator-manager/ValidatorManager.sol @@ -189,7 +189,7 @@ abstract contract ValidatorManager is Initializable, ContextUpgradeable, IValida totalWeight += initialValidator.weight; emit InitialValidatorCreated( - validationID, initialValidator.nodeID, initialValidator.weight + validationID, initialValidator.weight, initialValidator.nodeID ); } $._churnTracker.totalWeight = totalWeight; @@ -300,7 +300,7 @@ abstract contract ValidatorManager is Initializable, ContextUpgradeable, IValida $._validationPeriods[validationID].endedAt = 0; emit ValidationPeriodCreated( - validationID, input.nodeID, messageID, weight, input.registrationExpiry + validationID, messageID, weight, input.nodeID, input.registrationExpiry ); return validationID; diff --git a/contracts/validator-manager/interfaces/IValidatorManager.sol b/contracts/validator-manager/interfaces/IValidatorManager.sol index 9ee1ed6ab..63e24e925 100644 --- a/contracts/validator-manager/interfaces/IValidatorManager.sol +++ b/contracts/validator-manager/interfaces/IValidatorManager.sol @@ -112,15 +112,13 @@ interface IValidatorManager { */ event ValidationPeriodCreated( bytes32 indexed validationID, - bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, + bytes nodeID, uint64 registrationExpiry ); - event InitialValidatorCreated( - bytes32 indexed validationID, bytes indexed nodeID, uint64 weight - ); + event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID); /** * @notice Emitted when the staking manager learns that the validation period has been successfully registered diff --git a/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol index f8d64b0f7..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, @@ -73,13 +71,6 @@ abstract contract PoSValidatorManagerTest is ValidatorManagerTest { event DelegatorRemovalInitialized(bytes32 indexed delegationID, bytes32 indexed validationID); - event ValidatorWeightUpdate( - bytes32 indexed validationID, - uint64 indexed nonce, - uint64 weight, - bytes32 setWeightMessageID - ); - event DelegationEnded( bytes32 indexed delegationID, bytes32 indexed validationID, uint256 rewards, uint256 fees ); diff --git a/contracts/validator-manager/tests/ValidatorManagerTests.t.sol b/contracts/validator-manager/tests/ValidatorManagerTests.t.sol index 6f74b48ac..53865d841 100644 --- a/contracts/validator-manager/tests/ValidatorManagerTests.t.sol +++ b/contracts/validator-manager/tests/ValidatorManagerTests.t.sol @@ -64,15 +64,13 @@ abstract contract ValidatorManagerTest is Test { event ValidationPeriodCreated( bytes32 indexed validationID, - bytes indexed nodeID, bytes32 indexed registerValidationMessageID, uint64 weight, + bytes nodeID, uint64 registrationExpiry ); - event InitialValidatorCreated( - bytes32 indexed validationID, bytes indexed nodeID, uint64 weight - ); + event InitialValidatorCreated(bytes32 indexed validationID, uint64 weight, bytes nodeID); event ValidationPeriodRegistered( bytes32 indexed validationID, uint64 weight, uint256 timestamp @@ -87,6 +85,13 @@ abstract contract ValidatorManagerTest is Test { event ValidationPeriodEnded(bytes32 indexed validationID, ValidatorStatus indexed status); + event ValidatorWeightUpdate( + bytes32 indexed validationID, + uint64 indexed nonce, + uint64 weight, + bytes32 setWeightMessageID + ); + receive() external payable {} fallback() external payable {} @@ -446,7 +451,7 @@ abstract contract ValidatorManagerTest is Test { _beforeSend(_weightToValue(weight), address(this)); vm.expectEmit(true, true, true, true, address(validatorManager)); - emit ValidationPeriodCreated(validationID, nodeID, bytes32(0), weight, registrationExpiry); + emit ValidationPeriodCreated(validationID, bytes32(0), weight, nodeID, registrationExpiry); _initializeValidatorRegistration( ValidatorRegistrationInput({ diff --git a/tests/utils/validator_manager.go b/tests/utils/validator_manager.go index 7bb3e737c..8e7d69efe 100644 --- a/tests/utils/validator_manager.go +++ b/tests/utils/validator_manager.go @@ -324,11 +324,14 @@ func InitializeValidatorSet( ) manager, err := ivalidatormanager.NewIValidatorManager(validatorManagerAddress, l1Info.RPCClient) Expect(err).Should(BeNil()) + + // Check that the first initial validator was registered successfully initialValidatorCreatedEvent, err := GetEventFromLogs( receipt.Logs, manager.ParseInitialValidatorCreated, ) Expect(err).Should(BeNil()) + Expect(initialValidatorCreatedEvent.NodeID).Should(Equal(nodes[0].NodeID.Bytes())) var validationIDs []ids.ID for i := range nodes { validationIDs = append(validationIDs, l1Info.SubnetID.Append(uint32(i))) @@ -398,6 +401,7 @@ func InitializeNativeValidatorRegistration( stakingManager.ParseValidationPeriodCreated, ) Expect(err).Should(BeNil()) + Expect(registrationInitiatedEvent.NodeID).Should(Equal(node.NodeID.Bytes())) return receipt, ids.ID(registrationInitiatedEvent.ValidationID) } @@ -442,6 +446,7 @@ func InitializeERC20ValidatorRegistration( stakingManager.ParseValidationPeriodCreated, ) Expect(err).Should(BeNil()) + Expect(registrationInitiatedEvent.NodeID).Should(Equal(node.NodeID.Bytes())) return receipt, ids.ID(registrationInitiatedEvent.ValidationID) } @@ -472,6 +477,7 @@ func InitializePoAValidatorRegistration( validatorManager.ParseValidationPeriodCreated, ) Expect(err).Should(BeNil()) + Expect(registrationInitiatedEvent.NodeID).Should(Equal(node.NodeID.Bytes())) return receipt, ids.ID(registrationInitiatedEvent.ValidationID) }