github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/gossip/contract/sfclib100/contract.go (about) 1 // Code generated - DO NOT EDIT. 2 // This file is a generated binding and any manual changes will be lost. 3 4 package sfclib100 5 6 import ( 7 "errors" 8 "math/big" 9 "strings" 10 11 u2u "github.com/unicornultrafoundation/go-u2u" 12 "github.com/unicornultrafoundation/go-u2u/accounts/abi" 13 "github.com/unicornultrafoundation/go-u2u/accounts/abi/bind" 14 "github.com/unicornultrafoundation/go-u2u/common" 15 "github.com/unicornultrafoundation/go-u2u/core/types" 16 "github.com/unicornultrafoundation/go-u2u/event" 17 ) 18 19 // Reference imports to suppress errors if they are not otherwise used. 20 var ( 21 _ = errors.New 22 _ = big.NewInt 23 _ = strings.NewReader 24 _ = u2u.NotFound 25 _ = bind.Bind 26 _ = common.Big1 27 _ = types.BloomLookup 28 _ = event.NewSubscription 29 ) 30 31 // ContractMetaData contains all meta data concerning the Contract contract. 32 var ContractMetaData = &bind.MetaData{ 33 ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BurntFTM\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"ChangedValidatorStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockupExtraReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockupBaseReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockedReward\",\"type\":\"uint256\"}],\"name\":\"ClaimedRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"auth\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"createdEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"createdTime\",\"type\":\"uint256\"}],\"name\":\"CreatedValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deactivatedEpoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deactivatedTime\",\"type\":\"uint256\"}],\"name\":\"DeactivatedValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Delegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"justification\",\"type\":\"string\"}],\"name\":\"InflatedFTM\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LockedUpStake\",\"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\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RefundedSlashedLegacyDelegation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockupExtraReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockupBaseReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockedReward\",\"type\":\"uint256\"}],\"name\":\"RestakedRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"wrID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Undelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"penalty\",\"type\":\"uint256\"}],\"name\":\"UnlockedStake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundRatio\",\"type\":\"uint256\"}],\"name\":\"UpdatedSlashingRefundRatio\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"wrID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"syncPubkey\",\"type\":\"bool\"}],\"name\":\"_syncValidator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentSealedEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getEpochSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"epochFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBaseRewardWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalTxRewardWeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseRewardPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"getLockedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getLockupInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lockedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fromEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getStashedLockupRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lockupExtraReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupBaseReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unlockedReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getValidator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deactivatedTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deactivatedEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"receivedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"auth\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getValidatorID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getValidatorPubkey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getWithdrawalRequest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"isLockedUp\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastValidatorID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minGasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"slashingRefundRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stakeTokenizerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stashedRewardsUntilEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalActiveStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSlashedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"treasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voteBookAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"getEpochValidatorIDs\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochReceivedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochAccumulatedRewardPerToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochAccumulatedUptime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochAccumulatedOriginatedTxsFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochOfflineTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getEpochOfflineBlocks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"rewardsStash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"auth\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deactivatedEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deactivatedTime\",\"type\":\"uint256\"}],\"name\":\"setGenesisValidator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupFromEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"earlyUnlockPenalty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"}],\"name\":\"setGenesisDelegation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"createValidator\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"getSelfStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorAuth\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"strict\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"recountVotes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"wrID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"}],\"name\":\"isSlashed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"wrID\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"}],\"name\":\"deactivateValidator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"pendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"stashRewards\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"claimRewards\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"restakeRewards\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"justification\",\"type\":\"string\"}],\"name\":\"mintFTM\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFTM\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"}],\"name\":\"getUnlockedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"lockStake\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockupDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"relockStake\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toValidatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unlockStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"validatorID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"refundRatio\",\"type\":\"uint256\"}],\"name\":\"updateSlashingRefundRatio\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", 34 Bin: "0x608060405234801561001057600080fd5b50614f20806100206000396000f3fe6080604052600436106103765760003560e01c8063893675c6116101d1578063bd14d90711610102578063cfdbb7cd116100a0578063df00c9221161006f578063df00c92214610ef3578063e261641a14610f23578063e2f8c33614610f53578063f2fde38b14610fe557610376565b8063cfdbb7cd14610e3f578063d96ed50514610e78578063dc31e1af14610e8d578063de67f21514610ebd57610376565b8063c65ee0e1116100dc578063c65ee0e114610d95578063c7be95de14610dbf578063cc8343aa14610dd4578063cfd4766314610e0657610376565b8063bd14d90714610d20578063c3de580e14610d56578063c5f956af14610d8057610376565b80639fa6dd351161016f578063a86a056f11610149578063a86a056f14610bc9578063b5d8962714610c02578063b810e41114610c6d578063b88a37e214610ca657610376565b80639fa6dd3514610b0c578063a198d22914610b29578063a5a470ad14610b5957610376565b80638da5cb5b116101ab5780638da5cb5b14610a455780638f32d59b14610a5a57806390a6c47514610a8357806396c7ee4614610aad57610376565b8063893675c6146109e25780638b0e9f3f146109f75780638cddb01514610a0c57610376565b80634f7c4efb116102ab57806361e53fcc11610249578063715018a611610223578063715018a61461090457806376671808146109195780637cacb1d61461092e578063854873e11461094357610376565b806361e53fcc14610862578063670322f8146108925780636f498663146108cb57610376565b80635601fe01116102855780635601fe01146107ba57806358f95b80146107e45780635fab23a8146108145780636099ecb21461082957610376565b80634f7c4efb146106a95780634f864df4146106d95780634feb92f31461070f57610376565b80631d3ac42c1161031857806320c0849d116102f257806320c0849d146105b757806328f731481461060257806339b80c0014610617578063441a3e701461067957610376565b80631d3ac42c146104fa5780631e702f831461052a5780631f2701521461055a57610376565b80630e559d82116103545780630e559d821461041657806312622d0e1461044757806318160ddd1461048057806318f628d41461049557610376565b80630135b1db1461037b57806308c36874146103c05780630962ef79146103ec575b600080fd5b34801561038757600080fd5b506103ae6004803603602081101561039e57600080fd5b50356001600160a01b0316611018565b60408051918252519081900360200190f35b3480156103cc57600080fd5b506103ea600480360360208110156103e357600080fd5b503561102a565b005b3480156103f857600080fd5b506103ea6004803603602081101561040f57600080fd5b50356110f6565b34801561042257600080fd5b5061042b611241565b604080516001600160a01b039092168252519081900360200190f35b34801561045357600080fd5b506103ae6004803603604081101561046a57600080fd5b506001600160a01b038135169060200135611250565b34801561048c57600080fd5b506103ae6112d9565b3480156104a157600080fd5b506103ea60048036036101208110156104b957600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e08101359061010001356112df565b34801561050657600080fd5b506103ae6004803603604081101561051d57600080fd5b5080359060200135611441565b34801561053657600080fd5b506103ea6004803603604081101561054d57600080fd5b508035906020013561166b565b34801561056657600080fd5b506105996004803603606081101561057d57600080fd5b506001600160a01b038135169060208101359060400135611744565b60408051938452602084019290925282820152519081900360600190f35b3480156105c357600080fd5b506103ea600480360360808110156105da57600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135611776565b34801561060e57600080fd5b506103ae611913565b34801561062357600080fd5b506106416004803603602081101561063a57600080fd5b5035611919565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561068557600080fd5b506103ea6004803603604081101561069c57600080fd5b508035906020013561195b565b3480156106b557600080fd5b506103ea600480360360408110156106cc57600080fd5b5080359060200135611e6b565b3480156106e557600080fd5b506103ea600480360360608110156106fc57600080fd5b5080359060208101359060400135611faf565b34801561071b57600080fd5b506103ea600480360361010081101561073357600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561076357600080fd5b82018360208201111561077557600080fd5b8035906020019184600183028401116401000000008311171561079757600080fd5b91935091508035906020810135906040810135906060810135906080013561224a565b3480156107c657600080fd5b506103ae600480360360208110156107dd57600080fd5b50356122f0565b3480156107f057600080fd5b506103ae6004803603604081101561080757600080fd5b5080359060200135612326565b34801561082057600080fd5b506103ae612343565b34801561083557600080fd5b506103ae6004803603604081101561084c57600080fd5b506001600160a01b038135169060200135612349565b34801561086e57600080fd5b506103ae6004803603604081101561088557600080fd5b5080359060200135612387565b34801561089e57600080fd5b506103ae600480360360408110156108b557600080fd5b506001600160a01b0381351690602001356123a8565b3480156108d757600080fd5b506103ae600480360360408110156108ee57600080fd5b506001600160a01b0381351690602001356123e9565b34801561091057600080fd5b506103ea612453565b34801561092557600080fd5b506103ae61250e565b34801561093a57600080fd5b506103ae612518565b34801561094f57600080fd5b5061096d6004803603602081101561096657600080fd5b503561251e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156109a757818101518382015260200161098f565b50505050905090810190601f1680156109d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109ee57600080fd5b5061042b6125d7565b348015610a0357600080fd5b506103ae6125e6565b348015610a1857600080fd5b506103ea60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001356125ec565b348015610a5157600080fd5b5061042b61264b565b348015610a6657600080fd5b50610a6f61265a565b604080519115158252519081900360200190f35b348015610a8f57600080fd5b506103ea60048036036020811015610aa657600080fd5b503561266b565b348015610ab957600080fd5b50610ae660048036036040811015610ad057600080fd5b506001600160a01b0381351690602001356126d0565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103ea60048036036020811015610b2257600080fd5b5035612702565b348015610b3557600080fd5b506103ae60048036036040811015610b4c57600080fd5b508035906020013561270d565b6103ea60048036036020811015610b6f57600080fd5b810190602081018135640100000000811115610b8a57600080fd5b820183602082011115610b9c57600080fd5b80359060200191846001830284011164010000000083111715610bbe57600080fd5b50909250905061272e565b348015610bd557600080fd5b506103ae60048036036040811015610bec57600080fd5b506001600160a01b03813516906020013561289b565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b50356128b8565b604080519788526020880196909652868601949094526060860192909252608085015260a08401526001600160a01b031660c0830152519081900360e00190f35b348015610c7957600080fd5b5061059960048036036040811015610c9057600080fd5b506001600160a01b0381351690602001356128fe565b348015610cb257600080fd5b50610cd060048036036020811015610cc957600080fd5b503561292a565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610d0c578181015183820152602001610cf4565b505050509050019250505060405180910390f35b348015610d2c57600080fd5b506103ea60048036036060811015610d4357600080fd5b508035906020810135906040013561298f565b348015610d6257600080fd5b50610a6f60048036036020811015610d7957600080fd5b50356129a2565b348015610d8c57600080fd5b5061042b6129b9565b348015610da157600080fd5b506103ae60048036036020811015610db857600080fd5b50356129c8565b348015610dcb57600080fd5b506103ae6129da565b348015610de057600080fd5b506103ea60048036036040811015610df757600080fd5b508035906020013515156129e0565b348015610e1257600080fd5b506103ae60048036036040811015610e2957600080fd5b506001600160a01b038135169060200135612c18565b348015610e4b57600080fd5b50610a6f60048036036040811015610e6257600080fd5b506001600160a01b038135169060200135612c35565b348015610e8457600080fd5b506103ae612ccb565b348015610e9957600080fd5b506103ae60048036036040811015610eb057600080fd5b5080359060200135612cd1565b348015610ec957600080fd5b506103ea60048036036060811015610ee057600080fd5b5080359060208101359060400135612cf2565b348015610eff57600080fd5b506103ae60048036036040811015610f1657600080fd5b5080359060200135612dad565b348015610f2f57600080fd5b506103ae60048036036040811015610f4657600080fd5b5080359060200135612dce565b348015610f5f57600080fd5b506103ea60048036036060811015610f7657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610fa657600080fd5b820183602082011115610fb857600080fd5b80359060200191846001830284011164010000000083111715610fda57600080fd5b509092509050612def565b348015610ff157600080fd5b506103ea6004803603602081101561100857600080fd5b50356001600160a01b0316612f1e565b60696020526000908152604090205481565b33611033614d24565b61103d8284612f80565b602081015181519192506000916110599163ffffffff6130e016565b905061107c83856110778560400151856130e090919063ffffffff16565b61313a565b6001600160a01b0383166000818152607360209081526040808320888452825291829020805485019055845185820151868401518451928352928201528083019190915290518692917f4119153d17a36f9597d40e3ab4148d03261a439dddbec4e91799ab7159608e26919081900360600190a350505050565b336110ff614d24565b6111098284612f80565b90506000826001600160a01b0316611146836040015161113a856020015186600001516130e090919063ffffffff16565b9063ffffffff6130e016565b604051600081818185875af1925050503d8060008114611182576040519150601f19603f3d011682016040523d82523d6000602084013e611187565b606091505b50509050806111dd576040805162461bcd60e51b815260206004820152601260248201527f4661696c656420746f2073656e642046544d0000000000000000000000000000604482015290519081900360640190fd5b83836001600160a01b03167fc1d8eb6e444b89fb8ff0991c19311c070df704ccb009e210d1462d5b2410bf4584600001518560200151866040015160405180848152602001838152602001828152602001935050505060405180910390a350505050565b607b546001600160a01b031681565b600061125c8383612c35565b61128a57506001600160a01b03821660009081526072602090815260408083208484529091529020546112d3565b6001600160a01b0383166000818152607360209081526040808320868452825280832054938352607282528083208684529091529020546112d09163ffffffff61324616565b90505b92915050565b60765481565b6112e833613288565b6113235760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b611330898989600061329c565b6001600160a01b0389166000908152606f602090815260408083208b8452909152902060020181905561136287613434565b851561143657868611156113a75760405162461bcd60e51b815260040180806020018281038252602c815260200180614ec0602c913960400191505060405180910390fd5b6001600160a01b03891660008181526073602090815260408083208c845282528083208a8155600181018a90556002810189905560038101889055848452607483528184208d855283529281902086905580518781529182018a9052805192938c9390927f138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e7892908290030190a3505b505050505050505050565b3360008181526073602090815260408083208684529091528120909190836114b0576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6114ba8286612c35565b61150b576040805162461bcd60e51b815260206004820152600d60248201527f6e6f74206c6f636b656420757000000000000000000000000000000000000000604482015290519081900360640190fd5b8054841115611561576040805162461bcd60e51b815260206004820152601760248201527f6e6f7420656e6f756768206c6f636b6564207374616b65000000000000000000604482015290519081900360640190fd5b61156b82866134d2565b6115bc576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b6115c6828661358d565b5060006115d98387878560000154613758565b905081600301546363401ec501826002015410156115f5575060005b8154859003825580156116185761160f8387836001613889565b61161881613a8f565b85836001600160a01b03167fef6c0c14fe9aa51af36acd791464dec3badbde668b63189b47bfa4e25be9b2b98784604051808381526020018281526020019250505060405180910390a395945050505050565b61167433613288565b6116af5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b80611701576040805162461bcd60e51b815260206004820152600c60248201527f77726f6e67207374617475730000000000000000000000000000000000000000604482015290519081900360640190fd5b61170b8282613af9565b6117168260006129e0565b6000828152606860205260408120600601546001600160a01b03169061173f9082908190613c23565b505050565b607160209081526000938452604080852082529284528284209052825290208054600182015460029092015490919083565b608254604080516001600160a01b03878116602483015286811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4a7702bb000000000000000000000000000000000000000000000000000000001781529251825160009592909216938693928291908083835b6020831061184557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611808565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d80600081146118a8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ad565b606091505b5050905080806118bb575082155b61190c576040805162461bcd60e51b815260206004820152601b60248201527f676f7620766f746573207265636f756e74696e67206661696c65640000000000604482015290519081900360640190fd5b5050505050565b606d5481565b607760205280600052604060002060009150905080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d0154905087565b33611964614d24565b506001600160a01b038116600090815260716020908152604080832086845282528083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611a08576040805162461bcd60e51b815260206004820152601560248201527f7265717565737420646f65736e27742065786973740000000000000000000000604482015290519081900360640190fd5b611a1282856134d2565b611a63576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b60208082015182516000878152606890935260409092206001015490919015801590611a9f575060008681526068602052604090206001015482115b15611ac0575050600084815260686020526040902060018101546002909101545b608160009054906101000a90046001600160a01b03166001600160a01b031663b82b84276040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0e57600080fd5b505afa158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b50518201611b44613dcd565b1015611b97576040805162461bcd60e51b815260206004820152601660248201527f6e6f7420656e6f7567682074696d652070617373656400000000000000000000604482015290519081900360640190fd5b608160009054906101000a90046001600160a01b03166001600160a01b031663650acd666040518163ffffffff1660e01b815260040160206040518083038186803b158015611be557600080fd5b505afa158015611bf9573d6000803e3d6000fd5b505050506040513d6020811015611c0f57600080fd5b50518101611c1b61250e565b1015611c6e576040805162461bcd60e51b815260206004820152601860248201527f6e6f7420656e6f7567682065706f636873207061737365640000000000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152607160209081526040808320898452825280832088845290915281206002015490611ca7886129a2565b90506000611cc98383607a60008d815260200190815260200160002054613dd1565b6001600160a01b03881660009081526071602090815260408083208d845282528083208c845290915281208181556001810182905560020155606e8054820190559050808311611d60576040805162461bcd60e51b815260206004820152601660248201527f7374616b652069732066756c6c7920736c617368656400000000000000000000604482015290519081900360640190fd5b60006001600160a01b038816611d7c858463ffffffff61324616565b604051600081818185875af1925050503d8060008114611db8576040519150601f19603f3d011682016040523d82523d6000602084013e611dbd565b606091505b5050905080611e13576040805162461bcd60e51b815260206004820152601260248201527f4661696c656420746f2073656e642046544d0000000000000000000000000000604482015290519081900360640190fd5b611e1c82613a8f565b888a896001600160a01b03167f75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21876040518082815260200191505060405180910390a450505050505050505050565b611e7361265a565b611ec4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611ecd826129a2565b611f1e576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f722069736e277420736c6173686564000000000000000000604482015290519081900360640190fd5b611f26613e33565b811115611f645760405162461bcd60e51b8152600401808060200182810382526021815260200180614e4e6021913960400191505060405180910390fd5b6000828152607a60209081526040918290208390558151838152915184927f047575f43f09a7a093d94ec483064acfc61b7e25c0de28017da442abf99cb91792908290030190a25050565b33611fba818561358d565b5060008211612010576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b61201a8185611250565b82111561206e576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820756e6c6f636b6564207374616b6500000000000000604482015290519081900360640190fd5b61207881856134d2565b6120c9576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260716020908152604080832087845282528083208684529091529020600201541561214a576040805162461bcd60e51b815260206004820152601360248201527f7772494420616c72656164792065786973747300000000000000000000000000604482015290519081900360640190fd5b6121578185846001613889565b6001600160a01b03811660009081526071602090815260408083208784528252808320868452909152902060020182905561219061250e565b6001600160a01b038216600090815260716020908152604080832088845282528083208784529091529020556121c4613dcd565b6001600160a01b038216600090815260716020908152604080832088845282528083208784529091528120600101919091556122019085906129e0565b8284826001600160a01b03167fd3bb4e423fbea695d16b982f9f682dc5f35152e5411646a8a5a79a6b02ba8d57856040518082815260200191505060405180910390a450505050565b61225333613288565b61228e5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b6122d6898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92508a91508990508888613e3f565b606b5488111561143657606b889055505050505050505050565b6000818152606860209081526040808320600601546001600160a01b03168352607282528083208484529091529020545b919050565b600091825260776020908152604080842092845291905290205490565b606e5481565b6000612353614d24565b61235d8484614006565b80516020820151604083015192935061237f9261113a9163ffffffff6130e016565b949350505050565b60009182526077602090815260408084209284526001909201905290205490565b60006123b48383612c35565b6123c0575060006112d3565b506001600160a01b03919091166000908152607360209081526040808320938352929052205490565b60006123f3614d24565b506001600160a01b0383166000908152606f602090815260408083208584528252918290208251606081018452815480825260018301549382018490526002909201549381018490529261237f92909161113a919063ffffffff6130e016565b61245b61265a565b6124ac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6067546001015b90565b60675481565b606a6020908152600091825260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600186161502019093169290920491820184900484028101840190945280845290918301828280156125cf5780601f106125a4576101008083540402835291602001916125cf565b820191906000526020600020905b8154815290600101906020018083116125b257829003601f168201915b505050505081565b6082546001600160a01b031681565b606c5481565b6125f6828261358d565b612647576040805162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20737461736800000000000000000000000000000000604482015290519081900360640190fd5b5050565b6033546001600160a01b031690565b6033546001600160a01b0316331490565b61267361265a565b6126c4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6126cd81613a8f565b50565b607360209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b6126cd33823461313a565b60009182526077602090815260408084209284526005909201905290205490565b608160009054906101000a90046001600160a01b03166001600160a01b031663c5f530af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561277c57600080fd5b505afa158015612790573d6000803e3d6000fd5b505050506040513d60208110156127a657600080fd5b50513410156127fc576040805162461bcd60e51b815260206004820152601760248201527f696e73756666696369656e742073656c662d7374616b65000000000000000000604482015290519081900360640190fd5b8061284e576040805162461bcd60e51b815260206004820152600c60248201527f656d707479207075626b65790000000000000000000000000000000000000000604482015290519081900360640190fd5b61288e3383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061407492505050565b61264733606b543461313a565b607060209081526000928352604080842090915290825290205481565b606860205260009081526040902080546001820154600283015460038401546004850154600586015460069096015494959394929391929091906001600160a01b031687565b607460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60008181526077602090815260409182902060060180548351818402810184019094528084526060939283018282801561298357602002820191906000526020600020905b81548152602001906001019080831161296f575b50505050509050919050565b3361299c8185858561409f565b50505050565b600090815260686020526040902054608016151590565b607f546001600160a01b031681565b607a6020526000908152604090205481565b606b5481565b6129e982614454565b612a3a576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f7220646f65736e2774206578697374000000000000000000604482015290519081900360640190fd5b60008281526068602052604090206003810154905415612a58575060005b606654604080517fa4066fbe000000000000000000000000000000000000000000000000000000008152600481018690526024810184905290516001600160a01b039092169163a4066fbe9160448082019260009290919082900301818387803b158015612ac557600080fd5b505af1158015612ad9573d6000803e3d6000fd5b50505050818015612ae957508015155b1561173f576066546000848152606a60205260409081902081517f242a6e3f0000000000000000000000000000000000000000000000000000000081526004810187815260248201938452825460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001831615610100020190911604604483018190526001600160a01b039095169463242a6e3f94899493909160649091019084908015612bda5780601f10612baf57610100808354040283529160200191612bda565b820191906000526020600020905b815481529060010190602001808311612bbd57829003601f168201915b50509350505050600060405180830381600087803b158015612bfb57600080fd5b505af1158015612c0f573d6000803e3d6000fd5b50505050505050565b607260209081526000928352604080842090915290825290205481565b6001600160a01b038216600090815260736020908152604080832084845290915281206002015415801590612c8c57506001600160a01b038316600090815260736020908152604080832085845290915290205415155b80156112d057506001600160a01b0383166000908152607360209081526040808320858452909152902060020154612cc2613dcd565b11159392505050565b607e5481565b60009182526077602090815260408084209284526003909201905290205490565b3381612d45576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b612d4f8185612c35565b15612da1576040805162461bcd60e51b815260206004820152601160248201527f616c7265616479206c6f636b6564207570000000000000000000000000000000604482015290519081900360640190fd5b61299c8185858561409f565b60009182526077602090815260408084209284526002909201905290205490565b60009182526077602090815260408084209284526004909201905290205490565b612df761265a565b612e48576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b612e5183613434565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015612e87573d6000803e3d6000fd5b50836001600160a01b03167f9eec469b348bcf64bbfb60e46ce7b160e2e09bf5421496a2cdbc43714c28b8ad84848460405180848152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b612f2661265a565b612f77576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6126cd8161446b565b612f88614d24565b612f9283836134d2565b612fe3576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b612fed838361358d565b50506001600160a01b0382166000908152606f602090815260408083208484528252808320815160608101835281548082526001830154948201859052600290920154928101839052939261304b9261113a9163ffffffff6130e016565b90508061309f576040805162461bcd60e51b815260206004820152600c60248201527f7a65726f20726577617264730000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152606f60209081526040808320868452909152812081815560018101829055600201556130d981613434565b5092915050565b6000828201838110156112d0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61314382614454565b613194576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f7220646f65736e2774206578697374000000000000000000604482015290519081900360640190fd5b600082815260686020526040902054156131f5576040805162461bcd60e51b815260206004820152601660248201527f76616c696461746f722069736e27742061637469766500000000000000000000604482015290519081900360640190fd5b613202838383600161329c565b61320b82614524565b61173f5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e976029913960400191505060405180910390fd5b60006112d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506145ec565b6066546001600160a01b0390811691161490565b600082116132f1576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6132fb848461358d565b506001600160a01b0384166000908152607260209081526040808320868452909152902054613330908363ffffffff6130e016565b6001600160a01b0385166000908152607260209081526040808320878452825280832093909355606890522060030154613370818463ffffffff6130e016565b600085815260686020526040902060030155606c54613395908463ffffffff6130e016565b606c556000848152606860205260409020546133c257606d546133be908463ffffffff6130e016565b606d555b6133cd8482156129e0565b60408051848152905185916001600160a01b038816917f9a8f44850296624dadfd9c246d17e47171d35727a181bd090aa14bbbe00238bb9181900360200190a360008481526068602052604090206006015461190c9086906001600160a01b031684613c23565b606654604080517f66e7ea0f0000000000000000000000000000000000000000000000000000000081523060048201526024810184905290516001600160a01b03909216916366e7ea0f9160448082019260009290919082900301818387803b1580156134a057600080fd5b505af11580156134b4573d6000803e3d6000fd5b50506076546134cc925090508263ffffffff6130e016565b60765550565b607b546000906001600160a01b03166134ed575060016112d3565b607b54604080517f21d585c30000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201869052915191909216916321d585c3916044808301926020929190829003018186803b15801561355a57600080fd5b505afa15801561356e573d6000803e3d6000fd5b505050506040513d602081101561358457600080fd5b50519392505050565b6000613597614d24565b6135a18484614683565b90506135ac836147bb565b6001600160a01b0385166000818152607060209081526040808320888452825280832094909455918152606f8252828120868252825282902082516060810184528154815260018201549281019290925260020154918101919091526136129082614816565b6001600160a01b0385166000818152606f602090815260408083208884528252808320855181558583015160018083019190915595820151600291820155938352607482528083208884528252918290208251606081018452815481529481015491850191909152909101549082015261368c9082614816565b6001600160a01b0385166000908152607460209081526040808320878452825291829020835181559083015160018201559101516002909101556136d08484612c35565b613733576001600160a01b0384166000818152607360209081526040808320878452825280832083815560018082018590556002808301869055600390920185905594845260748352818420888552909252822082815592830182905591909101555b60208101511515806137455750805115155b8061237f57506040015115159392505050565b6001600160a01b038416600090815260746020908152604080832086845290915281205481906137a0908490613794908763ffffffff61488816565b9063ffffffff6148e116565b6001600160a01b0387166000908152607460209081526040808320898452909152812060010154919250906137e1908590613794908863ffffffff61488816565b6001600160a01b03881660009081526074602090815260408083208a8452909152902054909150600282048301906138199084613246565b6001600160a01b03891660009081526074602090815260408083208b845290915290209081556001015461384d9083613246565b6001600160a01b03891660009081526074602090815260408083208b845290915290206001015585811061387e5750845b979650505050505050565b6001600160a01b038416600090815260726020908152604080832086845282528083208054869003905560689091529020600301546138ce908363ffffffff61324616565b600084815260686020526040902060030155606c546138f3908363ffffffff61324616565b606c5560008381526068602052604090205461392057606d5461391c908363ffffffff61324616565b606d555b600061392b846122f0565b90508015613a5d57600084815260686020526040902054613a5857608160009054906101000a90046001600160a01b03166001600160a01b031663c5f530af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561399457600080fd5b505afa1580156139a8573d6000803e3d6000fd5b505050506040513d60208110156139be57600080fd5b5051811015613a14576040805162461bcd60e51b815260206004820152601760248201527f696e73756666696369656e742073656c662d7374616b65000000000000000000604482015290519081900360640190fd5b613a1d84614524565b613a585760405162461bcd60e51b8152600401808060200182810382526029815260200180614e976029913960400191505060405180910390fd5b613a68565b613a68846001613af9565b60008481526068602052604090206006015461190c9086906001600160a01b031684613c23565b80156126cd5760405160009082156108fc0290839083818181858288f19350505050158015613ac2573d6000803e3d6000fd5b506040805182815290517f8918bd6046d08b314e457977f29562c5d76a7030d79b1edba66e8a5da0b77ae89181900360200190a150565b600082815260686020526040902054158015613b1457508015155b15613b4157600082815260686020526040902060030154606d54613b3d9163ffffffff61324616565b606d555b60008281526068602052604090205481111561264757600082815260686020526040902081815560020154613be957613b7861250e565b600083815260686020526040902060020155613b92613dcd565b6000838152606860209081526040918290206001810184905560020154825190815290810192909252805184927fac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e4792908290030190a25b60408051828152905183917fcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e919081900360200190a25050565b6082546001600160a01b03161561173f57608254604080516001600160a01b03868116602483015285811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4a7702bb00000000000000000000000000000000000000000000000000000000178152925182516000959290921693627a120093928291908083835b60208310613d0657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613cc9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613d69576040519150601f19603f3d011682016040523d82523d6000602084013e613d6e565b606091505b505090508080613d7c575081155b61299c576040805162461bcd60e51b815260206004820152601b60248201527f676f7620766f746573207265636f756e74696e67206661696c65640000000000604482015290519081900360640190fd5b4290565b6000821580613de75750613de3613e33565b8210155b15613df457506000613e2c565b613e1f600161113a613e04613e33565b61379486613e10613e33565b8a91900363ffffffff61488816565b905083811115613e2c5750825b9392505050565b670de0b6b3a764000090565b6001600160a01b03881660009081526069602052604090205415613eaa576040805162461bcd60e51b815260206004820152601860248201527f76616c696461746f7220616c7265616479206578697374730000000000000000604482015290519081900360640190fd5b6001600160a01b03881660008181526069602090815260408083208b90558a8352606882528083208981556004810189905560058101889055600181018690556002810187905560060180547fffffffffffffffffffffffff000000000000000000000000000000000000000016909417909355606a81529190208751613f3392890190614d45565b50876001600160a01b0316877f49bca1ed2666922f9f1690c26a569e1299c2a715fe57647d77e81adfabbf25bf8686604051808381526020018281526020019250505060405180910390a38115613fbf576040805183815260208101839052815189927fac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e47928290030190a25b8415613ffc5760408051868152905188917fcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e919081900360200190a25b5050505050505050565b61400e614d24565b614016614d24565b6140208484614683565b6001600160a01b0385166000908152606f60209081526040808320878452825291829020825160608101845281548152600182015492810192909252600201549181019190915290915061237f9082614816565b606b80546001019081905561173f838284600061408f61250e565b614097613dcd565b600080613e3f565b6140a98484611250565b8111156140fd576040805162461bcd60e51b815260206004820152601060248201527f6e6f7420656e6f756768207374616b6500000000000000000000000000000000604482015290519081900360640190fd5b6000838152606860205260409020541561415e576040805162461bcd60e51b815260206004820152601660248201527f76616c696461746f722069736e27742061637469766500000000000000000000604482015290519081900360640190fd5b608160009054906101000a90046001600160a01b03166001600160a01b0316630d7b26096040518163ffffffff1660e01b815260040160206040518083038186803b1580156141ac57600080fd5b505afa1580156141c0573d6000803e3d6000fd5b505050506040513d60208110156141d657600080fd5b505182108015906142605750608160009054906101000a90046001600160a01b03166001600160a01b0316630d4955e36040518163ffffffff1660e01b815260040160206040518083038186803b15801561423057600080fd5b505afa158015614244573d6000803e3d6000fd5b505050506040513d602081101561425a57600080fd5b50518211155b6142b1576040805162461bcd60e51b815260206004820152601260248201527f696e636f7272656374206475726174696f6e0000000000000000000000000000604482015290519081900360640190fd5b60006142bf8361113a613dcd565b6000858152606860205260409020600601549091506001600160a01b03908116908616811461434d576001600160a01b038116600090815260736020908152604080832088845290915290206002015482111561434d5760405162461bcd60e51b8152600401808060200182810382526028815260200180614e6f6028913960400191505060405180910390fd5b614357868661358d565b506001600160a01b0386166000908152607360209081526040808320888452909152902060038101548510156143d4576040805162461bcd60e51b815260206004820152601f60248201527f6c6f636b7570206475726174696f6e2063616e6e6f7420646563726561736500604482015290519081900360640190fd5b80546143e6908563ffffffff6130e016565b81556143f061250e565b600182015560028101839055600381018590556040805186815260208101869052815188926001600160a01b038b16927f138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e78929081900390910190a350505050505050565b600090815260686020526040902060050154151590565b6001600160a01b0381166144b05760405162461bcd60e51b8152600401808060200182810382526026815260200180614dde6026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006145d1614531613e33565b608154604080517f2265f2840000000000000000000000000000000000000000000000000000000081529051613794926001600160a01b031691632265f284916004808301926020929190829003018186803b15801561459057600080fd5b505afa1580156145a4573d6000803e3d6000fd5b505050506040513d60208110156145ba57600080fd5b50516145c5866122f0565b9063ffffffff61488816565b60008381526068602052604090206003015411159050919050565b6000818484111561467b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614640578181015183820152602001614628565b50505050905090810190601f16801561466d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b61468b614d24565b6001600160a01b0383166000908152607060209081526040808320858452909152812054906146b9846147bb565b905060006146c78686614923565b9050818111156146d45750805b828110156146df5750815b6001600160a01b0386166000818152607360209081526040808320898452825280832093835260728252808320898452909152812054825490919061472b90839063ffffffff61324616565b9050600061473f84600001548a8988614a00565b9050614749614d24565b614757828660030154614a63565b9050614765838b8a89614a00565b915061476f614d24565b61477a836000614a63565b9050614788858c898b614a00565b9250614792614d24565b61479d846000614a63565b90506147aa838383614c24565b9d9c50505050505050505050505050565b6000818152606860205260408120600201541561480e5760008281526068602052604090206002015460675410156147f65750606754612321565b50600081815260686020526040902060020154612321565b505060675490565b61481e614d24565b604080516060810190915282518451829161483f919063ffffffff6130e016565b815260200161485f846020015186602001516130e090919063ffffffff16565b815260200161487f846040015186604001516130e090919063ffffffff16565b90529392505050565b600082614897575060006112d3565b828202828482816148a457fe5b04146112d05760405162461bcd60e51b8152600401808060200182810382526021815260200180614e2d6021913960400191505060405180910390fd5b60006112d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614c3f565b6001600160a01b0382166000908152607360209081526040808320848452909152812060010154606754614958858583614ca4565b156149665791506112d39050565b614971858584614ca4565b614980576000925050506112d3565b80821115614993576000925050506112d3565b808210156149c6576002818301046149ac868683614ca4565b156149bc578060010192506149c0565b8091505b50614993565b806149d6576000925050506112d3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01949350505050565b6000818310614a115750600061237f565b60008381526077602081815260408084208885526001908101835281852054878652938352818520898652019091529091205461387e614a4f613e33565b613794896145c5858763ffffffff61324616565b614a6b614d24565b60405180606001604052806000815260200160008152602001600081525090506000608160009054906101000a90046001600160a01b03166001600160a01b0316635e2308d26040518163ffffffff1660e01b815260040160206040518083038186803b158015614adb57600080fd5b505afa158015614aef573d6000803e3d6000fd5b505050506040513d6020811015614b0557600080fd5b505190508215614bfd57600081614b1a613e33565b0390506000614bac608160009054906101000a90046001600160a01b03166001600160a01b0316630d4955e36040518163ffffffff1660e01b815260040160206040518083038186803b158015614b7057600080fd5b505afa158015614b84573d6000803e3d6000fd5b505050506040513d6020811015614b9a57600080fd5b5051613794848863ffffffff61488816565b90506000614bcd614bbb613e33565b6137948987860163ffffffff61488816565b9050614bea614bda613e33565b613794898763ffffffff61488816565b6020860181905290038452506130d99050565b614c18614c08613e33565b613794868463ffffffff61488816565b60408301525092915050565b614c2c614d24565b61237f614c398585614816565b83614816565b60008183614c8e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614640578181015183820152602001614628565b506000838581614c9a57fe5b0495945050505050565b6001600160a01b0383166000908152607360209081526040808320858452909152812060010154821080159061237f57506001600160a01b0384166000908152607360209081526040808320868452909152902060020154614d0583614d0f565b1115949350505050565b60009081526077602052604090206007015490565b60405180606001604052806000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614d8657805160ff1916838001178555614db3565b82800160010185558215614db3579182015b82811115614db3578251825591602001919060010190614d98565b50614dbf929150614dc3565b5090565b61251591905b80821115614dbf5760008155600101614dc956fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737363616c6c6572206973206e6f7420746865204e6f64654472697665724175746820636f6e7472616374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d757374206265206c657373207468616e206f7220657175616c20746f20312e3076616c696461746f72206c6f636b757020706572696f642077696c6c20656e64206561726c69657276616c696461746f7227732064656c65676174696f6e73206c696d69742069732065786365656465646c6f636b6564207374616b652069732067726561746572207468616e207468652077686f6c65207374616b65a265627a7a7231582087037332c1e7e6c6d22bd22a9138be994cc25958ae26e11634b7757630a9b59464736f6c63430005110032", 35 } 36 37 // ContractABI is the input ABI used to generate the binding from. 38 // Deprecated: Use ContractMetaData.ABI instead. 39 var ContractABI = ContractMetaData.ABI 40 41 // ContractBin is the compiled bytecode used for deploying new contracts. 42 // Deprecated: Use ContractMetaData.Bin instead. 43 var ContractBin = ContractMetaData.Bin 44 45 // DeployContract deploys a new Ethereum contract, binding an instance of Contract to it. 46 func DeployContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Contract, error) { 47 parsed, err := ContractMetaData.GetAbi() 48 if err != nil { 49 return common.Address{}, nil, nil, err 50 } 51 if parsed == nil { 52 return common.Address{}, nil, nil, errors.New("GetABI returned nil") 53 } 54 55 address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ContractBin), backend) 56 if err != nil { 57 return common.Address{}, nil, nil, err 58 } 59 return address, tx, &Contract{ContractCaller: ContractCaller{contract: contract}, ContractTransactor: ContractTransactor{contract: contract}, ContractFilterer: ContractFilterer{contract: contract}}, nil 60 } 61 62 // Contract is an auto generated Go binding around an Ethereum contract. 63 type Contract struct { 64 ContractCaller // Read-only binding to the contract 65 ContractTransactor // Write-only binding to the contract 66 ContractFilterer // Log filterer for contract events 67 } 68 69 // ContractCaller is an auto generated read-only Go binding around an Ethereum contract. 70 type ContractCaller struct { 71 contract *bind.BoundContract // Generic contract wrapper for the low level calls 72 } 73 74 // ContractTransactor is an auto generated write-only Go binding around an Ethereum contract. 75 type ContractTransactor struct { 76 contract *bind.BoundContract // Generic contract wrapper for the low level calls 77 } 78 79 // ContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 80 type ContractFilterer struct { 81 contract *bind.BoundContract // Generic contract wrapper for the low level calls 82 } 83 84 // ContractSession is an auto generated Go binding around an Ethereum contract, 85 // with pre-set call and transact options. 86 type ContractSession struct { 87 Contract *Contract // Generic contract binding to set the session for 88 CallOpts bind.CallOpts // Call options to use throughout this session 89 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 90 } 91 92 // ContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, 93 // with pre-set call options. 94 type ContractCallerSession struct { 95 Contract *ContractCaller // Generic contract caller binding to set the session for 96 CallOpts bind.CallOpts // Call options to use throughout this session 97 } 98 99 // ContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 100 // with pre-set transact options. 101 type ContractTransactorSession struct { 102 Contract *ContractTransactor // Generic contract transactor binding to set the session for 103 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 104 } 105 106 // ContractRaw is an auto generated low-level Go binding around an Ethereum contract. 107 type ContractRaw struct { 108 Contract *Contract // Generic contract binding to access the raw methods on 109 } 110 111 // ContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 112 type ContractCallerRaw struct { 113 Contract *ContractCaller // Generic read-only contract binding to access the raw methods on 114 } 115 116 // ContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 117 type ContractTransactorRaw struct { 118 Contract *ContractTransactor // Generic write-only contract binding to access the raw methods on 119 } 120 121 // NewContract creates a new instance of Contract, bound to a specific deployed contract. 122 func NewContract(address common.Address, backend bind.ContractBackend) (*Contract, error) { 123 contract, err := bindContract(address, backend, backend, backend) 124 if err != nil { 125 return nil, err 126 } 127 return &Contract{ContractCaller: ContractCaller{contract: contract}, ContractTransactor: ContractTransactor{contract: contract}, ContractFilterer: ContractFilterer{contract: contract}}, nil 128 } 129 130 // NewContractCaller creates a new read-only instance of Contract, bound to a specific deployed contract. 131 func NewContractCaller(address common.Address, caller bind.ContractCaller) (*ContractCaller, error) { 132 contract, err := bindContract(address, caller, nil, nil) 133 if err != nil { 134 return nil, err 135 } 136 return &ContractCaller{contract: contract}, nil 137 } 138 139 // NewContractTransactor creates a new write-only instance of Contract, bound to a specific deployed contract. 140 func NewContractTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractTransactor, error) { 141 contract, err := bindContract(address, nil, transactor, nil) 142 if err != nil { 143 return nil, err 144 } 145 return &ContractTransactor{contract: contract}, nil 146 } 147 148 // NewContractFilterer creates a new log filterer instance of Contract, bound to a specific deployed contract. 149 func NewContractFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractFilterer, error) { 150 contract, err := bindContract(address, nil, nil, filterer) 151 if err != nil { 152 return nil, err 153 } 154 return &ContractFilterer{contract: contract}, nil 155 } 156 157 // bindContract binds a generic wrapper to an already deployed contract. 158 func bindContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 159 parsed, err := abi.JSON(strings.NewReader(ContractABI)) 160 if err != nil { 161 return nil, err 162 } 163 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 164 } 165 166 // Call invokes the (constant) contract method with params as input values and 167 // sets the output to result. The result type might be a single field for simple 168 // returns, a slice of interfaces for anonymous returns and a struct for named 169 // returns. 170 func (_Contract *ContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 171 return _Contract.Contract.ContractCaller.contract.Call(opts, result, method, params...) 172 } 173 174 // Transfer initiates a plain transaction to move funds to the contract, calling 175 // its default method if one is available. 176 func (_Contract *ContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 177 return _Contract.Contract.ContractTransactor.contract.Transfer(opts) 178 } 179 180 // Transact invokes the (paid) contract method with params as input values. 181 func (_Contract *ContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 182 return _Contract.Contract.ContractTransactor.contract.Transact(opts, method, params...) 183 } 184 185 // Call invokes the (constant) contract method with params as input values and 186 // sets the output to result. The result type might be a single field for simple 187 // returns, a slice of interfaces for anonymous returns and a struct for named 188 // returns. 189 func (_Contract *ContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { 190 return _Contract.Contract.contract.Call(opts, result, method, params...) 191 } 192 193 // Transfer initiates a plain transaction to move funds to the contract, calling 194 // its default method if one is available. 195 func (_Contract *ContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 196 return _Contract.Contract.contract.Transfer(opts) 197 } 198 199 // Transact invokes the (paid) contract method with params as input values. 200 func (_Contract *ContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 201 return _Contract.Contract.contract.Transact(opts, method, params...) 202 } 203 204 // CurrentEpoch is a free data retrieval call binding the contract method 0x76671808. 205 // 206 // Solidity: function currentEpoch() view returns(uint256) 207 func (_Contract *ContractCaller) CurrentEpoch(opts *bind.CallOpts) (*big.Int, error) { 208 var out []interface{} 209 err := _Contract.contract.Call(opts, &out, "currentEpoch") 210 211 if err != nil { 212 return *new(*big.Int), err 213 } 214 215 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 216 217 return out0, err 218 219 } 220 221 // CurrentEpoch is a free data retrieval call binding the contract method 0x76671808. 222 // 223 // Solidity: function currentEpoch() view returns(uint256) 224 func (_Contract *ContractSession) CurrentEpoch() (*big.Int, error) { 225 return _Contract.Contract.CurrentEpoch(&_Contract.CallOpts) 226 } 227 228 // CurrentEpoch is a free data retrieval call binding the contract method 0x76671808. 229 // 230 // Solidity: function currentEpoch() view returns(uint256) 231 func (_Contract *ContractCallerSession) CurrentEpoch() (*big.Int, error) { 232 return _Contract.Contract.CurrentEpoch(&_Contract.CallOpts) 233 } 234 235 // CurrentSealedEpoch is a free data retrieval call binding the contract method 0x7cacb1d6. 236 // 237 // Solidity: function currentSealedEpoch() view returns(uint256) 238 func (_Contract *ContractCaller) CurrentSealedEpoch(opts *bind.CallOpts) (*big.Int, error) { 239 var out []interface{} 240 err := _Contract.contract.Call(opts, &out, "currentSealedEpoch") 241 242 if err != nil { 243 return *new(*big.Int), err 244 } 245 246 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 247 248 return out0, err 249 250 } 251 252 // CurrentSealedEpoch is a free data retrieval call binding the contract method 0x7cacb1d6. 253 // 254 // Solidity: function currentSealedEpoch() view returns(uint256) 255 func (_Contract *ContractSession) CurrentSealedEpoch() (*big.Int, error) { 256 return _Contract.Contract.CurrentSealedEpoch(&_Contract.CallOpts) 257 } 258 259 // CurrentSealedEpoch is a free data retrieval call binding the contract method 0x7cacb1d6. 260 // 261 // Solidity: function currentSealedEpoch() view returns(uint256) 262 func (_Contract *ContractCallerSession) CurrentSealedEpoch() (*big.Int, error) { 263 return _Contract.Contract.CurrentSealedEpoch(&_Contract.CallOpts) 264 } 265 266 // GetEpochAccumulatedOriginatedTxsFee is a free data retrieval call binding the contract method 0xdc31e1af. 267 // 268 // Solidity: function getEpochAccumulatedOriginatedTxsFee(uint256 epoch, uint256 validatorID) view returns(uint256) 269 func (_Contract *ContractCaller) GetEpochAccumulatedOriginatedTxsFee(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 270 var out []interface{} 271 err := _Contract.contract.Call(opts, &out, "getEpochAccumulatedOriginatedTxsFee", epoch, validatorID) 272 273 if err != nil { 274 return *new(*big.Int), err 275 } 276 277 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 278 279 return out0, err 280 281 } 282 283 // GetEpochAccumulatedOriginatedTxsFee is a free data retrieval call binding the contract method 0xdc31e1af. 284 // 285 // Solidity: function getEpochAccumulatedOriginatedTxsFee(uint256 epoch, uint256 validatorID) view returns(uint256) 286 func (_Contract *ContractSession) GetEpochAccumulatedOriginatedTxsFee(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 287 return _Contract.Contract.GetEpochAccumulatedOriginatedTxsFee(&_Contract.CallOpts, epoch, validatorID) 288 } 289 290 // GetEpochAccumulatedOriginatedTxsFee is a free data retrieval call binding the contract method 0xdc31e1af. 291 // 292 // Solidity: function getEpochAccumulatedOriginatedTxsFee(uint256 epoch, uint256 validatorID) view returns(uint256) 293 func (_Contract *ContractCallerSession) GetEpochAccumulatedOriginatedTxsFee(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 294 return _Contract.Contract.GetEpochAccumulatedOriginatedTxsFee(&_Contract.CallOpts, epoch, validatorID) 295 } 296 297 // GetEpochAccumulatedRewardPerToken is a free data retrieval call binding the contract method 0x61e53fcc. 298 // 299 // Solidity: function getEpochAccumulatedRewardPerToken(uint256 epoch, uint256 validatorID) view returns(uint256) 300 func (_Contract *ContractCaller) GetEpochAccumulatedRewardPerToken(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 301 var out []interface{} 302 err := _Contract.contract.Call(opts, &out, "getEpochAccumulatedRewardPerToken", epoch, validatorID) 303 304 if err != nil { 305 return *new(*big.Int), err 306 } 307 308 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 309 310 return out0, err 311 312 } 313 314 // GetEpochAccumulatedRewardPerToken is a free data retrieval call binding the contract method 0x61e53fcc. 315 // 316 // Solidity: function getEpochAccumulatedRewardPerToken(uint256 epoch, uint256 validatorID) view returns(uint256) 317 func (_Contract *ContractSession) GetEpochAccumulatedRewardPerToken(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 318 return _Contract.Contract.GetEpochAccumulatedRewardPerToken(&_Contract.CallOpts, epoch, validatorID) 319 } 320 321 // GetEpochAccumulatedRewardPerToken is a free data retrieval call binding the contract method 0x61e53fcc. 322 // 323 // Solidity: function getEpochAccumulatedRewardPerToken(uint256 epoch, uint256 validatorID) view returns(uint256) 324 func (_Contract *ContractCallerSession) GetEpochAccumulatedRewardPerToken(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 325 return _Contract.Contract.GetEpochAccumulatedRewardPerToken(&_Contract.CallOpts, epoch, validatorID) 326 } 327 328 // GetEpochAccumulatedUptime is a free data retrieval call binding the contract method 0xdf00c922. 329 // 330 // Solidity: function getEpochAccumulatedUptime(uint256 epoch, uint256 validatorID) view returns(uint256) 331 func (_Contract *ContractCaller) GetEpochAccumulatedUptime(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 332 var out []interface{} 333 err := _Contract.contract.Call(opts, &out, "getEpochAccumulatedUptime", epoch, validatorID) 334 335 if err != nil { 336 return *new(*big.Int), err 337 } 338 339 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 340 341 return out0, err 342 343 } 344 345 // GetEpochAccumulatedUptime is a free data retrieval call binding the contract method 0xdf00c922. 346 // 347 // Solidity: function getEpochAccumulatedUptime(uint256 epoch, uint256 validatorID) view returns(uint256) 348 func (_Contract *ContractSession) GetEpochAccumulatedUptime(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 349 return _Contract.Contract.GetEpochAccumulatedUptime(&_Contract.CallOpts, epoch, validatorID) 350 } 351 352 // GetEpochAccumulatedUptime is a free data retrieval call binding the contract method 0xdf00c922. 353 // 354 // Solidity: function getEpochAccumulatedUptime(uint256 epoch, uint256 validatorID) view returns(uint256) 355 func (_Contract *ContractCallerSession) GetEpochAccumulatedUptime(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 356 return _Contract.Contract.GetEpochAccumulatedUptime(&_Contract.CallOpts, epoch, validatorID) 357 } 358 359 // GetEpochOfflineBlocks is a free data retrieval call binding the contract method 0xa198d229. 360 // 361 // Solidity: function getEpochOfflineBlocks(uint256 epoch, uint256 validatorID) view returns(uint256) 362 func (_Contract *ContractCaller) GetEpochOfflineBlocks(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 363 var out []interface{} 364 err := _Contract.contract.Call(opts, &out, "getEpochOfflineBlocks", epoch, validatorID) 365 366 if err != nil { 367 return *new(*big.Int), err 368 } 369 370 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 371 372 return out0, err 373 374 } 375 376 // GetEpochOfflineBlocks is a free data retrieval call binding the contract method 0xa198d229. 377 // 378 // Solidity: function getEpochOfflineBlocks(uint256 epoch, uint256 validatorID) view returns(uint256) 379 func (_Contract *ContractSession) GetEpochOfflineBlocks(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 380 return _Contract.Contract.GetEpochOfflineBlocks(&_Contract.CallOpts, epoch, validatorID) 381 } 382 383 // GetEpochOfflineBlocks is a free data retrieval call binding the contract method 0xa198d229. 384 // 385 // Solidity: function getEpochOfflineBlocks(uint256 epoch, uint256 validatorID) view returns(uint256) 386 func (_Contract *ContractCallerSession) GetEpochOfflineBlocks(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 387 return _Contract.Contract.GetEpochOfflineBlocks(&_Contract.CallOpts, epoch, validatorID) 388 } 389 390 // GetEpochOfflineTime is a free data retrieval call binding the contract method 0xe261641a. 391 // 392 // Solidity: function getEpochOfflineTime(uint256 epoch, uint256 validatorID) view returns(uint256) 393 func (_Contract *ContractCaller) GetEpochOfflineTime(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 394 var out []interface{} 395 err := _Contract.contract.Call(opts, &out, "getEpochOfflineTime", epoch, validatorID) 396 397 if err != nil { 398 return *new(*big.Int), err 399 } 400 401 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 402 403 return out0, err 404 405 } 406 407 // GetEpochOfflineTime is a free data retrieval call binding the contract method 0xe261641a. 408 // 409 // Solidity: function getEpochOfflineTime(uint256 epoch, uint256 validatorID) view returns(uint256) 410 func (_Contract *ContractSession) GetEpochOfflineTime(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 411 return _Contract.Contract.GetEpochOfflineTime(&_Contract.CallOpts, epoch, validatorID) 412 } 413 414 // GetEpochOfflineTime is a free data retrieval call binding the contract method 0xe261641a. 415 // 416 // Solidity: function getEpochOfflineTime(uint256 epoch, uint256 validatorID) view returns(uint256) 417 func (_Contract *ContractCallerSession) GetEpochOfflineTime(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 418 return _Contract.Contract.GetEpochOfflineTime(&_Contract.CallOpts, epoch, validatorID) 419 } 420 421 // GetEpochReceivedStake is a free data retrieval call binding the contract method 0x58f95b80. 422 // 423 // Solidity: function getEpochReceivedStake(uint256 epoch, uint256 validatorID) view returns(uint256) 424 func (_Contract *ContractCaller) GetEpochReceivedStake(opts *bind.CallOpts, epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 425 var out []interface{} 426 err := _Contract.contract.Call(opts, &out, "getEpochReceivedStake", epoch, validatorID) 427 428 if err != nil { 429 return *new(*big.Int), err 430 } 431 432 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 433 434 return out0, err 435 436 } 437 438 // GetEpochReceivedStake is a free data retrieval call binding the contract method 0x58f95b80. 439 // 440 // Solidity: function getEpochReceivedStake(uint256 epoch, uint256 validatorID) view returns(uint256) 441 func (_Contract *ContractSession) GetEpochReceivedStake(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 442 return _Contract.Contract.GetEpochReceivedStake(&_Contract.CallOpts, epoch, validatorID) 443 } 444 445 // GetEpochReceivedStake is a free data retrieval call binding the contract method 0x58f95b80. 446 // 447 // Solidity: function getEpochReceivedStake(uint256 epoch, uint256 validatorID) view returns(uint256) 448 func (_Contract *ContractCallerSession) GetEpochReceivedStake(epoch *big.Int, validatorID *big.Int) (*big.Int, error) { 449 return _Contract.Contract.GetEpochReceivedStake(&_Contract.CallOpts, epoch, validatorID) 450 } 451 452 // GetEpochSnapshot is a free data retrieval call binding the contract method 0x39b80c00. 453 // 454 // Solidity: function getEpochSnapshot(uint256 ) view returns(uint256 endTime, uint256 epochFee, uint256 totalBaseRewardWeight, uint256 totalTxRewardWeight, uint256 baseRewardPerSecond, uint256 totalStake, uint256 totalSupply) 455 func (_Contract *ContractCaller) GetEpochSnapshot(opts *bind.CallOpts, arg0 *big.Int) (struct { 456 EndTime *big.Int 457 EpochFee *big.Int 458 TotalBaseRewardWeight *big.Int 459 TotalTxRewardWeight *big.Int 460 BaseRewardPerSecond *big.Int 461 TotalStake *big.Int 462 TotalSupply *big.Int 463 }, error) { 464 var out []interface{} 465 err := _Contract.contract.Call(opts, &out, "getEpochSnapshot", arg0) 466 467 outstruct := new(struct { 468 EndTime *big.Int 469 EpochFee *big.Int 470 TotalBaseRewardWeight *big.Int 471 TotalTxRewardWeight *big.Int 472 BaseRewardPerSecond *big.Int 473 TotalStake *big.Int 474 TotalSupply *big.Int 475 }) 476 if err != nil { 477 return *outstruct, err 478 } 479 480 outstruct.EndTime = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 481 outstruct.EpochFee = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 482 outstruct.TotalBaseRewardWeight = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 483 outstruct.TotalTxRewardWeight = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) 484 outstruct.BaseRewardPerSecond = *abi.ConvertType(out[4], new(*big.Int)).(**big.Int) 485 outstruct.TotalStake = *abi.ConvertType(out[5], new(*big.Int)).(**big.Int) 486 outstruct.TotalSupply = *abi.ConvertType(out[6], new(*big.Int)).(**big.Int) 487 488 return *outstruct, err 489 490 } 491 492 // GetEpochSnapshot is a free data retrieval call binding the contract method 0x39b80c00. 493 // 494 // Solidity: function getEpochSnapshot(uint256 ) view returns(uint256 endTime, uint256 epochFee, uint256 totalBaseRewardWeight, uint256 totalTxRewardWeight, uint256 baseRewardPerSecond, uint256 totalStake, uint256 totalSupply) 495 func (_Contract *ContractSession) GetEpochSnapshot(arg0 *big.Int) (struct { 496 EndTime *big.Int 497 EpochFee *big.Int 498 TotalBaseRewardWeight *big.Int 499 TotalTxRewardWeight *big.Int 500 BaseRewardPerSecond *big.Int 501 TotalStake *big.Int 502 TotalSupply *big.Int 503 }, error) { 504 return _Contract.Contract.GetEpochSnapshot(&_Contract.CallOpts, arg0) 505 } 506 507 // GetEpochSnapshot is a free data retrieval call binding the contract method 0x39b80c00. 508 // 509 // Solidity: function getEpochSnapshot(uint256 ) view returns(uint256 endTime, uint256 epochFee, uint256 totalBaseRewardWeight, uint256 totalTxRewardWeight, uint256 baseRewardPerSecond, uint256 totalStake, uint256 totalSupply) 510 func (_Contract *ContractCallerSession) GetEpochSnapshot(arg0 *big.Int) (struct { 511 EndTime *big.Int 512 EpochFee *big.Int 513 TotalBaseRewardWeight *big.Int 514 TotalTxRewardWeight *big.Int 515 BaseRewardPerSecond *big.Int 516 TotalStake *big.Int 517 TotalSupply *big.Int 518 }, error) { 519 return _Contract.Contract.GetEpochSnapshot(&_Contract.CallOpts, arg0) 520 } 521 522 // GetEpochValidatorIDs is a free data retrieval call binding the contract method 0xb88a37e2. 523 // 524 // Solidity: function getEpochValidatorIDs(uint256 epoch) view returns(uint256[]) 525 func (_Contract *ContractCaller) GetEpochValidatorIDs(opts *bind.CallOpts, epoch *big.Int) ([]*big.Int, error) { 526 var out []interface{} 527 err := _Contract.contract.Call(opts, &out, "getEpochValidatorIDs", epoch) 528 529 if err != nil { 530 return *new([]*big.Int), err 531 } 532 533 out0 := *abi.ConvertType(out[0], new([]*big.Int)).(*[]*big.Int) 534 535 return out0, err 536 537 } 538 539 // GetEpochValidatorIDs is a free data retrieval call binding the contract method 0xb88a37e2. 540 // 541 // Solidity: function getEpochValidatorIDs(uint256 epoch) view returns(uint256[]) 542 func (_Contract *ContractSession) GetEpochValidatorIDs(epoch *big.Int) ([]*big.Int, error) { 543 return _Contract.Contract.GetEpochValidatorIDs(&_Contract.CallOpts, epoch) 544 } 545 546 // GetEpochValidatorIDs is a free data retrieval call binding the contract method 0xb88a37e2. 547 // 548 // Solidity: function getEpochValidatorIDs(uint256 epoch) view returns(uint256[]) 549 func (_Contract *ContractCallerSession) GetEpochValidatorIDs(epoch *big.Int) ([]*big.Int, error) { 550 return _Contract.Contract.GetEpochValidatorIDs(&_Contract.CallOpts, epoch) 551 } 552 553 // GetLockedStake is a free data retrieval call binding the contract method 0x670322f8. 554 // 555 // Solidity: function getLockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 556 func (_Contract *ContractCaller) GetLockedStake(opts *bind.CallOpts, delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 557 var out []interface{} 558 err := _Contract.contract.Call(opts, &out, "getLockedStake", delegator, toValidatorID) 559 560 if err != nil { 561 return *new(*big.Int), err 562 } 563 564 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 565 566 return out0, err 567 568 } 569 570 // GetLockedStake is a free data retrieval call binding the contract method 0x670322f8. 571 // 572 // Solidity: function getLockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 573 func (_Contract *ContractSession) GetLockedStake(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 574 return _Contract.Contract.GetLockedStake(&_Contract.CallOpts, delegator, toValidatorID) 575 } 576 577 // GetLockedStake is a free data retrieval call binding the contract method 0x670322f8. 578 // 579 // Solidity: function getLockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 580 func (_Contract *ContractCallerSession) GetLockedStake(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 581 return _Contract.Contract.GetLockedStake(&_Contract.CallOpts, delegator, toValidatorID) 582 } 583 584 // GetLockupInfo is a free data retrieval call binding the contract method 0x96c7ee46. 585 // 586 // Solidity: function getLockupInfo(address , uint256 ) view returns(uint256 lockedStake, uint256 fromEpoch, uint256 endTime, uint256 duration) 587 func (_Contract *ContractCaller) GetLockupInfo(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (struct { 588 LockedStake *big.Int 589 FromEpoch *big.Int 590 EndTime *big.Int 591 Duration *big.Int 592 }, error) { 593 var out []interface{} 594 err := _Contract.contract.Call(opts, &out, "getLockupInfo", arg0, arg1) 595 596 outstruct := new(struct { 597 LockedStake *big.Int 598 FromEpoch *big.Int 599 EndTime *big.Int 600 Duration *big.Int 601 }) 602 if err != nil { 603 return *outstruct, err 604 } 605 606 outstruct.LockedStake = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 607 outstruct.FromEpoch = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 608 outstruct.EndTime = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 609 outstruct.Duration = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) 610 611 return *outstruct, err 612 613 } 614 615 // GetLockupInfo is a free data retrieval call binding the contract method 0x96c7ee46. 616 // 617 // Solidity: function getLockupInfo(address , uint256 ) view returns(uint256 lockedStake, uint256 fromEpoch, uint256 endTime, uint256 duration) 618 func (_Contract *ContractSession) GetLockupInfo(arg0 common.Address, arg1 *big.Int) (struct { 619 LockedStake *big.Int 620 FromEpoch *big.Int 621 EndTime *big.Int 622 Duration *big.Int 623 }, error) { 624 return _Contract.Contract.GetLockupInfo(&_Contract.CallOpts, arg0, arg1) 625 } 626 627 // GetLockupInfo is a free data retrieval call binding the contract method 0x96c7ee46. 628 // 629 // Solidity: function getLockupInfo(address , uint256 ) view returns(uint256 lockedStake, uint256 fromEpoch, uint256 endTime, uint256 duration) 630 func (_Contract *ContractCallerSession) GetLockupInfo(arg0 common.Address, arg1 *big.Int) (struct { 631 LockedStake *big.Int 632 FromEpoch *big.Int 633 EndTime *big.Int 634 Duration *big.Int 635 }, error) { 636 return _Contract.Contract.GetLockupInfo(&_Contract.CallOpts, arg0, arg1) 637 } 638 639 // GetSelfStake is a free data retrieval call binding the contract method 0x5601fe01. 640 // 641 // Solidity: function getSelfStake(uint256 validatorID) view returns(uint256) 642 func (_Contract *ContractCaller) GetSelfStake(opts *bind.CallOpts, validatorID *big.Int) (*big.Int, error) { 643 var out []interface{} 644 err := _Contract.contract.Call(opts, &out, "getSelfStake", validatorID) 645 646 if err != nil { 647 return *new(*big.Int), err 648 } 649 650 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 651 652 return out0, err 653 654 } 655 656 // GetSelfStake is a free data retrieval call binding the contract method 0x5601fe01. 657 // 658 // Solidity: function getSelfStake(uint256 validatorID) view returns(uint256) 659 func (_Contract *ContractSession) GetSelfStake(validatorID *big.Int) (*big.Int, error) { 660 return _Contract.Contract.GetSelfStake(&_Contract.CallOpts, validatorID) 661 } 662 663 // GetSelfStake is a free data retrieval call binding the contract method 0x5601fe01. 664 // 665 // Solidity: function getSelfStake(uint256 validatorID) view returns(uint256) 666 func (_Contract *ContractCallerSession) GetSelfStake(validatorID *big.Int) (*big.Int, error) { 667 return _Contract.Contract.GetSelfStake(&_Contract.CallOpts, validatorID) 668 } 669 670 // GetStake is a free data retrieval call binding the contract method 0xcfd47663. 671 // 672 // Solidity: function getStake(address , uint256 ) view returns(uint256) 673 func (_Contract *ContractCaller) GetStake(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 674 var out []interface{} 675 err := _Contract.contract.Call(opts, &out, "getStake", arg0, arg1) 676 677 if err != nil { 678 return *new(*big.Int), err 679 } 680 681 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 682 683 return out0, err 684 685 } 686 687 // GetStake is a free data retrieval call binding the contract method 0xcfd47663. 688 // 689 // Solidity: function getStake(address , uint256 ) view returns(uint256) 690 func (_Contract *ContractSession) GetStake(arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 691 return _Contract.Contract.GetStake(&_Contract.CallOpts, arg0, arg1) 692 } 693 694 // GetStake is a free data retrieval call binding the contract method 0xcfd47663. 695 // 696 // Solidity: function getStake(address , uint256 ) view returns(uint256) 697 func (_Contract *ContractCallerSession) GetStake(arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 698 return _Contract.Contract.GetStake(&_Contract.CallOpts, arg0, arg1) 699 } 700 701 // GetStashedLockupRewards is a free data retrieval call binding the contract method 0xb810e411. 702 // 703 // Solidity: function getStashedLockupRewards(address , uint256 ) view returns(uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 704 func (_Contract *ContractCaller) GetStashedLockupRewards(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (struct { 705 LockupExtraReward *big.Int 706 LockupBaseReward *big.Int 707 UnlockedReward *big.Int 708 }, error) { 709 var out []interface{} 710 err := _Contract.contract.Call(opts, &out, "getStashedLockupRewards", arg0, arg1) 711 712 outstruct := new(struct { 713 LockupExtraReward *big.Int 714 LockupBaseReward *big.Int 715 UnlockedReward *big.Int 716 }) 717 if err != nil { 718 return *outstruct, err 719 } 720 721 outstruct.LockupExtraReward = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 722 outstruct.LockupBaseReward = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 723 outstruct.UnlockedReward = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 724 725 return *outstruct, err 726 727 } 728 729 // GetStashedLockupRewards is a free data retrieval call binding the contract method 0xb810e411. 730 // 731 // Solidity: function getStashedLockupRewards(address , uint256 ) view returns(uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 732 func (_Contract *ContractSession) GetStashedLockupRewards(arg0 common.Address, arg1 *big.Int) (struct { 733 LockupExtraReward *big.Int 734 LockupBaseReward *big.Int 735 UnlockedReward *big.Int 736 }, error) { 737 return _Contract.Contract.GetStashedLockupRewards(&_Contract.CallOpts, arg0, arg1) 738 } 739 740 // GetStashedLockupRewards is a free data retrieval call binding the contract method 0xb810e411. 741 // 742 // Solidity: function getStashedLockupRewards(address , uint256 ) view returns(uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 743 func (_Contract *ContractCallerSession) GetStashedLockupRewards(arg0 common.Address, arg1 *big.Int) (struct { 744 LockupExtraReward *big.Int 745 LockupBaseReward *big.Int 746 UnlockedReward *big.Int 747 }, error) { 748 return _Contract.Contract.GetStashedLockupRewards(&_Contract.CallOpts, arg0, arg1) 749 } 750 751 // GetUnlockedStake is a free data retrieval call binding the contract method 0x12622d0e. 752 // 753 // Solidity: function getUnlockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 754 func (_Contract *ContractCaller) GetUnlockedStake(opts *bind.CallOpts, delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 755 var out []interface{} 756 err := _Contract.contract.Call(opts, &out, "getUnlockedStake", delegator, toValidatorID) 757 758 if err != nil { 759 return *new(*big.Int), err 760 } 761 762 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 763 764 return out0, err 765 766 } 767 768 // GetUnlockedStake is a free data retrieval call binding the contract method 0x12622d0e. 769 // 770 // Solidity: function getUnlockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 771 func (_Contract *ContractSession) GetUnlockedStake(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 772 return _Contract.Contract.GetUnlockedStake(&_Contract.CallOpts, delegator, toValidatorID) 773 } 774 775 // GetUnlockedStake is a free data retrieval call binding the contract method 0x12622d0e. 776 // 777 // Solidity: function getUnlockedStake(address delegator, uint256 toValidatorID) view returns(uint256) 778 func (_Contract *ContractCallerSession) GetUnlockedStake(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 779 return _Contract.Contract.GetUnlockedStake(&_Contract.CallOpts, delegator, toValidatorID) 780 } 781 782 // GetValidator is a free data retrieval call binding the contract method 0xb5d89627. 783 // 784 // Solidity: function getValidator(uint256 ) view returns(uint256 status, uint256 deactivatedTime, uint256 deactivatedEpoch, uint256 receivedStake, uint256 createdEpoch, uint256 createdTime, address auth) 785 func (_Contract *ContractCaller) GetValidator(opts *bind.CallOpts, arg0 *big.Int) (struct { 786 Status *big.Int 787 DeactivatedTime *big.Int 788 DeactivatedEpoch *big.Int 789 ReceivedStake *big.Int 790 CreatedEpoch *big.Int 791 CreatedTime *big.Int 792 Auth common.Address 793 }, error) { 794 var out []interface{} 795 err := _Contract.contract.Call(opts, &out, "getValidator", arg0) 796 797 outstruct := new(struct { 798 Status *big.Int 799 DeactivatedTime *big.Int 800 DeactivatedEpoch *big.Int 801 ReceivedStake *big.Int 802 CreatedEpoch *big.Int 803 CreatedTime *big.Int 804 Auth common.Address 805 }) 806 if err != nil { 807 return *outstruct, err 808 } 809 810 outstruct.Status = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 811 outstruct.DeactivatedTime = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 812 outstruct.DeactivatedEpoch = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 813 outstruct.ReceivedStake = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) 814 outstruct.CreatedEpoch = *abi.ConvertType(out[4], new(*big.Int)).(**big.Int) 815 outstruct.CreatedTime = *abi.ConvertType(out[5], new(*big.Int)).(**big.Int) 816 outstruct.Auth = *abi.ConvertType(out[6], new(common.Address)).(*common.Address) 817 818 return *outstruct, err 819 820 } 821 822 // GetValidator is a free data retrieval call binding the contract method 0xb5d89627. 823 // 824 // Solidity: function getValidator(uint256 ) view returns(uint256 status, uint256 deactivatedTime, uint256 deactivatedEpoch, uint256 receivedStake, uint256 createdEpoch, uint256 createdTime, address auth) 825 func (_Contract *ContractSession) GetValidator(arg0 *big.Int) (struct { 826 Status *big.Int 827 DeactivatedTime *big.Int 828 DeactivatedEpoch *big.Int 829 ReceivedStake *big.Int 830 CreatedEpoch *big.Int 831 CreatedTime *big.Int 832 Auth common.Address 833 }, error) { 834 return _Contract.Contract.GetValidator(&_Contract.CallOpts, arg0) 835 } 836 837 // GetValidator is a free data retrieval call binding the contract method 0xb5d89627. 838 // 839 // Solidity: function getValidator(uint256 ) view returns(uint256 status, uint256 deactivatedTime, uint256 deactivatedEpoch, uint256 receivedStake, uint256 createdEpoch, uint256 createdTime, address auth) 840 func (_Contract *ContractCallerSession) GetValidator(arg0 *big.Int) (struct { 841 Status *big.Int 842 DeactivatedTime *big.Int 843 DeactivatedEpoch *big.Int 844 ReceivedStake *big.Int 845 CreatedEpoch *big.Int 846 CreatedTime *big.Int 847 Auth common.Address 848 }, error) { 849 return _Contract.Contract.GetValidator(&_Contract.CallOpts, arg0) 850 } 851 852 // GetValidatorID is a free data retrieval call binding the contract method 0x0135b1db. 853 // 854 // Solidity: function getValidatorID(address ) view returns(uint256) 855 func (_Contract *ContractCaller) GetValidatorID(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { 856 var out []interface{} 857 err := _Contract.contract.Call(opts, &out, "getValidatorID", arg0) 858 859 if err != nil { 860 return *new(*big.Int), err 861 } 862 863 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 864 865 return out0, err 866 867 } 868 869 // GetValidatorID is a free data retrieval call binding the contract method 0x0135b1db. 870 // 871 // Solidity: function getValidatorID(address ) view returns(uint256) 872 func (_Contract *ContractSession) GetValidatorID(arg0 common.Address) (*big.Int, error) { 873 return _Contract.Contract.GetValidatorID(&_Contract.CallOpts, arg0) 874 } 875 876 // GetValidatorID is a free data retrieval call binding the contract method 0x0135b1db. 877 // 878 // Solidity: function getValidatorID(address ) view returns(uint256) 879 func (_Contract *ContractCallerSession) GetValidatorID(arg0 common.Address) (*big.Int, error) { 880 return _Contract.Contract.GetValidatorID(&_Contract.CallOpts, arg0) 881 } 882 883 // GetValidatorPubkey is a free data retrieval call binding the contract method 0x854873e1. 884 // 885 // Solidity: function getValidatorPubkey(uint256 ) view returns(bytes) 886 func (_Contract *ContractCaller) GetValidatorPubkey(opts *bind.CallOpts, arg0 *big.Int) ([]byte, error) { 887 var out []interface{} 888 err := _Contract.contract.Call(opts, &out, "getValidatorPubkey", arg0) 889 890 if err != nil { 891 return *new([]byte), err 892 } 893 894 out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) 895 896 return out0, err 897 898 } 899 900 // GetValidatorPubkey is a free data retrieval call binding the contract method 0x854873e1. 901 // 902 // Solidity: function getValidatorPubkey(uint256 ) view returns(bytes) 903 func (_Contract *ContractSession) GetValidatorPubkey(arg0 *big.Int) ([]byte, error) { 904 return _Contract.Contract.GetValidatorPubkey(&_Contract.CallOpts, arg0) 905 } 906 907 // GetValidatorPubkey is a free data retrieval call binding the contract method 0x854873e1. 908 // 909 // Solidity: function getValidatorPubkey(uint256 ) view returns(bytes) 910 func (_Contract *ContractCallerSession) GetValidatorPubkey(arg0 *big.Int) ([]byte, error) { 911 return _Contract.Contract.GetValidatorPubkey(&_Contract.CallOpts, arg0) 912 } 913 914 // GetWithdrawalRequest is a free data retrieval call binding the contract method 0x1f270152. 915 // 916 // Solidity: function getWithdrawalRequest(address , uint256 , uint256 ) view returns(uint256 epoch, uint256 time, uint256 amount) 917 func (_Contract *ContractCaller) GetWithdrawalRequest(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int, arg2 *big.Int) (struct { 918 Epoch *big.Int 919 Time *big.Int 920 Amount *big.Int 921 }, error) { 922 var out []interface{} 923 err := _Contract.contract.Call(opts, &out, "getWithdrawalRequest", arg0, arg1, arg2) 924 925 outstruct := new(struct { 926 Epoch *big.Int 927 Time *big.Int 928 Amount *big.Int 929 }) 930 if err != nil { 931 return *outstruct, err 932 } 933 934 outstruct.Epoch = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 935 outstruct.Time = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) 936 outstruct.Amount = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) 937 938 return *outstruct, err 939 940 } 941 942 // GetWithdrawalRequest is a free data retrieval call binding the contract method 0x1f270152. 943 // 944 // Solidity: function getWithdrawalRequest(address , uint256 , uint256 ) view returns(uint256 epoch, uint256 time, uint256 amount) 945 func (_Contract *ContractSession) GetWithdrawalRequest(arg0 common.Address, arg1 *big.Int, arg2 *big.Int) (struct { 946 Epoch *big.Int 947 Time *big.Int 948 Amount *big.Int 949 }, error) { 950 return _Contract.Contract.GetWithdrawalRequest(&_Contract.CallOpts, arg0, arg1, arg2) 951 } 952 953 // GetWithdrawalRequest is a free data retrieval call binding the contract method 0x1f270152. 954 // 955 // Solidity: function getWithdrawalRequest(address , uint256 , uint256 ) view returns(uint256 epoch, uint256 time, uint256 amount) 956 func (_Contract *ContractCallerSession) GetWithdrawalRequest(arg0 common.Address, arg1 *big.Int, arg2 *big.Int) (struct { 957 Epoch *big.Int 958 Time *big.Int 959 Amount *big.Int 960 }, error) { 961 return _Contract.Contract.GetWithdrawalRequest(&_Contract.CallOpts, arg0, arg1, arg2) 962 } 963 964 // IsLockedUp is a free data retrieval call binding the contract method 0xcfdbb7cd. 965 // 966 // Solidity: function isLockedUp(address delegator, uint256 toValidatorID) view returns(bool) 967 func (_Contract *ContractCaller) IsLockedUp(opts *bind.CallOpts, delegator common.Address, toValidatorID *big.Int) (bool, error) { 968 var out []interface{} 969 err := _Contract.contract.Call(opts, &out, "isLockedUp", delegator, toValidatorID) 970 971 if err != nil { 972 return *new(bool), err 973 } 974 975 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 976 977 return out0, err 978 979 } 980 981 // IsLockedUp is a free data retrieval call binding the contract method 0xcfdbb7cd. 982 // 983 // Solidity: function isLockedUp(address delegator, uint256 toValidatorID) view returns(bool) 984 func (_Contract *ContractSession) IsLockedUp(delegator common.Address, toValidatorID *big.Int) (bool, error) { 985 return _Contract.Contract.IsLockedUp(&_Contract.CallOpts, delegator, toValidatorID) 986 } 987 988 // IsLockedUp is a free data retrieval call binding the contract method 0xcfdbb7cd. 989 // 990 // Solidity: function isLockedUp(address delegator, uint256 toValidatorID) view returns(bool) 991 func (_Contract *ContractCallerSession) IsLockedUp(delegator common.Address, toValidatorID *big.Int) (bool, error) { 992 return _Contract.Contract.IsLockedUp(&_Contract.CallOpts, delegator, toValidatorID) 993 } 994 995 // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. 996 // 997 // Solidity: function isOwner() view returns(bool) 998 func (_Contract *ContractCaller) IsOwner(opts *bind.CallOpts) (bool, error) { 999 var out []interface{} 1000 err := _Contract.contract.Call(opts, &out, "isOwner") 1001 1002 if err != nil { 1003 return *new(bool), err 1004 } 1005 1006 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 1007 1008 return out0, err 1009 1010 } 1011 1012 // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. 1013 // 1014 // Solidity: function isOwner() view returns(bool) 1015 func (_Contract *ContractSession) IsOwner() (bool, error) { 1016 return _Contract.Contract.IsOwner(&_Contract.CallOpts) 1017 } 1018 1019 // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b. 1020 // 1021 // Solidity: function isOwner() view returns(bool) 1022 func (_Contract *ContractCallerSession) IsOwner() (bool, error) { 1023 return _Contract.Contract.IsOwner(&_Contract.CallOpts) 1024 } 1025 1026 // IsSlashed is a free data retrieval call binding the contract method 0xc3de580e. 1027 // 1028 // Solidity: function isSlashed(uint256 validatorID) view returns(bool) 1029 func (_Contract *ContractCaller) IsSlashed(opts *bind.CallOpts, validatorID *big.Int) (bool, error) { 1030 var out []interface{} 1031 err := _Contract.contract.Call(opts, &out, "isSlashed", validatorID) 1032 1033 if err != nil { 1034 return *new(bool), err 1035 } 1036 1037 out0 := *abi.ConvertType(out[0], new(bool)).(*bool) 1038 1039 return out0, err 1040 1041 } 1042 1043 // IsSlashed is a free data retrieval call binding the contract method 0xc3de580e. 1044 // 1045 // Solidity: function isSlashed(uint256 validatorID) view returns(bool) 1046 func (_Contract *ContractSession) IsSlashed(validatorID *big.Int) (bool, error) { 1047 return _Contract.Contract.IsSlashed(&_Contract.CallOpts, validatorID) 1048 } 1049 1050 // IsSlashed is a free data retrieval call binding the contract method 0xc3de580e. 1051 // 1052 // Solidity: function isSlashed(uint256 validatorID) view returns(bool) 1053 func (_Contract *ContractCallerSession) IsSlashed(validatorID *big.Int) (bool, error) { 1054 return _Contract.Contract.IsSlashed(&_Contract.CallOpts, validatorID) 1055 } 1056 1057 // LastValidatorID is a free data retrieval call binding the contract method 0xc7be95de. 1058 // 1059 // Solidity: function lastValidatorID() view returns(uint256) 1060 func (_Contract *ContractCaller) LastValidatorID(opts *bind.CallOpts) (*big.Int, error) { 1061 var out []interface{} 1062 err := _Contract.contract.Call(opts, &out, "lastValidatorID") 1063 1064 if err != nil { 1065 return *new(*big.Int), err 1066 } 1067 1068 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1069 1070 return out0, err 1071 1072 } 1073 1074 // LastValidatorID is a free data retrieval call binding the contract method 0xc7be95de. 1075 // 1076 // Solidity: function lastValidatorID() view returns(uint256) 1077 func (_Contract *ContractSession) LastValidatorID() (*big.Int, error) { 1078 return _Contract.Contract.LastValidatorID(&_Contract.CallOpts) 1079 } 1080 1081 // LastValidatorID is a free data retrieval call binding the contract method 0xc7be95de. 1082 // 1083 // Solidity: function lastValidatorID() view returns(uint256) 1084 func (_Contract *ContractCallerSession) LastValidatorID() (*big.Int, error) { 1085 return _Contract.Contract.LastValidatorID(&_Contract.CallOpts) 1086 } 1087 1088 // MinGasPrice is a free data retrieval call binding the contract method 0xd96ed505. 1089 // 1090 // Solidity: function minGasPrice() view returns(uint256) 1091 func (_Contract *ContractCaller) MinGasPrice(opts *bind.CallOpts) (*big.Int, error) { 1092 var out []interface{} 1093 err := _Contract.contract.Call(opts, &out, "minGasPrice") 1094 1095 if err != nil { 1096 return *new(*big.Int), err 1097 } 1098 1099 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1100 1101 return out0, err 1102 1103 } 1104 1105 // MinGasPrice is a free data retrieval call binding the contract method 0xd96ed505. 1106 // 1107 // Solidity: function minGasPrice() view returns(uint256) 1108 func (_Contract *ContractSession) MinGasPrice() (*big.Int, error) { 1109 return _Contract.Contract.MinGasPrice(&_Contract.CallOpts) 1110 } 1111 1112 // MinGasPrice is a free data retrieval call binding the contract method 0xd96ed505. 1113 // 1114 // Solidity: function minGasPrice() view returns(uint256) 1115 func (_Contract *ContractCallerSession) MinGasPrice() (*big.Int, error) { 1116 return _Contract.Contract.MinGasPrice(&_Contract.CallOpts) 1117 } 1118 1119 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 1120 // 1121 // Solidity: function owner() view returns(address) 1122 func (_Contract *ContractCaller) Owner(opts *bind.CallOpts) (common.Address, error) { 1123 var out []interface{} 1124 err := _Contract.contract.Call(opts, &out, "owner") 1125 1126 if err != nil { 1127 return *new(common.Address), err 1128 } 1129 1130 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1131 1132 return out0, err 1133 1134 } 1135 1136 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 1137 // 1138 // Solidity: function owner() view returns(address) 1139 func (_Contract *ContractSession) Owner() (common.Address, error) { 1140 return _Contract.Contract.Owner(&_Contract.CallOpts) 1141 } 1142 1143 // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. 1144 // 1145 // Solidity: function owner() view returns(address) 1146 func (_Contract *ContractCallerSession) Owner() (common.Address, error) { 1147 return _Contract.Contract.Owner(&_Contract.CallOpts) 1148 } 1149 1150 // PendingRewards is a free data retrieval call binding the contract method 0x6099ecb2. 1151 // 1152 // Solidity: function pendingRewards(address delegator, uint256 toValidatorID) view returns(uint256) 1153 func (_Contract *ContractCaller) PendingRewards(opts *bind.CallOpts, delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 1154 var out []interface{} 1155 err := _Contract.contract.Call(opts, &out, "pendingRewards", delegator, toValidatorID) 1156 1157 if err != nil { 1158 return *new(*big.Int), err 1159 } 1160 1161 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1162 1163 return out0, err 1164 1165 } 1166 1167 // PendingRewards is a free data retrieval call binding the contract method 0x6099ecb2. 1168 // 1169 // Solidity: function pendingRewards(address delegator, uint256 toValidatorID) view returns(uint256) 1170 func (_Contract *ContractSession) PendingRewards(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 1171 return _Contract.Contract.PendingRewards(&_Contract.CallOpts, delegator, toValidatorID) 1172 } 1173 1174 // PendingRewards is a free data retrieval call binding the contract method 0x6099ecb2. 1175 // 1176 // Solidity: function pendingRewards(address delegator, uint256 toValidatorID) view returns(uint256) 1177 func (_Contract *ContractCallerSession) PendingRewards(delegator common.Address, toValidatorID *big.Int) (*big.Int, error) { 1178 return _Contract.Contract.PendingRewards(&_Contract.CallOpts, delegator, toValidatorID) 1179 } 1180 1181 // RewardsStash is a free data retrieval call binding the contract method 0x6f498663. 1182 // 1183 // Solidity: function rewardsStash(address delegator, uint256 validatorID) view returns(uint256) 1184 func (_Contract *ContractCaller) RewardsStash(opts *bind.CallOpts, delegator common.Address, validatorID *big.Int) (*big.Int, error) { 1185 var out []interface{} 1186 err := _Contract.contract.Call(opts, &out, "rewardsStash", delegator, validatorID) 1187 1188 if err != nil { 1189 return *new(*big.Int), err 1190 } 1191 1192 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1193 1194 return out0, err 1195 1196 } 1197 1198 // RewardsStash is a free data retrieval call binding the contract method 0x6f498663. 1199 // 1200 // Solidity: function rewardsStash(address delegator, uint256 validatorID) view returns(uint256) 1201 func (_Contract *ContractSession) RewardsStash(delegator common.Address, validatorID *big.Int) (*big.Int, error) { 1202 return _Contract.Contract.RewardsStash(&_Contract.CallOpts, delegator, validatorID) 1203 } 1204 1205 // RewardsStash is a free data retrieval call binding the contract method 0x6f498663. 1206 // 1207 // Solidity: function rewardsStash(address delegator, uint256 validatorID) view returns(uint256) 1208 func (_Contract *ContractCallerSession) RewardsStash(delegator common.Address, validatorID *big.Int) (*big.Int, error) { 1209 return _Contract.Contract.RewardsStash(&_Contract.CallOpts, delegator, validatorID) 1210 } 1211 1212 // SlashingRefundRatio is a free data retrieval call binding the contract method 0xc65ee0e1. 1213 // 1214 // Solidity: function slashingRefundRatio(uint256 ) view returns(uint256) 1215 func (_Contract *ContractCaller) SlashingRefundRatio(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { 1216 var out []interface{} 1217 err := _Contract.contract.Call(opts, &out, "slashingRefundRatio", arg0) 1218 1219 if err != nil { 1220 return *new(*big.Int), err 1221 } 1222 1223 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1224 1225 return out0, err 1226 1227 } 1228 1229 // SlashingRefundRatio is a free data retrieval call binding the contract method 0xc65ee0e1. 1230 // 1231 // Solidity: function slashingRefundRatio(uint256 ) view returns(uint256) 1232 func (_Contract *ContractSession) SlashingRefundRatio(arg0 *big.Int) (*big.Int, error) { 1233 return _Contract.Contract.SlashingRefundRatio(&_Contract.CallOpts, arg0) 1234 } 1235 1236 // SlashingRefundRatio is a free data retrieval call binding the contract method 0xc65ee0e1. 1237 // 1238 // Solidity: function slashingRefundRatio(uint256 ) view returns(uint256) 1239 func (_Contract *ContractCallerSession) SlashingRefundRatio(arg0 *big.Int) (*big.Int, error) { 1240 return _Contract.Contract.SlashingRefundRatio(&_Contract.CallOpts, arg0) 1241 } 1242 1243 // StakeTokenizerAddress is a free data retrieval call binding the contract method 0x0e559d82. 1244 // 1245 // Solidity: function stakeTokenizerAddress() view returns(address) 1246 func (_Contract *ContractCaller) StakeTokenizerAddress(opts *bind.CallOpts) (common.Address, error) { 1247 var out []interface{} 1248 err := _Contract.contract.Call(opts, &out, "stakeTokenizerAddress") 1249 1250 if err != nil { 1251 return *new(common.Address), err 1252 } 1253 1254 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1255 1256 return out0, err 1257 1258 } 1259 1260 // StakeTokenizerAddress is a free data retrieval call binding the contract method 0x0e559d82. 1261 // 1262 // Solidity: function stakeTokenizerAddress() view returns(address) 1263 func (_Contract *ContractSession) StakeTokenizerAddress() (common.Address, error) { 1264 return _Contract.Contract.StakeTokenizerAddress(&_Contract.CallOpts) 1265 } 1266 1267 // StakeTokenizerAddress is a free data retrieval call binding the contract method 0x0e559d82. 1268 // 1269 // Solidity: function stakeTokenizerAddress() view returns(address) 1270 func (_Contract *ContractCallerSession) StakeTokenizerAddress() (common.Address, error) { 1271 return _Contract.Contract.StakeTokenizerAddress(&_Contract.CallOpts) 1272 } 1273 1274 // StashedRewardsUntilEpoch is a free data retrieval call binding the contract method 0xa86a056f. 1275 // 1276 // Solidity: function stashedRewardsUntilEpoch(address , uint256 ) view returns(uint256) 1277 func (_Contract *ContractCaller) StashedRewardsUntilEpoch(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 1278 var out []interface{} 1279 err := _Contract.contract.Call(opts, &out, "stashedRewardsUntilEpoch", arg0, arg1) 1280 1281 if err != nil { 1282 return *new(*big.Int), err 1283 } 1284 1285 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1286 1287 return out0, err 1288 1289 } 1290 1291 // StashedRewardsUntilEpoch is a free data retrieval call binding the contract method 0xa86a056f. 1292 // 1293 // Solidity: function stashedRewardsUntilEpoch(address , uint256 ) view returns(uint256) 1294 func (_Contract *ContractSession) StashedRewardsUntilEpoch(arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 1295 return _Contract.Contract.StashedRewardsUntilEpoch(&_Contract.CallOpts, arg0, arg1) 1296 } 1297 1298 // StashedRewardsUntilEpoch is a free data retrieval call binding the contract method 0xa86a056f. 1299 // 1300 // Solidity: function stashedRewardsUntilEpoch(address , uint256 ) view returns(uint256) 1301 func (_Contract *ContractCallerSession) StashedRewardsUntilEpoch(arg0 common.Address, arg1 *big.Int) (*big.Int, error) { 1302 return _Contract.Contract.StashedRewardsUntilEpoch(&_Contract.CallOpts, arg0, arg1) 1303 } 1304 1305 // TotalActiveStake is a free data retrieval call binding the contract method 0x28f73148. 1306 // 1307 // Solidity: function totalActiveStake() view returns(uint256) 1308 func (_Contract *ContractCaller) TotalActiveStake(opts *bind.CallOpts) (*big.Int, error) { 1309 var out []interface{} 1310 err := _Contract.contract.Call(opts, &out, "totalActiveStake") 1311 1312 if err != nil { 1313 return *new(*big.Int), err 1314 } 1315 1316 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1317 1318 return out0, err 1319 1320 } 1321 1322 // TotalActiveStake is a free data retrieval call binding the contract method 0x28f73148. 1323 // 1324 // Solidity: function totalActiveStake() view returns(uint256) 1325 func (_Contract *ContractSession) TotalActiveStake() (*big.Int, error) { 1326 return _Contract.Contract.TotalActiveStake(&_Contract.CallOpts) 1327 } 1328 1329 // TotalActiveStake is a free data retrieval call binding the contract method 0x28f73148. 1330 // 1331 // Solidity: function totalActiveStake() view returns(uint256) 1332 func (_Contract *ContractCallerSession) TotalActiveStake() (*big.Int, error) { 1333 return _Contract.Contract.TotalActiveStake(&_Contract.CallOpts) 1334 } 1335 1336 // TotalSlashedStake is a free data retrieval call binding the contract method 0x5fab23a8. 1337 // 1338 // Solidity: function totalSlashedStake() view returns(uint256) 1339 func (_Contract *ContractCaller) TotalSlashedStake(opts *bind.CallOpts) (*big.Int, error) { 1340 var out []interface{} 1341 err := _Contract.contract.Call(opts, &out, "totalSlashedStake") 1342 1343 if err != nil { 1344 return *new(*big.Int), err 1345 } 1346 1347 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1348 1349 return out0, err 1350 1351 } 1352 1353 // TotalSlashedStake is a free data retrieval call binding the contract method 0x5fab23a8. 1354 // 1355 // Solidity: function totalSlashedStake() view returns(uint256) 1356 func (_Contract *ContractSession) TotalSlashedStake() (*big.Int, error) { 1357 return _Contract.Contract.TotalSlashedStake(&_Contract.CallOpts) 1358 } 1359 1360 // TotalSlashedStake is a free data retrieval call binding the contract method 0x5fab23a8. 1361 // 1362 // Solidity: function totalSlashedStake() view returns(uint256) 1363 func (_Contract *ContractCallerSession) TotalSlashedStake() (*big.Int, error) { 1364 return _Contract.Contract.TotalSlashedStake(&_Contract.CallOpts) 1365 } 1366 1367 // TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. 1368 // 1369 // Solidity: function totalStake() view returns(uint256) 1370 func (_Contract *ContractCaller) TotalStake(opts *bind.CallOpts) (*big.Int, error) { 1371 var out []interface{} 1372 err := _Contract.contract.Call(opts, &out, "totalStake") 1373 1374 if err != nil { 1375 return *new(*big.Int), err 1376 } 1377 1378 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1379 1380 return out0, err 1381 1382 } 1383 1384 // TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. 1385 // 1386 // Solidity: function totalStake() view returns(uint256) 1387 func (_Contract *ContractSession) TotalStake() (*big.Int, error) { 1388 return _Contract.Contract.TotalStake(&_Contract.CallOpts) 1389 } 1390 1391 // TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. 1392 // 1393 // Solidity: function totalStake() view returns(uint256) 1394 func (_Contract *ContractCallerSession) TotalStake() (*big.Int, error) { 1395 return _Contract.Contract.TotalStake(&_Contract.CallOpts) 1396 } 1397 1398 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1399 // 1400 // Solidity: function totalSupply() view returns(uint256) 1401 func (_Contract *ContractCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { 1402 var out []interface{} 1403 err := _Contract.contract.Call(opts, &out, "totalSupply") 1404 1405 if err != nil { 1406 return *new(*big.Int), err 1407 } 1408 1409 out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) 1410 1411 return out0, err 1412 1413 } 1414 1415 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1416 // 1417 // Solidity: function totalSupply() view returns(uint256) 1418 func (_Contract *ContractSession) TotalSupply() (*big.Int, error) { 1419 return _Contract.Contract.TotalSupply(&_Contract.CallOpts) 1420 } 1421 1422 // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. 1423 // 1424 // Solidity: function totalSupply() view returns(uint256) 1425 func (_Contract *ContractCallerSession) TotalSupply() (*big.Int, error) { 1426 return _Contract.Contract.TotalSupply(&_Contract.CallOpts) 1427 } 1428 1429 // TreasuryAddress is a free data retrieval call binding the contract method 0xc5f956af. 1430 // 1431 // Solidity: function treasuryAddress() view returns(address) 1432 func (_Contract *ContractCaller) TreasuryAddress(opts *bind.CallOpts) (common.Address, error) { 1433 var out []interface{} 1434 err := _Contract.contract.Call(opts, &out, "treasuryAddress") 1435 1436 if err != nil { 1437 return *new(common.Address), err 1438 } 1439 1440 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1441 1442 return out0, err 1443 1444 } 1445 1446 // TreasuryAddress is a free data retrieval call binding the contract method 0xc5f956af. 1447 // 1448 // Solidity: function treasuryAddress() view returns(address) 1449 func (_Contract *ContractSession) TreasuryAddress() (common.Address, error) { 1450 return _Contract.Contract.TreasuryAddress(&_Contract.CallOpts) 1451 } 1452 1453 // TreasuryAddress is a free data retrieval call binding the contract method 0xc5f956af. 1454 // 1455 // Solidity: function treasuryAddress() view returns(address) 1456 func (_Contract *ContractCallerSession) TreasuryAddress() (common.Address, error) { 1457 return _Contract.Contract.TreasuryAddress(&_Contract.CallOpts) 1458 } 1459 1460 // VoteBookAddress is a free data retrieval call binding the contract method 0x893675c6. 1461 // 1462 // Solidity: function voteBookAddress() view returns(address) 1463 func (_Contract *ContractCaller) VoteBookAddress(opts *bind.CallOpts) (common.Address, error) { 1464 var out []interface{} 1465 err := _Contract.contract.Call(opts, &out, "voteBookAddress") 1466 1467 if err != nil { 1468 return *new(common.Address), err 1469 } 1470 1471 out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) 1472 1473 return out0, err 1474 1475 } 1476 1477 // VoteBookAddress is a free data retrieval call binding the contract method 0x893675c6. 1478 // 1479 // Solidity: function voteBookAddress() view returns(address) 1480 func (_Contract *ContractSession) VoteBookAddress() (common.Address, error) { 1481 return _Contract.Contract.VoteBookAddress(&_Contract.CallOpts) 1482 } 1483 1484 // VoteBookAddress is a free data retrieval call binding the contract method 0x893675c6. 1485 // 1486 // Solidity: function voteBookAddress() view returns(address) 1487 func (_Contract *ContractCallerSession) VoteBookAddress() (common.Address, error) { 1488 return _Contract.Contract.VoteBookAddress(&_Contract.CallOpts) 1489 } 1490 1491 // SyncValidator is a paid mutator transaction binding the contract method 0xcc8343aa. 1492 // 1493 // Solidity: function _syncValidator(uint256 validatorID, bool syncPubkey) returns() 1494 func (_Contract *ContractTransactor) SyncValidator(opts *bind.TransactOpts, validatorID *big.Int, syncPubkey bool) (*types.Transaction, error) { 1495 return _Contract.contract.Transact(opts, "_syncValidator", validatorID, syncPubkey) 1496 } 1497 1498 // SyncValidator is a paid mutator transaction binding the contract method 0xcc8343aa. 1499 // 1500 // Solidity: function _syncValidator(uint256 validatorID, bool syncPubkey) returns() 1501 func (_Contract *ContractSession) SyncValidator(validatorID *big.Int, syncPubkey bool) (*types.Transaction, error) { 1502 return _Contract.Contract.SyncValidator(&_Contract.TransactOpts, validatorID, syncPubkey) 1503 } 1504 1505 // SyncValidator is a paid mutator transaction binding the contract method 0xcc8343aa. 1506 // 1507 // Solidity: function _syncValidator(uint256 validatorID, bool syncPubkey) returns() 1508 func (_Contract *ContractTransactorSession) SyncValidator(validatorID *big.Int, syncPubkey bool) (*types.Transaction, error) { 1509 return _Contract.Contract.SyncValidator(&_Contract.TransactOpts, validatorID, syncPubkey) 1510 } 1511 1512 // BurnFTM is a paid mutator transaction binding the contract method 0x90a6c475. 1513 // 1514 // Solidity: function burnFTM(uint256 amount) returns() 1515 func (_Contract *ContractTransactor) BurnFTM(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { 1516 return _Contract.contract.Transact(opts, "burnFTM", amount) 1517 } 1518 1519 // BurnFTM is a paid mutator transaction binding the contract method 0x90a6c475. 1520 // 1521 // Solidity: function burnFTM(uint256 amount) returns() 1522 func (_Contract *ContractSession) BurnFTM(amount *big.Int) (*types.Transaction, error) { 1523 return _Contract.Contract.BurnFTM(&_Contract.TransactOpts, amount) 1524 } 1525 1526 // BurnFTM is a paid mutator transaction binding the contract method 0x90a6c475. 1527 // 1528 // Solidity: function burnFTM(uint256 amount) returns() 1529 func (_Contract *ContractTransactorSession) BurnFTM(amount *big.Int) (*types.Transaction, error) { 1530 return _Contract.Contract.BurnFTM(&_Contract.TransactOpts, amount) 1531 } 1532 1533 // ClaimRewards is a paid mutator transaction binding the contract method 0x0962ef79. 1534 // 1535 // Solidity: function claimRewards(uint256 toValidatorID) returns() 1536 func (_Contract *ContractTransactor) ClaimRewards(opts *bind.TransactOpts, toValidatorID *big.Int) (*types.Transaction, error) { 1537 return _Contract.contract.Transact(opts, "claimRewards", toValidatorID) 1538 } 1539 1540 // ClaimRewards is a paid mutator transaction binding the contract method 0x0962ef79. 1541 // 1542 // Solidity: function claimRewards(uint256 toValidatorID) returns() 1543 func (_Contract *ContractSession) ClaimRewards(toValidatorID *big.Int) (*types.Transaction, error) { 1544 return _Contract.Contract.ClaimRewards(&_Contract.TransactOpts, toValidatorID) 1545 } 1546 1547 // ClaimRewards is a paid mutator transaction binding the contract method 0x0962ef79. 1548 // 1549 // Solidity: function claimRewards(uint256 toValidatorID) returns() 1550 func (_Contract *ContractTransactorSession) ClaimRewards(toValidatorID *big.Int) (*types.Transaction, error) { 1551 return _Contract.Contract.ClaimRewards(&_Contract.TransactOpts, toValidatorID) 1552 } 1553 1554 // CreateValidator is a paid mutator transaction binding the contract method 0xa5a470ad. 1555 // 1556 // Solidity: function createValidator(bytes pubkey) payable returns() 1557 func (_Contract *ContractTransactor) CreateValidator(opts *bind.TransactOpts, pubkey []byte) (*types.Transaction, error) { 1558 return _Contract.contract.Transact(opts, "createValidator", pubkey) 1559 } 1560 1561 // CreateValidator is a paid mutator transaction binding the contract method 0xa5a470ad. 1562 // 1563 // Solidity: function createValidator(bytes pubkey) payable returns() 1564 func (_Contract *ContractSession) CreateValidator(pubkey []byte) (*types.Transaction, error) { 1565 return _Contract.Contract.CreateValidator(&_Contract.TransactOpts, pubkey) 1566 } 1567 1568 // CreateValidator is a paid mutator transaction binding the contract method 0xa5a470ad. 1569 // 1570 // Solidity: function createValidator(bytes pubkey) payable returns() 1571 func (_Contract *ContractTransactorSession) CreateValidator(pubkey []byte) (*types.Transaction, error) { 1572 return _Contract.Contract.CreateValidator(&_Contract.TransactOpts, pubkey) 1573 } 1574 1575 // DeactivateValidator is a paid mutator transaction binding the contract method 0x1e702f83. 1576 // 1577 // Solidity: function deactivateValidator(uint256 validatorID, uint256 status) returns() 1578 func (_Contract *ContractTransactor) DeactivateValidator(opts *bind.TransactOpts, validatorID *big.Int, status *big.Int) (*types.Transaction, error) { 1579 return _Contract.contract.Transact(opts, "deactivateValidator", validatorID, status) 1580 } 1581 1582 // DeactivateValidator is a paid mutator transaction binding the contract method 0x1e702f83. 1583 // 1584 // Solidity: function deactivateValidator(uint256 validatorID, uint256 status) returns() 1585 func (_Contract *ContractSession) DeactivateValidator(validatorID *big.Int, status *big.Int) (*types.Transaction, error) { 1586 return _Contract.Contract.DeactivateValidator(&_Contract.TransactOpts, validatorID, status) 1587 } 1588 1589 // DeactivateValidator is a paid mutator transaction binding the contract method 0x1e702f83. 1590 // 1591 // Solidity: function deactivateValidator(uint256 validatorID, uint256 status) returns() 1592 func (_Contract *ContractTransactorSession) DeactivateValidator(validatorID *big.Int, status *big.Int) (*types.Transaction, error) { 1593 return _Contract.Contract.DeactivateValidator(&_Contract.TransactOpts, validatorID, status) 1594 } 1595 1596 // Delegate is a paid mutator transaction binding the contract method 0x9fa6dd35. 1597 // 1598 // Solidity: function delegate(uint256 toValidatorID) payable returns() 1599 func (_Contract *ContractTransactor) Delegate(opts *bind.TransactOpts, toValidatorID *big.Int) (*types.Transaction, error) { 1600 return _Contract.contract.Transact(opts, "delegate", toValidatorID) 1601 } 1602 1603 // Delegate is a paid mutator transaction binding the contract method 0x9fa6dd35. 1604 // 1605 // Solidity: function delegate(uint256 toValidatorID) payable returns() 1606 func (_Contract *ContractSession) Delegate(toValidatorID *big.Int) (*types.Transaction, error) { 1607 return _Contract.Contract.Delegate(&_Contract.TransactOpts, toValidatorID) 1608 } 1609 1610 // Delegate is a paid mutator transaction binding the contract method 0x9fa6dd35. 1611 // 1612 // Solidity: function delegate(uint256 toValidatorID) payable returns() 1613 func (_Contract *ContractTransactorSession) Delegate(toValidatorID *big.Int) (*types.Transaction, error) { 1614 return _Contract.Contract.Delegate(&_Contract.TransactOpts, toValidatorID) 1615 } 1616 1617 // LockStake is a paid mutator transaction binding the contract method 0xde67f215. 1618 // 1619 // Solidity: function lockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1620 func (_Contract *ContractTransactor) LockStake(opts *bind.TransactOpts, toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1621 return _Contract.contract.Transact(opts, "lockStake", toValidatorID, lockupDuration, amount) 1622 } 1623 1624 // LockStake is a paid mutator transaction binding the contract method 0xde67f215. 1625 // 1626 // Solidity: function lockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1627 func (_Contract *ContractSession) LockStake(toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1628 return _Contract.Contract.LockStake(&_Contract.TransactOpts, toValidatorID, lockupDuration, amount) 1629 } 1630 1631 // LockStake is a paid mutator transaction binding the contract method 0xde67f215. 1632 // 1633 // Solidity: function lockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1634 func (_Contract *ContractTransactorSession) LockStake(toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1635 return _Contract.Contract.LockStake(&_Contract.TransactOpts, toValidatorID, lockupDuration, amount) 1636 } 1637 1638 // MintFTM is a paid mutator transaction binding the contract method 0xe2f8c336. 1639 // 1640 // Solidity: function mintFTM(address receiver, uint256 amount, string justification) returns() 1641 func (_Contract *ContractTransactor) MintFTM(opts *bind.TransactOpts, receiver common.Address, amount *big.Int, justification string) (*types.Transaction, error) { 1642 return _Contract.contract.Transact(opts, "mintFTM", receiver, amount, justification) 1643 } 1644 1645 // MintFTM is a paid mutator transaction binding the contract method 0xe2f8c336. 1646 // 1647 // Solidity: function mintFTM(address receiver, uint256 amount, string justification) returns() 1648 func (_Contract *ContractSession) MintFTM(receiver common.Address, amount *big.Int, justification string) (*types.Transaction, error) { 1649 return _Contract.Contract.MintFTM(&_Contract.TransactOpts, receiver, amount, justification) 1650 } 1651 1652 // MintFTM is a paid mutator transaction binding the contract method 0xe2f8c336. 1653 // 1654 // Solidity: function mintFTM(address receiver, uint256 amount, string justification) returns() 1655 func (_Contract *ContractTransactorSession) MintFTM(receiver common.Address, amount *big.Int, justification string) (*types.Transaction, error) { 1656 return _Contract.Contract.MintFTM(&_Contract.TransactOpts, receiver, amount, justification) 1657 } 1658 1659 // RecountVotes is a paid mutator transaction binding the contract method 0x20c0849d. 1660 // 1661 // Solidity: function recountVotes(address delegator, address validatorAuth, bool strict, uint256 gas) returns() 1662 func (_Contract *ContractTransactor) RecountVotes(opts *bind.TransactOpts, delegator common.Address, validatorAuth common.Address, strict bool, gas *big.Int) (*types.Transaction, error) { 1663 return _Contract.contract.Transact(opts, "recountVotes", delegator, validatorAuth, strict, gas) 1664 } 1665 1666 // RecountVotes is a paid mutator transaction binding the contract method 0x20c0849d. 1667 // 1668 // Solidity: function recountVotes(address delegator, address validatorAuth, bool strict, uint256 gas) returns() 1669 func (_Contract *ContractSession) RecountVotes(delegator common.Address, validatorAuth common.Address, strict bool, gas *big.Int) (*types.Transaction, error) { 1670 return _Contract.Contract.RecountVotes(&_Contract.TransactOpts, delegator, validatorAuth, strict, gas) 1671 } 1672 1673 // RecountVotes is a paid mutator transaction binding the contract method 0x20c0849d. 1674 // 1675 // Solidity: function recountVotes(address delegator, address validatorAuth, bool strict, uint256 gas) returns() 1676 func (_Contract *ContractTransactorSession) RecountVotes(delegator common.Address, validatorAuth common.Address, strict bool, gas *big.Int) (*types.Transaction, error) { 1677 return _Contract.Contract.RecountVotes(&_Contract.TransactOpts, delegator, validatorAuth, strict, gas) 1678 } 1679 1680 // RelockStake is a paid mutator transaction binding the contract method 0xbd14d907. 1681 // 1682 // Solidity: function relockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1683 func (_Contract *ContractTransactor) RelockStake(opts *bind.TransactOpts, toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1684 return _Contract.contract.Transact(opts, "relockStake", toValidatorID, lockupDuration, amount) 1685 } 1686 1687 // RelockStake is a paid mutator transaction binding the contract method 0xbd14d907. 1688 // 1689 // Solidity: function relockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1690 func (_Contract *ContractSession) RelockStake(toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1691 return _Contract.Contract.RelockStake(&_Contract.TransactOpts, toValidatorID, lockupDuration, amount) 1692 } 1693 1694 // RelockStake is a paid mutator transaction binding the contract method 0xbd14d907. 1695 // 1696 // Solidity: function relockStake(uint256 toValidatorID, uint256 lockupDuration, uint256 amount) returns() 1697 func (_Contract *ContractTransactorSession) RelockStake(toValidatorID *big.Int, lockupDuration *big.Int, amount *big.Int) (*types.Transaction, error) { 1698 return _Contract.Contract.RelockStake(&_Contract.TransactOpts, toValidatorID, lockupDuration, amount) 1699 } 1700 1701 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 1702 // 1703 // Solidity: function renounceOwnership() returns() 1704 func (_Contract *ContractTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { 1705 return _Contract.contract.Transact(opts, "renounceOwnership") 1706 } 1707 1708 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 1709 // 1710 // Solidity: function renounceOwnership() returns() 1711 func (_Contract *ContractSession) RenounceOwnership() (*types.Transaction, error) { 1712 return _Contract.Contract.RenounceOwnership(&_Contract.TransactOpts) 1713 } 1714 1715 // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. 1716 // 1717 // Solidity: function renounceOwnership() returns() 1718 func (_Contract *ContractTransactorSession) RenounceOwnership() (*types.Transaction, error) { 1719 return _Contract.Contract.RenounceOwnership(&_Contract.TransactOpts) 1720 } 1721 1722 // RestakeRewards is a paid mutator transaction binding the contract method 0x08c36874. 1723 // 1724 // Solidity: function restakeRewards(uint256 toValidatorID) returns() 1725 func (_Contract *ContractTransactor) RestakeRewards(opts *bind.TransactOpts, toValidatorID *big.Int) (*types.Transaction, error) { 1726 return _Contract.contract.Transact(opts, "restakeRewards", toValidatorID) 1727 } 1728 1729 // RestakeRewards is a paid mutator transaction binding the contract method 0x08c36874. 1730 // 1731 // Solidity: function restakeRewards(uint256 toValidatorID) returns() 1732 func (_Contract *ContractSession) RestakeRewards(toValidatorID *big.Int) (*types.Transaction, error) { 1733 return _Contract.Contract.RestakeRewards(&_Contract.TransactOpts, toValidatorID) 1734 } 1735 1736 // RestakeRewards is a paid mutator transaction binding the contract method 0x08c36874. 1737 // 1738 // Solidity: function restakeRewards(uint256 toValidatorID) returns() 1739 func (_Contract *ContractTransactorSession) RestakeRewards(toValidatorID *big.Int) (*types.Transaction, error) { 1740 return _Contract.Contract.RestakeRewards(&_Contract.TransactOpts, toValidatorID) 1741 } 1742 1743 // SetGenesisDelegation is a paid mutator transaction binding the contract method 0x18f628d4. 1744 // 1745 // Solidity: function setGenesisDelegation(address delegator, uint256 toValidatorID, uint256 stake, uint256 lockedStake, uint256 lockupFromEpoch, uint256 lockupEndTime, uint256 lockupDuration, uint256 earlyUnlockPenalty, uint256 rewards) returns() 1746 func (_Contract *ContractTransactor) SetGenesisDelegation(opts *bind.TransactOpts, delegator common.Address, toValidatorID *big.Int, stake *big.Int, lockedStake *big.Int, lockupFromEpoch *big.Int, lockupEndTime *big.Int, lockupDuration *big.Int, earlyUnlockPenalty *big.Int, rewards *big.Int) (*types.Transaction, error) { 1747 return _Contract.contract.Transact(opts, "setGenesisDelegation", delegator, toValidatorID, stake, lockedStake, lockupFromEpoch, lockupEndTime, lockupDuration, earlyUnlockPenalty, rewards) 1748 } 1749 1750 // SetGenesisDelegation is a paid mutator transaction binding the contract method 0x18f628d4. 1751 // 1752 // Solidity: function setGenesisDelegation(address delegator, uint256 toValidatorID, uint256 stake, uint256 lockedStake, uint256 lockupFromEpoch, uint256 lockupEndTime, uint256 lockupDuration, uint256 earlyUnlockPenalty, uint256 rewards) returns() 1753 func (_Contract *ContractSession) SetGenesisDelegation(delegator common.Address, toValidatorID *big.Int, stake *big.Int, lockedStake *big.Int, lockupFromEpoch *big.Int, lockupEndTime *big.Int, lockupDuration *big.Int, earlyUnlockPenalty *big.Int, rewards *big.Int) (*types.Transaction, error) { 1754 return _Contract.Contract.SetGenesisDelegation(&_Contract.TransactOpts, delegator, toValidatorID, stake, lockedStake, lockupFromEpoch, lockupEndTime, lockupDuration, earlyUnlockPenalty, rewards) 1755 } 1756 1757 // SetGenesisDelegation is a paid mutator transaction binding the contract method 0x18f628d4. 1758 // 1759 // Solidity: function setGenesisDelegation(address delegator, uint256 toValidatorID, uint256 stake, uint256 lockedStake, uint256 lockupFromEpoch, uint256 lockupEndTime, uint256 lockupDuration, uint256 earlyUnlockPenalty, uint256 rewards) returns() 1760 func (_Contract *ContractTransactorSession) SetGenesisDelegation(delegator common.Address, toValidatorID *big.Int, stake *big.Int, lockedStake *big.Int, lockupFromEpoch *big.Int, lockupEndTime *big.Int, lockupDuration *big.Int, earlyUnlockPenalty *big.Int, rewards *big.Int) (*types.Transaction, error) { 1761 return _Contract.Contract.SetGenesisDelegation(&_Contract.TransactOpts, delegator, toValidatorID, stake, lockedStake, lockupFromEpoch, lockupEndTime, lockupDuration, earlyUnlockPenalty, rewards) 1762 } 1763 1764 // SetGenesisValidator is a paid mutator transaction binding the contract method 0x4feb92f3. 1765 // 1766 // Solidity: function setGenesisValidator(address auth, uint256 validatorID, bytes pubkey, uint256 status, uint256 createdEpoch, uint256 createdTime, uint256 deactivatedEpoch, uint256 deactivatedTime) returns() 1767 func (_Contract *ContractTransactor) SetGenesisValidator(opts *bind.TransactOpts, auth common.Address, validatorID *big.Int, pubkey []byte, status *big.Int, createdEpoch *big.Int, createdTime *big.Int, deactivatedEpoch *big.Int, deactivatedTime *big.Int) (*types.Transaction, error) { 1768 return _Contract.contract.Transact(opts, "setGenesisValidator", auth, validatorID, pubkey, status, createdEpoch, createdTime, deactivatedEpoch, deactivatedTime) 1769 } 1770 1771 // SetGenesisValidator is a paid mutator transaction binding the contract method 0x4feb92f3. 1772 // 1773 // Solidity: function setGenesisValidator(address auth, uint256 validatorID, bytes pubkey, uint256 status, uint256 createdEpoch, uint256 createdTime, uint256 deactivatedEpoch, uint256 deactivatedTime) returns() 1774 func (_Contract *ContractSession) SetGenesisValidator(auth common.Address, validatorID *big.Int, pubkey []byte, status *big.Int, createdEpoch *big.Int, createdTime *big.Int, deactivatedEpoch *big.Int, deactivatedTime *big.Int) (*types.Transaction, error) { 1775 return _Contract.Contract.SetGenesisValidator(&_Contract.TransactOpts, auth, validatorID, pubkey, status, createdEpoch, createdTime, deactivatedEpoch, deactivatedTime) 1776 } 1777 1778 // SetGenesisValidator is a paid mutator transaction binding the contract method 0x4feb92f3. 1779 // 1780 // Solidity: function setGenesisValidator(address auth, uint256 validatorID, bytes pubkey, uint256 status, uint256 createdEpoch, uint256 createdTime, uint256 deactivatedEpoch, uint256 deactivatedTime) returns() 1781 func (_Contract *ContractTransactorSession) SetGenesisValidator(auth common.Address, validatorID *big.Int, pubkey []byte, status *big.Int, createdEpoch *big.Int, createdTime *big.Int, deactivatedEpoch *big.Int, deactivatedTime *big.Int) (*types.Transaction, error) { 1782 return _Contract.Contract.SetGenesisValidator(&_Contract.TransactOpts, auth, validatorID, pubkey, status, createdEpoch, createdTime, deactivatedEpoch, deactivatedTime) 1783 } 1784 1785 // StashRewards is a paid mutator transaction binding the contract method 0x8cddb015. 1786 // 1787 // Solidity: function stashRewards(address delegator, uint256 toValidatorID) returns() 1788 func (_Contract *ContractTransactor) StashRewards(opts *bind.TransactOpts, delegator common.Address, toValidatorID *big.Int) (*types.Transaction, error) { 1789 return _Contract.contract.Transact(opts, "stashRewards", delegator, toValidatorID) 1790 } 1791 1792 // StashRewards is a paid mutator transaction binding the contract method 0x8cddb015. 1793 // 1794 // Solidity: function stashRewards(address delegator, uint256 toValidatorID) returns() 1795 func (_Contract *ContractSession) StashRewards(delegator common.Address, toValidatorID *big.Int) (*types.Transaction, error) { 1796 return _Contract.Contract.StashRewards(&_Contract.TransactOpts, delegator, toValidatorID) 1797 } 1798 1799 // StashRewards is a paid mutator transaction binding the contract method 0x8cddb015. 1800 // 1801 // Solidity: function stashRewards(address delegator, uint256 toValidatorID) returns() 1802 func (_Contract *ContractTransactorSession) StashRewards(delegator common.Address, toValidatorID *big.Int) (*types.Transaction, error) { 1803 return _Contract.Contract.StashRewards(&_Contract.TransactOpts, delegator, toValidatorID) 1804 } 1805 1806 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 1807 // 1808 // Solidity: function transferOwnership(address newOwner) returns() 1809 func (_Contract *ContractTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { 1810 return _Contract.contract.Transact(opts, "transferOwnership", newOwner) 1811 } 1812 1813 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 1814 // 1815 // Solidity: function transferOwnership(address newOwner) returns() 1816 func (_Contract *ContractSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 1817 return _Contract.Contract.TransferOwnership(&_Contract.TransactOpts, newOwner) 1818 } 1819 1820 // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. 1821 // 1822 // Solidity: function transferOwnership(address newOwner) returns() 1823 func (_Contract *ContractTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { 1824 return _Contract.Contract.TransferOwnership(&_Contract.TransactOpts, newOwner) 1825 } 1826 1827 // Undelegate is a paid mutator transaction binding the contract method 0x4f864df4. 1828 // 1829 // Solidity: function undelegate(uint256 toValidatorID, uint256 wrID, uint256 amount) returns() 1830 func (_Contract *ContractTransactor) Undelegate(opts *bind.TransactOpts, toValidatorID *big.Int, wrID *big.Int, amount *big.Int) (*types.Transaction, error) { 1831 return _Contract.contract.Transact(opts, "undelegate", toValidatorID, wrID, amount) 1832 } 1833 1834 // Undelegate is a paid mutator transaction binding the contract method 0x4f864df4. 1835 // 1836 // Solidity: function undelegate(uint256 toValidatorID, uint256 wrID, uint256 amount) returns() 1837 func (_Contract *ContractSession) Undelegate(toValidatorID *big.Int, wrID *big.Int, amount *big.Int) (*types.Transaction, error) { 1838 return _Contract.Contract.Undelegate(&_Contract.TransactOpts, toValidatorID, wrID, amount) 1839 } 1840 1841 // Undelegate is a paid mutator transaction binding the contract method 0x4f864df4. 1842 // 1843 // Solidity: function undelegate(uint256 toValidatorID, uint256 wrID, uint256 amount) returns() 1844 func (_Contract *ContractTransactorSession) Undelegate(toValidatorID *big.Int, wrID *big.Int, amount *big.Int) (*types.Transaction, error) { 1845 return _Contract.Contract.Undelegate(&_Contract.TransactOpts, toValidatorID, wrID, amount) 1846 } 1847 1848 // UnlockStake is a paid mutator transaction binding the contract method 0x1d3ac42c. 1849 // 1850 // Solidity: function unlockStake(uint256 toValidatorID, uint256 amount) returns(uint256) 1851 func (_Contract *ContractTransactor) UnlockStake(opts *bind.TransactOpts, toValidatorID *big.Int, amount *big.Int) (*types.Transaction, error) { 1852 return _Contract.contract.Transact(opts, "unlockStake", toValidatorID, amount) 1853 } 1854 1855 // UnlockStake is a paid mutator transaction binding the contract method 0x1d3ac42c. 1856 // 1857 // Solidity: function unlockStake(uint256 toValidatorID, uint256 amount) returns(uint256) 1858 func (_Contract *ContractSession) UnlockStake(toValidatorID *big.Int, amount *big.Int) (*types.Transaction, error) { 1859 return _Contract.Contract.UnlockStake(&_Contract.TransactOpts, toValidatorID, amount) 1860 } 1861 1862 // UnlockStake is a paid mutator transaction binding the contract method 0x1d3ac42c. 1863 // 1864 // Solidity: function unlockStake(uint256 toValidatorID, uint256 amount) returns(uint256) 1865 func (_Contract *ContractTransactorSession) UnlockStake(toValidatorID *big.Int, amount *big.Int) (*types.Transaction, error) { 1866 return _Contract.Contract.UnlockStake(&_Contract.TransactOpts, toValidatorID, amount) 1867 } 1868 1869 // UpdateSlashingRefundRatio is a paid mutator transaction binding the contract method 0x4f7c4efb. 1870 // 1871 // Solidity: function updateSlashingRefundRatio(uint256 validatorID, uint256 refundRatio) returns() 1872 func (_Contract *ContractTransactor) UpdateSlashingRefundRatio(opts *bind.TransactOpts, validatorID *big.Int, refundRatio *big.Int) (*types.Transaction, error) { 1873 return _Contract.contract.Transact(opts, "updateSlashingRefundRatio", validatorID, refundRatio) 1874 } 1875 1876 // UpdateSlashingRefundRatio is a paid mutator transaction binding the contract method 0x4f7c4efb. 1877 // 1878 // Solidity: function updateSlashingRefundRatio(uint256 validatorID, uint256 refundRatio) returns() 1879 func (_Contract *ContractSession) UpdateSlashingRefundRatio(validatorID *big.Int, refundRatio *big.Int) (*types.Transaction, error) { 1880 return _Contract.Contract.UpdateSlashingRefundRatio(&_Contract.TransactOpts, validatorID, refundRatio) 1881 } 1882 1883 // UpdateSlashingRefundRatio is a paid mutator transaction binding the contract method 0x4f7c4efb. 1884 // 1885 // Solidity: function updateSlashingRefundRatio(uint256 validatorID, uint256 refundRatio) returns() 1886 func (_Contract *ContractTransactorSession) UpdateSlashingRefundRatio(validatorID *big.Int, refundRatio *big.Int) (*types.Transaction, error) { 1887 return _Contract.Contract.UpdateSlashingRefundRatio(&_Contract.TransactOpts, validatorID, refundRatio) 1888 } 1889 1890 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1891 // 1892 // Solidity: function withdraw(uint256 toValidatorID, uint256 wrID) returns() 1893 func (_Contract *ContractTransactor) Withdraw(opts *bind.TransactOpts, toValidatorID *big.Int, wrID *big.Int) (*types.Transaction, error) { 1894 return _Contract.contract.Transact(opts, "withdraw", toValidatorID, wrID) 1895 } 1896 1897 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1898 // 1899 // Solidity: function withdraw(uint256 toValidatorID, uint256 wrID) returns() 1900 func (_Contract *ContractSession) Withdraw(toValidatorID *big.Int, wrID *big.Int) (*types.Transaction, error) { 1901 return _Contract.Contract.Withdraw(&_Contract.TransactOpts, toValidatorID, wrID) 1902 } 1903 1904 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1905 // 1906 // Solidity: function withdraw(uint256 toValidatorID, uint256 wrID) returns() 1907 func (_Contract *ContractTransactorSession) Withdraw(toValidatorID *big.Int, wrID *big.Int) (*types.Transaction, error) { 1908 return _Contract.Contract.Withdraw(&_Contract.TransactOpts, toValidatorID, wrID) 1909 } 1910 1911 // ContractBurntFTMIterator is returned from FilterBurntFTM and is used to iterate over the raw logs and unpacked data for BurntFTM events raised by the Contract contract. 1912 type ContractBurntFTMIterator struct { 1913 Event *ContractBurntFTM // Event containing the contract specifics and raw log 1914 1915 contract *bind.BoundContract // Generic contract to use for unpacking event data 1916 event string // Event name to use for unpacking event data 1917 1918 logs chan types.Log // Log channel receiving the found contract events 1919 sub u2u.Subscription // Subscription for errors, completion and termination 1920 done bool // Whether the subscription completed delivering logs 1921 fail error // Occurred error to stop iteration 1922 } 1923 1924 // Next advances the iterator to the subsequent event, returning whether there 1925 // are any more events found. In case of a retrieval or parsing error, false is 1926 // returned and Error() can be queried for the exact failure. 1927 func (it *ContractBurntFTMIterator) Next() bool { 1928 // If the iterator failed, stop iterating 1929 if it.fail != nil { 1930 return false 1931 } 1932 // If the iterator completed, deliver directly whatever's available 1933 if it.done { 1934 select { 1935 case log := <-it.logs: 1936 it.Event = new(ContractBurntFTM) 1937 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1938 it.fail = err 1939 return false 1940 } 1941 it.Event.Raw = log 1942 return true 1943 1944 default: 1945 return false 1946 } 1947 } 1948 // Iterator still in progress, wait for either a data or an error event 1949 select { 1950 case log := <-it.logs: 1951 it.Event = new(ContractBurntFTM) 1952 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1953 it.fail = err 1954 return false 1955 } 1956 it.Event.Raw = log 1957 return true 1958 1959 case err := <-it.sub.Err(): 1960 it.done = true 1961 it.fail = err 1962 return it.Next() 1963 } 1964 } 1965 1966 // Error returns any retrieval or parsing error occurred during filtering. 1967 func (it *ContractBurntFTMIterator) Error() error { 1968 return it.fail 1969 } 1970 1971 // Close terminates the iteration process, releasing any pending underlying 1972 // resources. 1973 func (it *ContractBurntFTMIterator) Close() error { 1974 it.sub.Unsubscribe() 1975 return nil 1976 } 1977 1978 // ContractBurntFTM represents a BurntFTM event raised by the Contract contract. 1979 type ContractBurntFTM struct { 1980 Amount *big.Int 1981 Raw types.Log // Blockchain specific contextual infos 1982 } 1983 1984 // FilterBurntFTM is a free log retrieval operation binding the contract event 0x8918bd6046d08b314e457977f29562c5d76a7030d79b1edba66e8a5da0b77ae8. 1985 // 1986 // Solidity: event BurntFTM(uint256 amount) 1987 func (_Contract *ContractFilterer) FilterBurntFTM(opts *bind.FilterOpts) (*ContractBurntFTMIterator, error) { 1988 1989 logs, sub, err := _Contract.contract.FilterLogs(opts, "BurntFTM") 1990 if err != nil { 1991 return nil, err 1992 } 1993 return &ContractBurntFTMIterator{contract: _Contract.contract, event: "BurntFTM", logs: logs, sub: sub}, nil 1994 } 1995 1996 // WatchBurntFTM is a free log subscription operation binding the contract event 0x8918bd6046d08b314e457977f29562c5d76a7030d79b1edba66e8a5da0b77ae8. 1997 // 1998 // Solidity: event BurntFTM(uint256 amount) 1999 func (_Contract *ContractFilterer) WatchBurntFTM(opts *bind.WatchOpts, sink chan<- *ContractBurntFTM) (event.Subscription, error) { 2000 2001 logs, sub, err := _Contract.contract.WatchLogs(opts, "BurntFTM") 2002 if err != nil { 2003 return nil, err 2004 } 2005 return event.NewSubscription(func(quit <-chan struct{}) error { 2006 defer sub.Unsubscribe() 2007 for { 2008 select { 2009 case log := <-logs: 2010 // New log arrived, parse the event and forward to the user 2011 event := new(ContractBurntFTM) 2012 if err := _Contract.contract.UnpackLog(event, "BurntFTM", log); err != nil { 2013 return err 2014 } 2015 event.Raw = log 2016 2017 select { 2018 case sink <- event: 2019 case err := <-sub.Err(): 2020 return err 2021 case <-quit: 2022 return nil 2023 } 2024 case err := <-sub.Err(): 2025 return err 2026 case <-quit: 2027 return nil 2028 } 2029 } 2030 }), nil 2031 } 2032 2033 // ParseBurntFTM is a log parse operation binding the contract event 0x8918bd6046d08b314e457977f29562c5d76a7030d79b1edba66e8a5da0b77ae8. 2034 // 2035 // Solidity: event BurntFTM(uint256 amount) 2036 func (_Contract *ContractFilterer) ParseBurntFTM(log types.Log) (*ContractBurntFTM, error) { 2037 event := new(ContractBurntFTM) 2038 if err := _Contract.contract.UnpackLog(event, "BurntFTM", log); err != nil { 2039 return nil, err 2040 } 2041 event.Raw = log 2042 return event, nil 2043 } 2044 2045 // ContractChangedValidatorStatusIterator is returned from FilterChangedValidatorStatus and is used to iterate over the raw logs and unpacked data for ChangedValidatorStatus events raised by the Contract contract. 2046 type ContractChangedValidatorStatusIterator struct { 2047 Event *ContractChangedValidatorStatus // Event containing the contract specifics and raw log 2048 2049 contract *bind.BoundContract // Generic contract to use for unpacking event data 2050 event string // Event name to use for unpacking event data 2051 2052 logs chan types.Log // Log channel receiving the found contract events 2053 sub u2u.Subscription // Subscription for errors, completion and termination 2054 done bool // Whether the subscription completed delivering logs 2055 fail error // Occurred error to stop iteration 2056 } 2057 2058 // Next advances the iterator to the subsequent event, returning whether there 2059 // are any more events found. In case of a retrieval or parsing error, false is 2060 // returned and Error() can be queried for the exact failure. 2061 func (it *ContractChangedValidatorStatusIterator) Next() bool { 2062 // If the iterator failed, stop iterating 2063 if it.fail != nil { 2064 return false 2065 } 2066 // If the iterator completed, deliver directly whatever's available 2067 if it.done { 2068 select { 2069 case log := <-it.logs: 2070 it.Event = new(ContractChangedValidatorStatus) 2071 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2072 it.fail = err 2073 return false 2074 } 2075 it.Event.Raw = log 2076 return true 2077 2078 default: 2079 return false 2080 } 2081 } 2082 // Iterator still in progress, wait for either a data or an error event 2083 select { 2084 case log := <-it.logs: 2085 it.Event = new(ContractChangedValidatorStatus) 2086 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2087 it.fail = err 2088 return false 2089 } 2090 it.Event.Raw = log 2091 return true 2092 2093 case err := <-it.sub.Err(): 2094 it.done = true 2095 it.fail = err 2096 return it.Next() 2097 } 2098 } 2099 2100 // Error returns any retrieval or parsing error occurred during filtering. 2101 func (it *ContractChangedValidatorStatusIterator) Error() error { 2102 return it.fail 2103 } 2104 2105 // Close terminates the iteration process, releasing any pending underlying 2106 // resources. 2107 func (it *ContractChangedValidatorStatusIterator) Close() error { 2108 it.sub.Unsubscribe() 2109 return nil 2110 } 2111 2112 // ContractChangedValidatorStatus represents a ChangedValidatorStatus event raised by the Contract contract. 2113 type ContractChangedValidatorStatus struct { 2114 ValidatorID *big.Int 2115 Status *big.Int 2116 Raw types.Log // Blockchain specific contextual infos 2117 } 2118 2119 // FilterChangedValidatorStatus is a free log retrieval operation binding the contract event 0xcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e. 2120 // 2121 // Solidity: event ChangedValidatorStatus(uint256 indexed validatorID, uint256 status) 2122 func (_Contract *ContractFilterer) FilterChangedValidatorStatus(opts *bind.FilterOpts, validatorID []*big.Int) (*ContractChangedValidatorStatusIterator, error) { 2123 2124 var validatorIDRule []interface{} 2125 for _, validatorIDItem := range validatorID { 2126 validatorIDRule = append(validatorIDRule, validatorIDItem) 2127 } 2128 2129 logs, sub, err := _Contract.contract.FilterLogs(opts, "ChangedValidatorStatus", validatorIDRule) 2130 if err != nil { 2131 return nil, err 2132 } 2133 return &ContractChangedValidatorStatusIterator{contract: _Contract.contract, event: "ChangedValidatorStatus", logs: logs, sub: sub}, nil 2134 } 2135 2136 // WatchChangedValidatorStatus is a free log subscription operation binding the contract event 0xcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e. 2137 // 2138 // Solidity: event ChangedValidatorStatus(uint256 indexed validatorID, uint256 status) 2139 func (_Contract *ContractFilterer) WatchChangedValidatorStatus(opts *bind.WatchOpts, sink chan<- *ContractChangedValidatorStatus, validatorID []*big.Int) (event.Subscription, error) { 2140 2141 var validatorIDRule []interface{} 2142 for _, validatorIDItem := range validatorID { 2143 validatorIDRule = append(validatorIDRule, validatorIDItem) 2144 } 2145 2146 logs, sub, err := _Contract.contract.WatchLogs(opts, "ChangedValidatorStatus", validatorIDRule) 2147 if err != nil { 2148 return nil, err 2149 } 2150 return event.NewSubscription(func(quit <-chan struct{}) error { 2151 defer sub.Unsubscribe() 2152 for { 2153 select { 2154 case log := <-logs: 2155 // New log arrived, parse the event and forward to the user 2156 event := new(ContractChangedValidatorStatus) 2157 if err := _Contract.contract.UnpackLog(event, "ChangedValidatorStatus", log); err != nil { 2158 return err 2159 } 2160 event.Raw = log 2161 2162 select { 2163 case sink <- event: 2164 case err := <-sub.Err(): 2165 return err 2166 case <-quit: 2167 return nil 2168 } 2169 case err := <-sub.Err(): 2170 return err 2171 case <-quit: 2172 return nil 2173 } 2174 } 2175 }), nil 2176 } 2177 2178 // ParseChangedValidatorStatus is a log parse operation binding the contract event 0xcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e. 2179 // 2180 // Solidity: event ChangedValidatorStatus(uint256 indexed validatorID, uint256 status) 2181 func (_Contract *ContractFilterer) ParseChangedValidatorStatus(log types.Log) (*ContractChangedValidatorStatus, error) { 2182 event := new(ContractChangedValidatorStatus) 2183 if err := _Contract.contract.UnpackLog(event, "ChangedValidatorStatus", log); err != nil { 2184 return nil, err 2185 } 2186 event.Raw = log 2187 return event, nil 2188 } 2189 2190 // ContractClaimedRewardsIterator is returned from FilterClaimedRewards and is used to iterate over the raw logs and unpacked data for ClaimedRewards events raised by the Contract contract. 2191 type ContractClaimedRewardsIterator struct { 2192 Event *ContractClaimedRewards // Event containing the contract specifics and raw log 2193 2194 contract *bind.BoundContract // Generic contract to use for unpacking event data 2195 event string // Event name to use for unpacking event data 2196 2197 logs chan types.Log // Log channel receiving the found contract events 2198 sub u2u.Subscription // Subscription for errors, completion and termination 2199 done bool // Whether the subscription completed delivering logs 2200 fail error // Occurred error to stop iteration 2201 } 2202 2203 // Next advances the iterator to the subsequent event, returning whether there 2204 // are any more events found. In case of a retrieval or parsing error, false is 2205 // returned and Error() can be queried for the exact failure. 2206 func (it *ContractClaimedRewardsIterator) Next() bool { 2207 // If the iterator failed, stop iterating 2208 if it.fail != nil { 2209 return false 2210 } 2211 // If the iterator completed, deliver directly whatever's available 2212 if it.done { 2213 select { 2214 case log := <-it.logs: 2215 it.Event = new(ContractClaimedRewards) 2216 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2217 it.fail = err 2218 return false 2219 } 2220 it.Event.Raw = log 2221 return true 2222 2223 default: 2224 return false 2225 } 2226 } 2227 // Iterator still in progress, wait for either a data or an error event 2228 select { 2229 case log := <-it.logs: 2230 it.Event = new(ContractClaimedRewards) 2231 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2232 it.fail = err 2233 return false 2234 } 2235 it.Event.Raw = log 2236 return true 2237 2238 case err := <-it.sub.Err(): 2239 it.done = true 2240 it.fail = err 2241 return it.Next() 2242 } 2243 } 2244 2245 // Error returns any retrieval or parsing error occurred during filtering. 2246 func (it *ContractClaimedRewardsIterator) Error() error { 2247 return it.fail 2248 } 2249 2250 // Close terminates the iteration process, releasing any pending underlying 2251 // resources. 2252 func (it *ContractClaimedRewardsIterator) Close() error { 2253 it.sub.Unsubscribe() 2254 return nil 2255 } 2256 2257 // ContractClaimedRewards represents a ClaimedRewards event raised by the Contract contract. 2258 type ContractClaimedRewards struct { 2259 Delegator common.Address 2260 ToValidatorID *big.Int 2261 LockupExtraReward *big.Int 2262 LockupBaseReward *big.Int 2263 UnlockedReward *big.Int 2264 Raw types.Log // Blockchain specific contextual infos 2265 } 2266 2267 // FilterClaimedRewards is a free log retrieval operation binding the contract event 0xc1d8eb6e444b89fb8ff0991c19311c070df704ccb009e210d1462d5b2410bf45. 2268 // 2269 // Solidity: event ClaimedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 2270 func (_Contract *ContractFilterer) FilterClaimedRewards(opts *bind.FilterOpts, delegator []common.Address, toValidatorID []*big.Int) (*ContractClaimedRewardsIterator, error) { 2271 2272 var delegatorRule []interface{} 2273 for _, delegatorItem := range delegator { 2274 delegatorRule = append(delegatorRule, delegatorItem) 2275 } 2276 var toValidatorIDRule []interface{} 2277 for _, toValidatorIDItem := range toValidatorID { 2278 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 2279 } 2280 2281 logs, sub, err := _Contract.contract.FilterLogs(opts, "ClaimedRewards", delegatorRule, toValidatorIDRule) 2282 if err != nil { 2283 return nil, err 2284 } 2285 return &ContractClaimedRewardsIterator{contract: _Contract.contract, event: "ClaimedRewards", logs: logs, sub: sub}, nil 2286 } 2287 2288 // WatchClaimedRewards is a free log subscription operation binding the contract event 0xc1d8eb6e444b89fb8ff0991c19311c070df704ccb009e210d1462d5b2410bf45. 2289 // 2290 // Solidity: event ClaimedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 2291 func (_Contract *ContractFilterer) WatchClaimedRewards(opts *bind.WatchOpts, sink chan<- *ContractClaimedRewards, delegator []common.Address, toValidatorID []*big.Int) (event.Subscription, error) { 2292 2293 var delegatorRule []interface{} 2294 for _, delegatorItem := range delegator { 2295 delegatorRule = append(delegatorRule, delegatorItem) 2296 } 2297 var toValidatorIDRule []interface{} 2298 for _, toValidatorIDItem := range toValidatorID { 2299 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 2300 } 2301 2302 logs, sub, err := _Contract.contract.WatchLogs(opts, "ClaimedRewards", delegatorRule, toValidatorIDRule) 2303 if err != nil { 2304 return nil, err 2305 } 2306 return event.NewSubscription(func(quit <-chan struct{}) error { 2307 defer sub.Unsubscribe() 2308 for { 2309 select { 2310 case log := <-logs: 2311 // New log arrived, parse the event and forward to the user 2312 event := new(ContractClaimedRewards) 2313 if err := _Contract.contract.UnpackLog(event, "ClaimedRewards", log); err != nil { 2314 return err 2315 } 2316 event.Raw = log 2317 2318 select { 2319 case sink <- event: 2320 case err := <-sub.Err(): 2321 return err 2322 case <-quit: 2323 return nil 2324 } 2325 case err := <-sub.Err(): 2326 return err 2327 case <-quit: 2328 return nil 2329 } 2330 } 2331 }), nil 2332 } 2333 2334 // ParseClaimedRewards is a log parse operation binding the contract event 0xc1d8eb6e444b89fb8ff0991c19311c070df704ccb009e210d1462d5b2410bf45. 2335 // 2336 // Solidity: event ClaimedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 2337 func (_Contract *ContractFilterer) ParseClaimedRewards(log types.Log) (*ContractClaimedRewards, error) { 2338 event := new(ContractClaimedRewards) 2339 if err := _Contract.contract.UnpackLog(event, "ClaimedRewards", log); err != nil { 2340 return nil, err 2341 } 2342 event.Raw = log 2343 return event, nil 2344 } 2345 2346 // ContractCreatedValidatorIterator is returned from FilterCreatedValidator and is used to iterate over the raw logs and unpacked data for CreatedValidator events raised by the Contract contract. 2347 type ContractCreatedValidatorIterator struct { 2348 Event *ContractCreatedValidator // Event containing the contract specifics and raw log 2349 2350 contract *bind.BoundContract // Generic contract to use for unpacking event data 2351 event string // Event name to use for unpacking event data 2352 2353 logs chan types.Log // Log channel receiving the found contract events 2354 sub u2u.Subscription // Subscription for errors, completion and termination 2355 done bool // Whether the subscription completed delivering logs 2356 fail error // Occurred error to stop iteration 2357 } 2358 2359 // Next advances the iterator to the subsequent event, returning whether there 2360 // are any more events found. In case of a retrieval or parsing error, false is 2361 // returned and Error() can be queried for the exact failure. 2362 func (it *ContractCreatedValidatorIterator) Next() bool { 2363 // If the iterator failed, stop iterating 2364 if it.fail != nil { 2365 return false 2366 } 2367 // If the iterator completed, deliver directly whatever's available 2368 if it.done { 2369 select { 2370 case log := <-it.logs: 2371 it.Event = new(ContractCreatedValidator) 2372 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2373 it.fail = err 2374 return false 2375 } 2376 it.Event.Raw = log 2377 return true 2378 2379 default: 2380 return false 2381 } 2382 } 2383 // Iterator still in progress, wait for either a data or an error event 2384 select { 2385 case log := <-it.logs: 2386 it.Event = new(ContractCreatedValidator) 2387 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2388 it.fail = err 2389 return false 2390 } 2391 it.Event.Raw = log 2392 return true 2393 2394 case err := <-it.sub.Err(): 2395 it.done = true 2396 it.fail = err 2397 return it.Next() 2398 } 2399 } 2400 2401 // Error returns any retrieval or parsing error occurred during filtering. 2402 func (it *ContractCreatedValidatorIterator) Error() error { 2403 return it.fail 2404 } 2405 2406 // Close terminates the iteration process, releasing any pending underlying 2407 // resources. 2408 func (it *ContractCreatedValidatorIterator) Close() error { 2409 it.sub.Unsubscribe() 2410 return nil 2411 } 2412 2413 // ContractCreatedValidator represents a CreatedValidator event raised by the Contract contract. 2414 type ContractCreatedValidator struct { 2415 ValidatorID *big.Int 2416 Auth common.Address 2417 CreatedEpoch *big.Int 2418 CreatedTime *big.Int 2419 Raw types.Log // Blockchain specific contextual infos 2420 } 2421 2422 // FilterCreatedValidator is a free log retrieval operation binding the contract event 0x49bca1ed2666922f9f1690c26a569e1299c2a715fe57647d77e81adfabbf25bf. 2423 // 2424 // Solidity: event CreatedValidator(uint256 indexed validatorID, address indexed auth, uint256 createdEpoch, uint256 createdTime) 2425 func (_Contract *ContractFilterer) FilterCreatedValidator(opts *bind.FilterOpts, validatorID []*big.Int, auth []common.Address) (*ContractCreatedValidatorIterator, error) { 2426 2427 var validatorIDRule []interface{} 2428 for _, validatorIDItem := range validatorID { 2429 validatorIDRule = append(validatorIDRule, validatorIDItem) 2430 } 2431 var authRule []interface{} 2432 for _, authItem := range auth { 2433 authRule = append(authRule, authItem) 2434 } 2435 2436 logs, sub, err := _Contract.contract.FilterLogs(opts, "CreatedValidator", validatorIDRule, authRule) 2437 if err != nil { 2438 return nil, err 2439 } 2440 return &ContractCreatedValidatorIterator{contract: _Contract.contract, event: "CreatedValidator", logs: logs, sub: sub}, nil 2441 } 2442 2443 // WatchCreatedValidator is a free log subscription operation binding the contract event 0x49bca1ed2666922f9f1690c26a569e1299c2a715fe57647d77e81adfabbf25bf. 2444 // 2445 // Solidity: event CreatedValidator(uint256 indexed validatorID, address indexed auth, uint256 createdEpoch, uint256 createdTime) 2446 func (_Contract *ContractFilterer) WatchCreatedValidator(opts *bind.WatchOpts, sink chan<- *ContractCreatedValidator, validatorID []*big.Int, auth []common.Address) (event.Subscription, error) { 2447 2448 var validatorIDRule []interface{} 2449 for _, validatorIDItem := range validatorID { 2450 validatorIDRule = append(validatorIDRule, validatorIDItem) 2451 } 2452 var authRule []interface{} 2453 for _, authItem := range auth { 2454 authRule = append(authRule, authItem) 2455 } 2456 2457 logs, sub, err := _Contract.contract.WatchLogs(opts, "CreatedValidator", validatorIDRule, authRule) 2458 if err != nil { 2459 return nil, err 2460 } 2461 return event.NewSubscription(func(quit <-chan struct{}) error { 2462 defer sub.Unsubscribe() 2463 for { 2464 select { 2465 case log := <-logs: 2466 // New log arrived, parse the event and forward to the user 2467 event := new(ContractCreatedValidator) 2468 if err := _Contract.contract.UnpackLog(event, "CreatedValidator", log); err != nil { 2469 return err 2470 } 2471 event.Raw = log 2472 2473 select { 2474 case sink <- event: 2475 case err := <-sub.Err(): 2476 return err 2477 case <-quit: 2478 return nil 2479 } 2480 case err := <-sub.Err(): 2481 return err 2482 case <-quit: 2483 return nil 2484 } 2485 } 2486 }), nil 2487 } 2488 2489 // ParseCreatedValidator is a log parse operation binding the contract event 0x49bca1ed2666922f9f1690c26a569e1299c2a715fe57647d77e81adfabbf25bf. 2490 // 2491 // Solidity: event CreatedValidator(uint256 indexed validatorID, address indexed auth, uint256 createdEpoch, uint256 createdTime) 2492 func (_Contract *ContractFilterer) ParseCreatedValidator(log types.Log) (*ContractCreatedValidator, error) { 2493 event := new(ContractCreatedValidator) 2494 if err := _Contract.contract.UnpackLog(event, "CreatedValidator", log); err != nil { 2495 return nil, err 2496 } 2497 event.Raw = log 2498 return event, nil 2499 } 2500 2501 // ContractDeactivatedValidatorIterator is returned from FilterDeactivatedValidator and is used to iterate over the raw logs and unpacked data for DeactivatedValidator events raised by the Contract contract. 2502 type ContractDeactivatedValidatorIterator struct { 2503 Event *ContractDeactivatedValidator // Event containing the contract specifics and raw log 2504 2505 contract *bind.BoundContract // Generic contract to use for unpacking event data 2506 event string // Event name to use for unpacking event data 2507 2508 logs chan types.Log // Log channel receiving the found contract events 2509 sub u2u.Subscription // Subscription for errors, completion and termination 2510 done bool // Whether the subscription completed delivering logs 2511 fail error // Occurred error to stop iteration 2512 } 2513 2514 // Next advances the iterator to the subsequent event, returning whether there 2515 // are any more events found. In case of a retrieval or parsing error, false is 2516 // returned and Error() can be queried for the exact failure. 2517 func (it *ContractDeactivatedValidatorIterator) Next() bool { 2518 // If the iterator failed, stop iterating 2519 if it.fail != nil { 2520 return false 2521 } 2522 // If the iterator completed, deliver directly whatever's available 2523 if it.done { 2524 select { 2525 case log := <-it.logs: 2526 it.Event = new(ContractDeactivatedValidator) 2527 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2528 it.fail = err 2529 return false 2530 } 2531 it.Event.Raw = log 2532 return true 2533 2534 default: 2535 return false 2536 } 2537 } 2538 // Iterator still in progress, wait for either a data or an error event 2539 select { 2540 case log := <-it.logs: 2541 it.Event = new(ContractDeactivatedValidator) 2542 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2543 it.fail = err 2544 return false 2545 } 2546 it.Event.Raw = log 2547 return true 2548 2549 case err := <-it.sub.Err(): 2550 it.done = true 2551 it.fail = err 2552 return it.Next() 2553 } 2554 } 2555 2556 // Error returns any retrieval or parsing error occurred during filtering. 2557 func (it *ContractDeactivatedValidatorIterator) Error() error { 2558 return it.fail 2559 } 2560 2561 // Close terminates the iteration process, releasing any pending underlying 2562 // resources. 2563 func (it *ContractDeactivatedValidatorIterator) Close() error { 2564 it.sub.Unsubscribe() 2565 return nil 2566 } 2567 2568 // ContractDeactivatedValidator represents a DeactivatedValidator event raised by the Contract contract. 2569 type ContractDeactivatedValidator struct { 2570 ValidatorID *big.Int 2571 DeactivatedEpoch *big.Int 2572 DeactivatedTime *big.Int 2573 Raw types.Log // Blockchain specific contextual infos 2574 } 2575 2576 // FilterDeactivatedValidator is a free log retrieval operation binding the contract event 0xac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e47. 2577 // 2578 // Solidity: event DeactivatedValidator(uint256 indexed validatorID, uint256 deactivatedEpoch, uint256 deactivatedTime) 2579 func (_Contract *ContractFilterer) FilterDeactivatedValidator(opts *bind.FilterOpts, validatorID []*big.Int) (*ContractDeactivatedValidatorIterator, error) { 2580 2581 var validatorIDRule []interface{} 2582 for _, validatorIDItem := range validatorID { 2583 validatorIDRule = append(validatorIDRule, validatorIDItem) 2584 } 2585 2586 logs, sub, err := _Contract.contract.FilterLogs(opts, "DeactivatedValidator", validatorIDRule) 2587 if err != nil { 2588 return nil, err 2589 } 2590 return &ContractDeactivatedValidatorIterator{contract: _Contract.contract, event: "DeactivatedValidator", logs: logs, sub: sub}, nil 2591 } 2592 2593 // WatchDeactivatedValidator is a free log subscription operation binding the contract event 0xac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e47. 2594 // 2595 // Solidity: event DeactivatedValidator(uint256 indexed validatorID, uint256 deactivatedEpoch, uint256 deactivatedTime) 2596 func (_Contract *ContractFilterer) WatchDeactivatedValidator(opts *bind.WatchOpts, sink chan<- *ContractDeactivatedValidator, validatorID []*big.Int) (event.Subscription, error) { 2597 2598 var validatorIDRule []interface{} 2599 for _, validatorIDItem := range validatorID { 2600 validatorIDRule = append(validatorIDRule, validatorIDItem) 2601 } 2602 2603 logs, sub, err := _Contract.contract.WatchLogs(opts, "DeactivatedValidator", validatorIDRule) 2604 if err != nil { 2605 return nil, err 2606 } 2607 return event.NewSubscription(func(quit <-chan struct{}) error { 2608 defer sub.Unsubscribe() 2609 for { 2610 select { 2611 case log := <-logs: 2612 // New log arrived, parse the event and forward to the user 2613 event := new(ContractDeactivatedValidator) 2614 if err := _Contract.contract.UnpackLog(event, "DeactivatedValidator", log); err != nil { 2615 return err 2616 } 2617 event.Raw = log 2618 2619 select { 2620 case sink <- event: 2621 case err := <-sub.Err(): 2622 return err 2623 case <-quit: 2624 return nil 2625 } 2626 case err := <-sub.Err(): 2627 return err 2628 case <-quit: 2629 return nil 2630 } 2631 } 2632 }), nil 2633 } 2634 2635 // ParseDeactivatedValidator is a log parse operation binding the contract event 0xac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e47. 2636 // 2637 // Solidity: event DeactivatedValidator(uint256 indexed validatorID, uint256 deactivatedEpoch, uint256 deactivatedTime) 2638 func (_Contract *ContractFilterer) ParseDeactivatedValidator(log types.Log) (*ContractDeactivatedValidator, error) { 2639 event := new(ContractDeactivatedValidator) 2640 if err := _Contract.contract.UnpackLog(event, "DeactivatedValidator", log); err != nil { 2641 return nil, err 2642 } 2643 event.Raw = log 2644 return event, nil 2645 } 2646 2647 // ContractDelegatedIterator is returned from FilterDelegated and is used to iterate over the raw logs and unpacked data for Delegated events raised by the Contract contract. 2648 type ContractDelegatedIterator struct { 2649 Event *ContractDelegated // Event containing the contract specifics and raw log 2650 2651 contract *bind.BoundContract // Generic contract to use for unpacking event data 2652 event string // Event name to use for unpacking event data 2653 2654 logs chan types.Log // Log channel receiving the found contract events 2655 sub u2u.Subscription // Subscription for errors, completion and termination 2656 done bool // Whether the subscription completed delivering logs 2657 fail error // Occurred error to stop iteration 2658 } 2659 2660 // Next advances the iterator to the subsequent event, returning whether there 2661 // are any more events found. In case of a retrieval or parsing error, false is 2662 // returned and Error() can be queried for the exact failure. 2663 func (it *ContractDelegatedIterator) Next() bool { 2664 // If the iterator failed, stop iterating 2665 if it.fail != nil { 2666 return false 2667 } 2668 // If the iterator completed, deliver directly whatever's available 2669 if it.done { 2670 select { 2671 case log := <-it.logs: 2672 it.Event = new(ContractDelegated) 2673 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2674 it.fail = err 2675 return false 2676 } 2677 it.Event.Raw = log 2678 return true 2679 2680 default: 2681 return false 2682 } 2683 } 2684 // Iterator still in progress, wait for either a data or an error event 2685 select { 2686 case log := <-it.logs: 2687 it.Event = new(ContractDelegated) 2688 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2689 it.fail = err 2690 return false 2691 } 2692 it.Event.Raw = log 2693 return true 2694 2695 case err := <-it.sub.Err(): 2696 it.done = true 2697 it.fail = err 2698 return it.Next() 2699 } 2700 } 2701 2702 // Error returns any retrieval or parsing error occurred during filtering. 2703 func (it *ContractDelegatedIterator) Error() error { 2704 return it.fail 2705 } 2706 2707 // Close terminates the iteration process, releasing any pending underlying 2708 // resources. 2709 func (it *ContractDelegatedIterator) Close() error { 2710 it.sub.Unsubscribe() 2711 return nil 2712 } 2713 2714 // ContractDelegated represents a Delegated event raised by the Contract contract. 2715 type ContractDelegated struct { 2716 Delegator common.Address 2717 ToValidatorID *big.Int 2718 Amount *big.Int 2719 Raw types.Log // Blockchain specific contextual infos 2720 } 2721 2722 // FilterDelegated is a free log retrieval operation binding the contract event 0x9a8f44850296624dadfd9c246d17e47171d35727a181bd090aa14bbbe00238bb. 2723 // 2724 // Solidity: event Delegated(address indexed delegator, uint256 indexed toValidatorID, uint256 amount) 2725 func (_Contract *ContractFilterer) FilterDelegated(opts *bind.FilterOpts, delegator []common.Address, toValidatorID []*big.Int) (*ContractDelegatedIterator, error) { 2726 2727 var delegatorRule []interface{} 2728 for _, delegatorItem := range delegator { 2729 delegatorRule = append(delegatorRule, delegatorItem) 2730 } 2731 var toValidatorIDRule []interface{} 2732 for _, toValidatorIDItem := range toValidatorID { 2733 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 2734 } 2735 2736 logs, sub, err := _Contract.contract.FilterLogs(opts, "Delegated", delegatorRule, toValidatorIDRule) 2737 if err != nil { 2738 return nil, err 2739 } 2740 return &ContractDelegatedIterator{contract: _Contract.contract, event: "Delegated", logs: logs, sub: sub}, nil 2741 } 2742 2743 // WatchDelegated is a free log subscription operation binding the contract event 0x9a8f44850296624dadfd9c246d17e47171d35727a181bd090aa14bbbe00238bb. 2744 // 2745 // Solidity: event Delegated(address indexed delegator, uint256 indexed toValidatorID, uint256 amount) 2746 func (_Contract *ContractFilterer) WatchDelegated(opts *bind.WatchOpts, sink chan<- *ContractDelegated, delegator []common.Address, toValidatorID []*big.Int) (event.Subscription, error) { 2747 2748 var delegatorRule []interface{} 2749 for _, delegatorItem := range delegator { 2750 delegatorRule = append(delegatorRule, delegatorItem) 2751 } 2752 var toValidatorIDRule []interface{} 2753 for _, toValidatorIDItem := range toValidatorID { 2754 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 2755 } 2756 2757 logs, sub, err := _Contract.contract.WatchLogs(opts, "Delegated", delegatorRule, toValidatorIDRule) 2758 if err != nil { 2759 return nil, err 2760 } 2761 return event.NewSubscription(func(quit <-chan struct{}) error { 2762 defer sub.Unsubscribe() 2763 for { 2764 select { 2765 case log := <-logs: 2766 // New log arrived, parse the event and forward to the user 2767 event := new(ContractDelegated) 2768 if err := _Contract.contract.UnpackLog(event, "Delegated", log); err != nil { 2769 return err 2770 } 2771 event.Raw = log 2772 2773 select { 2774 case sink <- event: 2775 case err := <-sub.Err(): 2776 return err 2777 case <-quit: 2778 return nil 2779 } 2780 case err := <-sub.Err(): 2781 return err 2782 case <-quit: 2783 return nil 2784 } 2785 } 2786 }), nil 2787 } 2788 2789 // ParseDelegated is a log parse operation binding the contract event 0x9a8f44850296624dadfd9c246d17e47171d35727a181bd090aa14bbbe00238bb. 2790 // 2791 // Solidity: event Delegated(address indexed delegator, uint256 indexed toValidatorID, uint256 amount) 2792 func (_Contract *ContractFilterer) ParseDelegated(log types.Log) (*ContractDelegated, error) { 2793 event := new(ContractDelegated) 2794 if err := _Contract.contract.UnpackLog(event, "Delegated", log); err != nil { 2795 return nil, err 2796 } 2797 event.Raw = log 2798 return event, nil 2799 } 2800 2801 // ContractInflatedFTMIterator is returned from FilterInflatedFTM and is used to iterate over the raw logs and unpacked data for InflatedFTM events raised by the Contract contract. 2802 type ContractInflatedFTMIterator struct { 2803 Event *ContractInflatedFTM // Event containing the contract specifics and raw log 2804 2805 contract *bind.BoundContract // Generic contract to use for unpacking event data 2806 event string // Event name to use for unpacking event data 2807 2808 logs chan types.Log // Log channel receiving the found contract events 2809 sub u2u.Subscription // Subscription for errors, completion and termination 2810 done bool // Whether the subscription completed delivering logs 2811 fail error // Occurred error to stop iteration 2812 } 2813 2814 // Next advances the iterator to the subsequent event, returning whether there 2815 // are any more events found. In case of a retrieval or parsing error, false is 2816 // returned and Error() can be queried for the exact failure. 2817 func (it *ContractInflatedFTMIterator) Next() bool { 2818 // If the iterator failed, stop iterating 2819 if it.fail != nil { 2820 return false 2821 } 2822 // If the iterator completed, deliver directly whatever's available 2823 if it.done { 2824 select { 2825 case log := <-it.logs: 2826 it.Event = new(ContractInflatedFTM) 2827 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2828 it.fail = err 2829 return false 2830 } 2831 it.Event.Raw = log 2832 return true 2833 2834 default: 2835 return false 2836 } 2837 } 2838 // Iterator still in progress, wait for either a data or an error event 2839 select { 2840 case log := <-it.logs: 2841 it.Event = new(ContractInflatedFTM) 2842 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2843 it.fail = err 2844 return false 2845 } 2846 it.Event.Raw = log 2847 return true 2848 2849 case err := <-it.sub.Err(): 2850 it.done = true 2851 it.fail = err 2852 return it.Next() 2853 } 2854 } 2855 2856 // Error returns any retrieval or parsing error occurred during filtering. 2857 func (it *ContractInflatedFTMIterator) Error() error { 2858 return it.fail 2859 } 2860 2861 // Close terminates the iteration process, releasing any pending underlying 2862 // resources. 2863 func (it *ContractInflatedFTMIterator) Close() error { 2864 it.sub.Unsubscribe() 2865 return nil 2866 } 2867 2868 // ContractInflatedFTM represents a InflatedFTM event raised by the Contract contract. 2869 type ContractInflatedFTM struct { 2870 Receiver common.Address 2871 Amount *big.Int 2872 Justification string 2873 Raw types.Log // Blockchain specific contextual infos 2874 } 2875 2876 // FilterInflatedFTM is a free log retrieval operation binding the contract event 0x9eec469b348bcf64bbfb60e46ce7b160e2e09bf5421496a2cdbc43714c28b8ad. 2877 // 2878 // Solidity: event InflatedFTM(address indexed receiver, uint256 amount, string justification) 2879 func (_Contract *ContractFilterer) FilterInflatedFTM(opts *bind.FilterOpts, receiver []common.Address) (*ContractInflatedFTMIterator, error) { 2880 2881 var receiverRule []interface{} 2882 for _, receiverItem := range receiver { 2883 receiverRule = append(receiverRule, receiverItem) 2884 } 2885 2886 logs, sub, err := _Contract.contract.FilterLogs(opts, "InflatedFTM", receiverRule) 2887 if err != nil { 2888 return nil, err 2889 } 2890 return &ContractInflatedFTMIterator{contract: _Contract.contract, event: "InflatedFTM", logs: logs, sub: sub}, nil 2891 } 2892 2893 // WatchInflatedFTM is a free log subscription operation binding the contract event 0x9eec469b348bcf64bbfb60e46ce7b160e2e09bf5421496a2cdbc43714c28b8ad. 2894 // 2895 // Solidity: event InflatedFTM(address indexed receiver, uint256 amount, string justification) 2896 func (_Contract *ContractFilterer) WatchInflatedFTM(opts *bind.WatchOpts, sink chan<- *ContractInflatedFTM, receiver []common.Address) (event.Subscription, error) { 2897 2898 var receiverRule []interface{} 2899 for _, receiverItem := range receiver { 2900 receiverRule = append(receiverRule, receiverItem) 2901 } 2902 2903 logs, sub, err := _Contract.contract.WatchLogs(opts, "InflatedFTM", receiverRule) 2904 if err != nil { 2905 return nil, err 2906 } 2907 return event.NewSubscription(func(quit <-chan struct{}) error { 2908 defer sub.Unsubscribe() 2909 for { 2910 select { 2911 case log := <-logs: 2912 // New log arrived, parse the event and forward to the user 2913 event := new(ContractInflatedFTM) 2914 if err := _Contract.contract.UnpackLog(event, "InflatedFTM", log); err != nil { 2915 return err 2916 } 2917 event.Raw = log 2918 2919 select { 2920 case sink <- event: 2921 case err := <-sub.Err(): 2922 return err 2923 case <-quit: 2924 return nil 2925 } 2926 case err := <-sub.Err(): 2927 return err 2928 case <-quit: 2929 return nil 2930 } 2931 } 2932 }), nil 2933 } 2934 2935 // ParseInflatedFTM is a log parse operation binding the contract event 0x9eec469b348bcf64bbfb60e46ce7b160e2e09bf5421496a2cdbc43714c28b8ad. 2936 // 2937 // Solidity: event InflatedFTM(address indexed receiver, uint256 amount, string justification) 2938 func (_Contract *ContractFilterer) ParseInflatedFTM(log types.Log) (*ContractInflatedFTM, error) { 2939 event := new(ContractInflatedFTM) 2940 if err := _Contract.contract.UnpackLog(event, "InflatedFTM", log); err != nil { 2941 return nil, err 2942 } 2943 event.Raw = log 2944 return event, nil 2945 } 2946 2947 // ContractLockedUpStakeIterator is returned from FilterLockedUpStake and is used to iterate over the raw logs and unpacked data for LockedUpStake events raised by the Contract contract. 2948 type ContractLockedUpStakeIterator struct { 2949 Event *ContractLockedUpStake // Event containing the contract specifics and raw log 2950 2951 contract *bind.BoundContract // Generic contract to use for unpacking event data 2952 event string // Event name to use for unpacking event data 2953 2954 logs chan types.Log // Log channel receiving the found contract events 2955 sub u2u.Subscription // Subscription for errors, completion and termination 2956 done bool // Whether the subscription completed delivering logs 2957 fail error // Occurred error to stop iteration 2958 } 2959 2960 // Next advances the iterator to the subsequent event, returning whether there 2961 // are any more events found. In case of a retrieval or parsing error, false is 2962 // returned and Error() can be queried for the exact failure. 2963 func (it *ContractLockedUpStakeIterator) Next() bool { 2964 // If the iterator failed, stop iterating 2965 if it.fail != nil { 2966 return false 2967 } 2968 // If the iterator completed, deliver directly whatever's available 2969 if it.done { 2970 select { 2971 case log := <-it.logs: 2972 it.Event = new(ContractLockedUpStake) 2973 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2974 it.fail = err 2975 return false 2976 } 2977 it.Event.Raw = log 2978 return true 2979 2980 default: 2981 return false 2982 } 2983 } 2984 // Iterator still in progress, wait for either a data or an error event 2985 select { 2986 case log := <-it.logs: 2987 it.Event = new(ContractLockedUpStake) 2988 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 2989 it.fail = err 2990 return false 2991 } 2992 it.Event.Raw = log 2993 return true 2994 2995 case err := <-it.sub.Err(): 2996 it.done = true 2997 it.fail = err 2998 return it.Next() 2999 } 3000 } 3001 3002 // Error returns any retrieval or parsing error occurred during filtering. 3003 func (it *ContractLockedUpStakeIterator) Error() error { 3004 return it.fail 3005 } 3006 3007 // Close terminates the iteration process, releasing any pending underlying 3008 // resources. 3009 func (it *ContractLockedUpStakeIterator) Close() error { 3010 it.sub.Unsubscribe() 3011 return nil 3012 } 3013 3014 // ContractLockedUpStake represents a LockedUpStake event raised by the Contract contract. 3015 type ContractLockedUpStake struct { 3016 Delegator common.Address 3017 ValidatorID *big.Int 3018 Duration *big.Int 3019 Amount *big.Int 3020 Raw types.Log // Blockchain specific contextual infos 3021 } 3022 3023 // FilterLockedUpStake is a free log retrieval operation binding the contract event 0x138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e78. 3024 // 3025 // Solidity: event LockedUpStake(address indexed delegator, uint256 indexed validatorID, uint256 duration, uint256 amount) 3026 func (_Contract *ContractFilterer) FilterLockedUpStake(opts *bind.FilterOpts, delegator []common.Address, validatorID []*big.Int) (*ContractLockedUpStakeIterator, error) { 3027 3028 var delegatorRule []interface{} 3029 for _, delegatorItem := range delegator { 3030 delegatorRule = append(delegatorRule, delegatorItem) 3031 } 3032 var validatorIDRule []interface{} 3033 for _, validatorIDItem := range validatorID { 3034 validatorIDRule = append(validatorIDRule, validatorIDItem) 3035 } 3036 3037 logs, sub, err := _Contract.contract.FilterLogs(opts, "LockedUpStake", delegatorRule, validatorIDRule) 3038 if err != nil { 3039 return nil, err 3040 } 3041 return &ContractLockedUpStakeIterator{contract: _Contract.contract, event: "LockedUpStake", logs: logs, sub: sub}, nil 3042 } 3043 3044 // WatchLockedUpStake is a free log subscription operation binding the contract event 0x138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e78. 3045 // 3046 // Solidity: event LockedUpStake(address indexed delegator, uint256 indexed validatorID, uint256 duration, uint256 amount) 3047 func (_Contract *ContractFilterer) WatchLockedUpStake(opts *bind.WatchOpts, sink chan<- *ContractLockedUpStake, delegator []common.Address, validatorID []*big.Int) (event.Subscription, error) { 3048 3049 var delegatorRule []interface{} 3050 for _, delegatorItem := range delegator { 3051 delegatorRule = append(delegatorRule, delegatorItem) 3052 } 3053 var validatorIDRule []interface{} 3054 for _, validatorIDItem := range validatorID { 3055 validatorIDRule = append(validatorIDRule, validatorIDItem) 3056 } 3057 3058 logs, sub, err := _Contract.contract.WatchLogs(opts, "LockedUpStake", delegatorRule, validatorIDRule) 3059 if err != nil { 3060 return nil, err 3061 } 3062 return event.NewSubscription(func(quit <-chan struct{}) error { 3063 defer sub.Unsubscribe() 3064 for { 3065 select { 3066 case log := <-logs: 3067 // New log arrived, parse the event and forward to the user 3068 event := new(ContractLockedUpStake) 3069 if err := _Contract.contract.UnpackLog(event, "LockedUpStake", log); err != nil { 3070 return err 3071 } 3072 event.Raw = log 3073 3074 select { 3075 case sink <- event: 3076 case err := <-sub.Err(): 3077 return err 3078 case <-quit: 3079 return nil 3080 } 3081 case err := <-sub.Err(): 3082 return err 3083 case <-quit: 3084 return nil 3085 } 3086 } 3087 }), nil 3088 } 3089 3090 // ParseLockedUpStake is a log parse operation binding the contract event 0x138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e78. 3091 // 3092 // Solidity: event LockedUpStake(address indexed delegator, uint256 indexed validatorID, uint256 duration, uint256 amount) 3093 func (_Contract *ContractFilterer) ParseLockedUpStake(log types.Log) (*ContractLockedUpStake, error) { 3094 event := new(ContractLockedUpStake) 3095 if err := _Contract.contract.UnpackLog(event, "LockedUpStake", log); err != nil { 3096 return nil, err 3097 } 3098 event.Raw = log 3099 return event, nil 3100 } 3101 3102 // ContractOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Contract contract. 3103 type ContractOwnershipTransferredIterator struct { 3104 Event *ContractOwnershipTransferred // Event containing the contract specifics and raw log 3105 3106 contract *bind.BoundContract // Generic contract to use for unpacking event data 3107 event string // Event name to use for unpacking event data 3108 3109 logs chan types.Log // Log channel receiving the found contract events 3110 sub u2u.Subscription // Subscription for errors, completion and termination 3111 done bool // Whether the subscription completed delivering logs 3112 fail error // Occurred error to stop iteration 3113 } 3114 3115 // Next advances the iterator to the subsequent event, returning whether there 3116 // are any more events found. In case of a retrieval or parsing error, false is 3117 // returned and Error() can be queried for the exact failure. 3118 func (it *ContractOwnershipTransferredIterator) Next() bool { 3119 // If the iterator failed, stop iterating 3120 if it.fail != nil { 3121 return false 3122 } 3123 // If the iterator completed, deliver directly whatever's available 3124 if it.done { 3125 select { 3126 case log := <-it.logs: 3127 it.Event = new(ContractOwnershipTransferred) 3128 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3129 it.fail = err 3130 return false 3131 } 3132 it.Event.Raw = log 3133 return true 3134 3135 default: 3136 return false 3137 } 3138 } 3139 // Iterator still in progress, wait for either a data or an error event 3140 select { 3141 case log := <-it.logs: 3142 it.Event = new(ContractOwnershipTransferred) 3143 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3144 it.fail = err 3145 return false 3146 } 3147 it.Event.Raw = log 3148 return true 3149 3150 case err := <-it.sub.Err(): 3151 it.done = true 3152 it.fail = err 3153 return it.Next() 3154 } 3155 } 3156 3157 // Error returns any retrieval or parsing error occurred during filtering. 3158 func (it *ContractOwnershipTransferredIterator) Error() error { 3159 return it.fail 3160 } 3161 3162 // Close terminates the iteration process, releasing any pending underlying 3163 // resources. 3164 func (it *ContractOwnershipTransferredIterator) Close() error { 3165 it.sub.Unsubscribe() 3166 return nil 3167 } 3168 3169 // ContractOwnershipTransferred represents a OwnershipTransferred event raised by the Contract contract. 3170 type ContractOwnershipTransferred struct { 3171 PreviousOwner common.Address 3172 NewOwner common.Address 3173 Raw types.Log // Blockchain specific contextual infos 3174 } 3175 3176 // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 3177 // 3178 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 3179 func (_Contract *ContractFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ContractOwnershipTransferredIterator, error) { 3180 3181 var previousOwnerRule []interface{} 3182 for _, previousOwnerItem := range previousOwner { 3183 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 3184 } 3185 var newOwnerRule []interface{} 3186 for _, newOwnerItem := range newOwner { 3187 newOwnerRule = append(newOwnerRule, newOwnerItem) 3188 } 3189 3190 logs, sub, err := _Contract.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 3191 if err != nil { 3192 return nil, err 3193 } 3194 return &ContractOwnershipTransferredIterator{contract: _Contract.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil 3195 } 3196 3197 // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 3198 // 3199 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 3200 func (_Contract *ContractFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ContractOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { 3201 3202 var previousOwnerRule []interface{} 3203 for _, previousOwnerItem := range previousOwner { 3204 previousOwnerRule = append(previousOwnerRule, previousOwnerItem) 3205 } 3206 var newOwnerRule []interface{} 3207 for _, newOwnerItem := range newOwner { 3208 newOwnerRule = append(newOwnerRule, newOwnerItem) 3209 } 3210 3211 logs, sub, err := _Contract.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) 3212 if err != nil { 3213 return nil, err 3214 } 3215 return event.NewSubscription(func(quit <-chan struct{}) error { 3216 defer sub.Unsubscribe() 3217 for { 3218 select { 3219 case log := <-logs: 3220 // New log arrived, parse the event and forward to the user 3221 event := new(ContractOwnershipTransferred) 3222 if err := _Contract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 3223 return err 3224 } 3225 event.Raw = log 3226 3227 select { 3228 case sink <- event: 3229 case err := <-sub.Err(): 3230 return err 3231 case <-quit: 3232 return nil 3233 } 3234 case err := <-sub.Err(): 3235 return err 3236 case <-quit: 3237 return nil 3238 } 3239 } 3240 }), nil 3241 } 3242 3243 // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. 3244 // 3245 // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) 3246 func (_Contract *ContractFilterer) ParseOwnershipTransferred(log types.Log) (*ContractOwnershipTransferred, error) { 3247 event := new(ContractOwnershipTransferred) 3248 if err := _Contract.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { 3249 return nil, err 3250 } 3251 event.Raw = log 3252 return event, nil 3253 } 3254 3255 // ContractRefundedSlashedLegacyDelegationIterator is returned from FilterRefundedSlashedLegacyDelegation and is used to iterate over the raw logs and unpacked data for RefundedSlashedLegacyDelegation events raised by the Contract contract. 3256 type ContractRefundedSlashedLegacyDelegationIterator struct { 3257 Event *ContractRefundedSlashedLegacyDelegation // Event containing the contract specifics and raw log 3258 3259 contract *bind.BoundContract // Generic contract to use for unpacking event data 3260 event string // Event name to use for unpacking event data 3261 3262 logs chan types.Log // Log channel receiving the found contract events 3263 sub u2u.Subscription // Subscription for errors, completion and termination 3264 done bool // Whether the subscription completed delivering logs 3265 fail error // Occurred error to stop iteration 3266 } 3267 3268 // Next advances the iterator to the subsequent event, returning whether there 3269 // are any more events found. In case of a retrieval or parsing error, false is 3270 // returned and Error() can be queried for the exact failure. 3271 func (it *ContractRefundedSlashedLegacyDelegationIterator) Next() bool { 3272 // If the iterator failed, stop iterating 3273 if it.fail != nil { 3274 return false 3275 } 3276 // If the iterator completed, deliver directly whatever's available 3277 if it.done { 3278 select { 3279 case log := <-it.logs: 3280 it.Event = new(ContractRefundedSlashedLegacyDelegation) 3281 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3282 it.fail = err 3283 return false 3284 } 3285 it.Event.Raw = log 3286 return true 3287 3288 default: 3289 return false 3290 } 3291 } 3292 // Iterator still in progress, wait for either a data or an error event 3293 select { 3294 case log := <-it.logs: 3295 it.Event = new(ContractRefundedSlashedLegacyDelegation) 3296 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3297 it.fail = err 3298 return false 3299 } 3300 it.Event.Raw = log 3301 return true 3302 3303 case err := <-it.sub.Err(): 3304 it.done = true 3305 it.fail = err 3306 return it.Next() 3307 } 3308 } 3309 3310 // Error returns any retrieval or parsing error occurred during filtering. 3311 func (it *ContractRefundedSlashedLegacyDelegationIterator) Error() error { 3312 return it.fail 3313 } 3314 3315 // Close terminates the iteration process, releasing any pending underlying 3316 // resources. 3317 func (it *ContractRefundedSlashedLegacyDelegationIterator) Close() error { 3318 it.sub.Unsubscribe() 3319 return nil 3320 } 3321 3322 // ContractRefundedSlashedLegacyDelegation represents a RefundedSlashedLegacyDelegation event raised by the Contract contract. 3323 type ContractRefundedSlashedLegacyDelegation struct { 3324 Delegator common.Address 3325 ValidatorID *big.Int 3326 Amount *big.Int 3327 Raw types.Log // Blockchain specific contextual infos 3328 } 3329 3330 // FilterRefundedSlashedLegacyDelegation is a free log retrieval operation binding the contract event 0x172fdfaf5222519d28d2794b7617be033f46d954f9b6c3896e7d2611ff444252. 3331 // 3332 // Solidity: event RefundedSlashedLegacyDelegation(address indexed delegator, uint256 indexed validatorID, uint256 amount) 3333 func (_Contract *ContractFilterer) FilterRefundedSlashedLegacyDelegation(opts *bind.FilterOpts, delegator []common.Address, validatorID []*big.Int) (*ContractRefundedSlashedLegacyDelegationIterator, error) { 3334 3335 var delegatorRule []interface{} 3336 for _, delegatorItem := range delegator { 3337 delegatorRule = append(delegatorRule, delegatorItem) 3338 } 3339 var validatorIDRule []interface{} 3340 for _, validatorIDItem := range validatorID { 3341 validatorIDRule = append(validatorIDRule, validatorIDItem) 3342 } 3343 3344 logs, sub, err := _Contract.contract.FilterLogs(opts, "RefundedSlashedLegacyDelegation", delegatorRule, validatorIDRule) 3345 if err != nil { 3346 return nil, err 3347 } 3348 return &ContractRefundedSlashedLegacyDelegationIterator{contract: _Contract.contract, event: "RefundedSlashedLegacyDelegation", logs: logs, sub: sub}, nil 3349 } 3350 3351 // WatchRefundedSlashedLegacyDelegation is a free log subscription operation binding the contract event 0x172fdfaf5222519d28d2794b7617be033f46d954f9b6c3896e7d2611ff444252. 3352 // 3353 // Solidity: event RefundedSlashedLegacyDelegation(address indexed delegator, uint256 indexed validatorID, uint256 amount) 3354 func (_Contract *ContractFilterer) WatchRefundedSlashedLegacyDelegation(opts *bind.WatchOpts, sink chan<- *ContractRefundedSlashedLegacyDelegation, delegator []common.Address, validatorID []*big.Int) (event.Subscription, error) { 3355 3356 var delegatorRule []interface{} 3357 for _, delegatorItem := range delegator { 3358 delegatorRule = append(delegatorRule, delegatorItem) 3359 } 3360 var validatorIDRule []interface{} 3361 for _, validatorIDItem := range validatorID { 3362 validatorIDRule = append(validatorIDRule, validatorIDItem) 3363 } 3364 3365 logs, sub, err := _Contract.contract.WatchLogs(opts, "RefundedSlashedLegacyDelegation", delegatorRule, validatorIDRule) 3366 if err != nil { 3367 return nil, err 3368 } 3369 return event.NewSubscription(func(quit <-chan struct{}) error { 3370 defer sub.Unsubscribe() 3371 for { 3372 select { 3373 case log := <-logs: 3374 // New log arrived, parse the event and forward to the user 3375 event := new(ContractRefundedSlashedLegacyDelegation) 3376 if err := _Contract.contract.UnpackLog(event, "RefundedSlashedLegacyDelegation", log); err != nil { 3377 return err 3378 } 3379 event.Raw = log 3380 3381 select { 3382 case sink <- event: 3383 case err := <-sub.Err(): 3384 return err 3385 case <-quit: 3386 return nil 3387 } 3388 case err := <-sub.Err(): 3389 return err 3390 case <-quit: 3391 return nil 3392 } 3393 } 3394 }), nil 3395 } 3396 3397 // ParseRefundedSlashedLegacyDelegation is a log parse operation binding the contract event 0x172fdfaf5222519d28d2794b7617be033f46d954f9b6c3896e7d2611ff444252. 3398 // 3399 // Solidity: event RefundedSlashedLegacyDelegation(address indexed delegator, uint256 indexed validatorID, uint256 amount) 3400 func (_Contract *ContractFilterer) ParseRefundedSlashedLegacyDelegation(log types.Log) (*ContractRefundedSlashedLegacyDelegation, error) { 3401 event := new(ContractRefundedSlashedLegacyDelegation) 3402 if err := _Contract.contract.UnpackLog(event, "RefundedSlashedLegacyDelegation", log); err != nil { 3403 return nil, err 3404 } 3405 event.Raw = log 3406 return event, nil 3407 } 3408 3409 // ContractRestakedRewardsIterator is returned from FilterRestakedRewards and is used to iterate over the raw logs and unpacked data for RestakedRewards events raised by the Contract contract. 3410 type ContractRestakedRewardsIterator struct { 3411 Event *ContractRestakedRewards // Event containing the contract specifics and raw log 3412 3413 contract *bind.BoundContract // Generic contract to use for unpacking event data 3414 event string // Event name to use for unpacking event data 3415 3416 logs chan types.Log // Log channel receiving the found contract events 3417 sub u2u.Subscription // Subscription for errors, completion and termination 3418 done bool // Whether the subscription completed delivering logs 3419 fail error // Occurred error to stop iteration 3420 } 3421 3422 // Next advances the iterator to the subsequent event, returning whether there 3423 // are any more events found. In case of a retrieval or parsing error, false is 3424 // returned and Error() can be queried for the exact failure. 3425 func (it *ContractRestakedRewardsIterator) Next() bool { 3426 // If the iterator failed, stop iterating 3427 if it.fail != nil { 3428 return false 3429 } 3430 // If the iterator completed, deliver directly whatever's available 3431 if it.done { 3432 select { 3433 case log := <-it.logs: 3434 it.Event = new(ContractRestakedRewards) 3435 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3436 it.fail = err 3437 return false 3438 } 3439 it.Event.Raw = log 3440 return true 3441 3442 default: 3443 return false 3444 } 3445 } 3446 // Iterator still in progress, wait for either a data or an error event 3447 select { 3448 case log := <-it.logs: 3449 it.Event = new(ContractRestakedRewards) 3450 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3451 it.fail = err 3452 return false 3453 } 3454 it.Event.Raw = log 3455 return true 3456 3457 case err := <-it.sub.Err(): 3458 it.done = true 3459 it.fail = err 3460 return it.Next() 3461 } 3462 } 3463 3464 // Error returns any retrieval or parsing error occurred during filtering. 3465 func (it *ContractRestakedRewardsIterator) Error() error { 3466 return it.fail 3467 } 3468 3469 // Close terminates the iteration process, releasing any pending underlying 3470 // resources. 3471 func (it *ContractRestakedRewardsIterator) Close() error { 3472 it.sub.Unsubscribe() 3473 return nil 3474 } 3475 3476 // ContractRestakedRewards represents a RestakedRewards event raised by the Contract contract. 3477 type ContractRestakedRewards struct { 3478 Delegator common.Address 3479 ToValidatorID *big.Int 3480 LockupExtraReward *big.Int 3481 LockupBaseReward *big.Int 3482 UnlockedReward *big.Int 3483 Raw types.Log // Blockchain specific contextual infos 3484 } 3485 3486 // FilterRestakedRewards is a free log retrieval operation binding the contract event 0x4119153d17a36f9597d40e3ab4148d03261a439dddbec4e91799ab7159608e26. 3487 // 3488 // Solidity: event RestakedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 3489 func (_Contract *ContractFilterer) FilterRestakedRewards(opts *bind.FilterOpts, delegator []common.Address, toValidatorID []*big.Int) (*ContractRestakedRewardsIterator, error) { 3490 3491 var delegatorRule []interface{} 3492 for _, delegatorItem := range delegator { 3493 delegatorRule = append(delegatorRule, delegatorItem) 3494 } 3495 var toValidatorIDRule []interface{} 3496 for _, toValidatorIDItem := range toValidatorID { 3497 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 3498 } 3499 3500 logs, sub, err := _Contract.contract.FilterLogs(opts, "RestakedRewards", delegatorRule, toValidatorIDRule) 3501 if err != nil { 3502 return nil, err 3503 } 3504 return &ContractRestakedRewardsIterator{contract: _Contract.contract, event: "RestakedRewards", logs: logs, sub: sub}, nil 3505 } 3506 3507 // WatchRestakedRewards is a free log subscription operation binding the contract event 0x4119153d17a36f9597d40e3ab4148d03261a439dddbec4e91799ab7159608e26. 3508 // 3509 // Solidity: event RestakedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 3510 func (_Contract *ContractFilterer) WatchRestakedRewards(opts *bind.WatchOpts, sink chan<- *ContractRestakedRewards, delegator []common.Address, toValidatorID []*big.Int) (event.Subscription, error) { 3511 3512 var delegatorRule []interface{} 3513 for _, delegatorItem := range delegator { 3514 delegatorRule = append(delegatorRule, delegatorItem) 3515 } 3516 var toValidatorIDRule []interface{} 3517 for _, toValidatorIDItem := range toValidatorID { 3518 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 3519 } 3520 3521 logs, sub, err := _Contract.contract.WatchLogs(opts, "RestakedRewards", delegatorRule, toValidatorIDRule) 3522 if err != nil { 3523 return nil, err 3524 } 3525 return event.NewSubscription(func(quit <-chan struct{}) error { 3526 defer sub.Unsubscribe() 3527 for { 3528 select { 3529 case log := <-logs: 3530 // New log arrived, parse the event and forward to the user 3531 event := new(ContractRestakedRewards) 3532 if err := _Contract.contract.UnpackLog(event, "RestakedRewards", log); err != nil { 3533 return err 3534 } 3535 event.Raw = log 3536 3537 select { 3538 case sink <- event: 3539 case err := <-sub.Err(): 3540 return err 3541 case <-quit: 3542 return nil 3543 } 3544 case err := <-sub.Err(): 3545 return err 3546 case <-quit: 3547 return nil 3548 } 3549 } 3550 }), nil 3551 } 3552 3553 // ParseRestakedRewards is a log parse operation binding the contract event 0x4119153d17a36f9597d40e3ab4148d03261a439dddbec4e91799ab7159608e26. 3554 // 3555 // Solidity: event RestakedRewards(address indexed delegator, uint256 indexed toValidatorID, uint256 lockupExtraReward, uint256 lockupBaseReward, uint256 unlockedReward) 3556 func (_Contract *ContractFilterer) ParseRestakedRewards(log types.Log) (*ContractRestakedRewards, error) { 3557 event := new(ContractRestakedRewards) 3558 if err := _Contract.contract.UnpackLog(event, "RestakedRewards", log); err != nil { 3559 return nil, err 3560 } 3561 event.Raw = log 3562 return event, nil 3563 } 3564 3565 // ContractUndelegatedIterator is returned from FilterUndelegated and is used to iterate over the raw logs and unpacked data for Undelegated events raised by the Contract contract. 3566 type ContractUndelegatedIterator struct { 3567 Event *ContractUndelegated // Event containing the contract specifics and raw log 3568 3569 contract *bind.BoundContract // Generic contract to use for unpacking event data 3570 event string // Event name to use for unpacking event data 3571 3572 logs chan types.Log // Log channel receiving the found contract events 3573 sub u2u.Subscription // Subscription for errors, completion and termination 3574 done bool // Whether the subscription completed delivering logs 3575 fail error // Occurred error to stop iteration 3576 } 3577 3578 // Next advances the iterator to the subsequent event, returning whether there 3579 // are any more events found. In case of a retrieval or parsing error, false is 3580 // returned and Error() can be queried for the exact failure. 3581 func (it *ContractUndelegatedIterator) Next() bool { 3582 // If the iterator failed, stop iterating 3583 if it.fail != nil { 3584 return false 3585 } 3586 // If the iterator completed, deliver directly whatever's available 3587 if it.done { 3588 select { 3589 case log := <-it.logs: 3590 it.Event = new(ContractUndelegated) 3591 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3592 it.fail = err 3593 return false 3594 } 3595 it.Event.Raw = log 3596 return true 3597 3598 default: 3599 return false 3600 } 3601 } 3602 // Iterator still in progress, wait for either a data or an error event 3603 select { 3604 case log := <-it.logs: 3605 it.Event = new(ContractUndelegated) 3606 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3607 it.fail = err 3608 return false 3609 } 3610 it.Event.Raw = log 3611 return true 3612 3613 case err := <-it.sub.Err(): 3614 it.done = true 3615 it.fail = err 3616 return it.Next() 3617 } 3618 } 3619 3620 // Error returns any retrieval or parsing error occurred during filtering. 3621 func (it *ContractUndelegatedIterator) Error() error { 3622 return it.fail 3623 } 3624 3625 // Close terminates the iteration process, releasing any pending underlying 3626 // resources. 3627 func (it *ContractUndelegatedIterator) Close() error { 3628 it.sub.Unsubscribe() 3629 return nil 3630 } 3631 3632 // ContractUndelegated represents a Undelegated event raised by the Contract contract. 3633 type ContractUndelegated struct { 3634 Delegator common.Address 3635 ToValidatorID *big.Int 3636 WrID *big.Int 3637 Amount *big.Int 3638 Raw types.Log // Blockchain specific contextual infos 3639 } 3640 3641 // FilterUndelegated is a free log retrieval operation binding the contract event 0xd3bb4e423fbea695d16b982f9f682dc5f35152e5411646a8a5a79a6b02ba8d57. 3642 // 3643 // Solidity: event Undelegated(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 3644 func (_Contract *ContractFilterer) FilterUndelegated(opts *bind.FilterOpts, delegator []common.Address, toValidatorID []*big.Int, wrID []*big.Int) (*ContractUndelegatedIterator, error) { 3645 3646 var delegatorRule []interface{} 3647 for _, delegatorItem := range delegator { 3648 delegatorRule = append(delegatorRule, delegatorItem) 3649 } 3650 var toValidatorIDRule []interface{} 3651 for _, toValidatorIDItem := range toValidatorID { 3652 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 3653 } 3654 var wrIDRule []interface{} 3655 for _, wrIDItem := range wrID { 3656 wrIDRule = append(wrIDRule, wrIDItem) 3657 } 3658 3659 logs, sub, err := _Contract.contract.FilterLogs(opts, "Undelegated", delegatorRule, toValidatorIDRule, wrIDRule) 3660 if err != nil { 3661 return nil, err 3662 } 3663 return &ContractUndelegatedIterator{contract: _Contract.contract, event: "Undelegated", logs: logs, sub: sub}, nil 3664 } 3665 3666 // WatchUndelegated is a free log subscription operation binding the contract event 0xd3bb4e423fbea695d16b982f9f682dc5f35152e5411646a8a5a79a6b02ba8d57. 3667 // 3668 // Solidity: event Undelegated(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 3669 func (_Contract *ContractFilterer) WatchUndelegated(opts *bind.WatchOpts, sink chan<- *ContractUndelegated, delegator []common.Address, toValidatorID []*big.Int, wrID []*big.Int) (event.Subscription, error) { 3670 3671 var delegatorRule []interface{} 3672 for _, delegatorItem := range delegator { 3673 delegatorRule = append(delegatorRule, delegatorItem) 3674 } 3675 var toValidatorIDRule []interface{} 3676 for _, toValidatorIDItem := range toValidatorID { 3677 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 3678 } 3679 var wrIDRule []interface{} 3680 for _, wrIDItem := range wrID { 3681 wrIDRule = append(wrIDRule, wrIDItem) 3682 } 3683 3684 logs, sub, err := _Contract.contract.WatchLogs(opts, "Undelegated", delegatorRule, toValidatorIDRule, wrIDRule) 3685 if err != nil { 3686 return nil, err 3687 } 3688 return event.NewSubscription(func(quit <-chan struct{}) error { 3689 defer sub.Unsubscribe() 3690 for { 3691 select { 3692 case log := <-logs: 3693 // New log arrived, parse the event and forward to the user 3694 event := new(ContractUndelegated) 3695 if err := _Contract.contract.UnpackLog(event, "Undelegated", log); err != nil { 3696 return err 3697 } 3698 event.Raw = log 3699 3700 select { 3701 case sink <- event: 3702 case err := <-sub.Err(): 3703 return err 3704 case <-quit: 3705 return nil 3706 } 3707 case err := <-sub.Err(): 3708 return err 3709 case <-quit: 3710 return nil 3711 } 3712 } 3713 }), nil 3714 } 3715 3716 // ParseUndelegated is a log parse operation binding the contract event 0xd3bb4e423fbea695d16b982f9f682dc5f35152e5411646a8a5a79a6b02ba8d57. 3717 // 3718 // Solidity: event Undelegated(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 3719 func (_Contract *ContractFilterer) ParseUndelegated(log types.Log) (*ContractUndelegated, error) { 3720 event := new(ContractUndelegated) 3721 if err := _Contract.contract.UnpackLog(event, "Undelegated", log); err != nil { 3722 return nil, err 3723 } 3724 event.Raw = log 3725 return event, nil 3726 } 3727 3728 // ContractUnlockedStakeIterator is returned from FilterUnlockedStake and is used to iterate over the raw logs and unpacked data for UnlockedStake events raised by the Contract contract. 3729 type ContractUnlockedStakeIterator struct { 3730 Event *ContractUnlockedStake // Event containing the contract specifics and raw log 3731 3732 contract *bind.BoundContract // Generic contract to use for unpacking event data 3733 event string // Event name to use for unpacking event data 3734 3735 logs chan types.Log // Log channel receiving the found contract events 3736 sub u2u.Subscription // Subscription for errors, completion and termination 3737 done bool // Whether the subscription completed delivering logs 3738 fail error // Occurred error to stop iteration 3739 } 3740 3741 // Next advances the iterator to the subsequent event, returning whether there 3742 // are any more events found. In case of a retrieval or parsing error, false is 3743 // returned and Error() can be queried for the exact failure. 3744 func (it *ContractUnlockedStakeIterator) Next() bool { 3745 // If the iterator failed, stop iterating 3746 if it.fail != nil { 3747 return false 3748 } 3749 // If the iterator completed, deliver directly whatever's available 3750 if it.done { 3751 select { 3752 case log := <-it.logs: 3753 it.Event = new(ContractUnlockedStake) 3754 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3755 it.fail = err 3756 return false 3757 } 3758 it.Event.Raw = log 3759 return true 3760 3761 default: 3762 return false 3763 } 3764 } 3765 // Iterator still in progress, wait for either a data or an error event 3766 select { 3767 case log := <-it.logs: 3768 it.Event = new(ContractUnlockedStake) 3769 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3770 it.fail = err 3771 return false 3772 } 3773 it.Event.Raw = log 3774 return true 3775 3776 case err := <-it.sub.Err(): 3777 it.done = true 3778 it.fail = err 3779 return it.Next() 3780 } 3781 } 3782 3783 // Error returns any retrieval or parsing error occurred during filtering. 3784 func (it *ContractUnlockedStakeIterator) Error() error { 3785 return it.fail 3786 } 3787 3788 // Close terminates the iteration process, releasing any pending underlying 3789 // resources. 3790 func (it *ContractUnlockedStakeIterator) Close() error { 3791 it.sub.Unsubscribe() 3792 return nil 3793 } 3794 3795 // ContractUnlockedStake represents a UnlockedStake event raised by the Contract contract. 3796 type ContractUnlockedStake struct { 3797 Delegator common.Address 3798 ValidatorID *big.Int 3799 Amount *big.Int 3800 Penalty *big.Int 3801 Raw types.Log // Blockchain specific contextual infos 3802 } 3803 3804 // FilterUnlockedStake is a free log retrieval operation binding the contract event 0xef6c0c14fe9aa51af36acd791464dec3badbde668b63189b47bfa4e25be9b2b9. 3805 // 3806 // Solidity: event UnlockedStake(address indexed delegator, uint256 indexed validatorID, uint256 amount, uint256 penalty) 3807 func (_Contract *ContractFilterer) FilterUnlockedStake(opts *bind.FilterOpts, delegator []common.Address, validatorID []*big.Int) (*ContractUnlockedStakeIterator, error) { 3808 3809 var delegatorRule []interface{} 3810 for _, delegatorItem := range delegator { 3811 delegatorRule = append(delegatorRule, delegatorItem) 3812 } 3813 var validatorIDRule []interface{} 3814 for _, validatorIDItem := range validatorID { 3815 validatorIDRule = append(validatorIDRule, validatorIDItem) 3816 } 3817 3818 logs, sub, err := _Contract.contract.FilterLogs(opts, "UnlockedStake", delegatorRule, validatorIDRule) 3819 if err != nil { 3820 return nil, err 3821 } 3822 return &ContractUnlockedStakeIterator{contract: _Contract.contract, event: "UnlockedStake", logs: logs, sub: sub}, nil 3823 } 3824 3825 // WatchUnlockedStake is a free log subscription operation binding the contract event 0xef6c0c14fe9aa51af36acd791464dec3badbde668b63189b47bfa4e25be9b2b9. 3826 // 3827 // Solidity: event UnlockedStake(address indexed delegator, uint256 indexed validatorID, uint256 amount, uint256 penalty) 3828 func (_Contract *ContractFilterer) WatchUnlockedStake(opts *bind.WatchOpts, sink chan<- *ContractUnlockedStake, delegator []common.Address, validatorID []*big.Int) (event.Subscription, error) { 3829 3830 var delegatorRule []interface{} 3831 for _, delegatorItem := range delegator { 3832 delegatorRule = append(delegatorRule, delegatorItem) 3833 } 3834 var validatorIDRule []interface{} 3835 for _, validatorIDItem := range validatorID { 3836 validatorIDRule = append(validatorIDRule, validatorIDItem) 3837 } 3838 3839 logs, sub, err := _Contract.contract.WatchLogs(opts, "UnlockedStake", delegatorRule, validatorIDRule) 3840 if err != nil { 3841 return nil, err 3842 } 3843 return event.NewSubscription(func(quit <-chan struct{}) error { 3844 defer sub.Unsubscribe() 3845 for { 3846 select { 3847 case log := <-logs: 3848 // New log arrived, parse the event and forward to the user 3849 event := new(ContractUnlockedStake) 3850 if err := _Contract.contract.UnpackLog(event, "UnlockedStake", log); err != nil { 3851 return err 3852 } 3853 event.Raw = log 3854 3855 select { 3856 case sink <- event: 3857 case err := <-sub.Err(): 3858 return err 3859 case <-quit: 3860 return nil 3861 } 3862 case err := <-sub.Err(): 3863 return err 3864 case <-quit: 3865 return nil 3866 } 3867 } 3868 }), nil 3869 } 3870 3871 // ParseUnlockedStake is a log parse operation binding the contract event 0xef6c0c14fe9aa51af36acd791464dec3badbde668b63189b47bfa4e25be9b2b9. 3872 // 3873 // Solidity: event UnlockedStake(address indexed delegator, uint256 indexed validatorID, uint256 amount, uint256 penalty) 3874 func (_Contract *ContractFilterer) ParseUnlockedStake(log types.Log) (*ContractUnlockedStake, error) { 3875 event := new(ContractUnlockedStake) 3876 if err := _Contract.contract.UnpackLog(event, "UnlockedStake", log); err != nil { 3877 return nil, err 3878 } 3879 event.Raw = log 3880 return event, nil 3881 } 3882 3883 // ContractUpdatedSlashingRefundRatioIterator is returned from FilterUpdatedSlashingRefundRatio and is used to iterate over the raw logs and unpacked data for UpdatedSlashingRefundRatio events raised by the Contract contract. 3884 type ContractUpdatedSlashingRefundRatioIterator struct { 3885 Event *ContractUpdatedSlashingRefundRatio // Event containing the contract specifics and raw log 3886 3887 contract *bind.BoundContract // Generic contract to use for unpacking event data 3888 event string // Event name to use for unpacking event data 3889 3890 logs chan types.Log // Log channel receiving the found contract events 3891 sub u2u.Subscription // Subscription for errors, completion and termination 3892 done bool // Whether the subscription completed delivering logs 3893 fail error // Occurred error to stop iteration 3894 } 3895 3896 // Next advances the iterator to the subsequent event, returning whether there 3897 // are any more events found. In case of a retrieval or parsing error, false is 3898 // returned and Error() can be queried for the exact failure. 3899 func (it *ContractUpdatedSlashingRefundRatioIterator) Next() bool { 3900 // If the iterator failed, stop iterating 3901 if it.fail != nil { 3902 return false 3903 } 3904 // If the iterator completed, deliver directly whatever's available 3905 if it.done { 3906 select { 3907 case log := <-it.logs: 3908 it.Event = new(ContractUpdatedSlashingRefundRatio) 3909 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3910 it.fail = err 3911 return false 3912 } 3913 it.Event.Raw = log 3914 return true 3915 3916 default: 3917 return false 3918 } 3919 } 3920 // Iterator still in progress, wait for either a data or an error event 3921 select { 3922 case log := <-it.logs: 3923 it.Event = new(ContractUpdatedSlashingRefundRatio) 3924 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 3925 it.fail = err 3926 return false 3927 } 3928 it.Event.Raw = log 3929 return true 3930 3931 case err := <-it.sub.Err(): 3932 it.done = true 3933 it.fail = err 3934 return it.Next() 3935 } 3936 } 3937 3938 // Error returns any retrieval or parsing error occurred during filtering. 3939 func (it *ContractUpdatedSlashingRefundRatioIterator) Error() error { 3940 return it.fail 3941 } 3942 3943 // Close terminates the iteration process, releasing any pending underlying 3944 // resources. 3945 func (it *ContractUpdatedSlashingRefundRatioIterator) Close() error { 3946 it.sub.Unsubscribe() 3947 return nil 3948 } 3949 3950 // ContractUpdatedSlashingRefundRatio represents a UpdatedSlashingRefundRatio event raised by the Contract contract. 3951 type ContractUpdatedSlashingRefundRatio struct { 3952 ValidatorID *big.Int 3953 RefundRatio *big.Int 3954 Raw types.Log // Blockchain specific contextual infos 3955 } 3956 3957 // FilterUpdatedSlashingRefundRatio is a free log retrieval operation binding the contract event 0x047575f43f09a7a093d94ec483064acfc61b7e25c0de28017da442abf99cb917. 3958 // 3959 // Solidity: event UpdatedSlashingRefundRatio(uint256 indexed validatorID, uint256 refundRatio) 3960 func (_Contract *ContractFilterer) FilterUpdatedSlashingRefundRatio(opts *bind.FilterOpts, validatorID []*big.Int) (*ContractUpdatedSlashingRefundRatioIterator, error) { 3961 3962 var validatorIDRule []interface{} 3963 for _, validatorIDItem := range validatorID { 3964 validatorIDRule = append(validatorIDRule, validatorIDItem) 3965 } 3966 3967 logs, sub, err := _Contract.contract.FilterLogs(opts, "UpdatedSlashingRefundRatio", validatorIDRule) 3968 if err != nil { 3969 return nil, err 3970 } 3971 return &ContractUpdatedSlashingRefundRatioIterator{contract: _Contract.contract, event: "UpdatedSlashingRefundRatio", logs: logs, sub: sub}, nil 3972 } 3973 3974 // WatchUpdatedSlashingRefundRatio is a free log subscription operation binding the contract event 0x047575f43f09a7a093d94ec483064acfc61b7e25c0de28017da442abf99cb917. 3975 // 3976 // Solidity: event UpdatedSlashingRefundRatio(uint256 indexed validatorID, uint256 refundRatio) 3977 func (_Contract *ContractFilterer) WatchUpdatedSlashingRefundRatio(opts *bind.WatchOpts, sink chan<- *ContractUpdatedSlashingRefundRatio, validatorID []*big.Int) (event.Subscription, error) { 3978 3979 var validatorIDRule []interface{} 3980 for _, validatorIDItem := range validatorID { 3981 validatorIDRule = append(validatorIDRule, validatorIDItem) 3982 } 3983 3984 logs, sub, err := _Contract.contract.WatchLogs(opts, "UpdatedSlashingRefundRatio", validatorIDRule) 3985 if err != nil { 3986 return nil, err 3987 } 3988 return event.NewSubscription(func(quit <-chan struct{}) error { 3989 defer sub.Unsubscribe() 3990 for { 3991 select { 3992 case log := <-logs: 3993 // New log arrived, parse the event and forward to the user 3994 event := new(ContractUpdatedSlashingRefundRatio) 3995 if err := _Contract.contract.UnpackLog(event, "UpdatedSlashingRefundRatio", log); err != nil { 3996 return err 3997 } 3998 event.Raw = log 3999 4000 select { 4001 case sink <- event: 4002 case err := <-sub.Err(): 4003 return err 4004 case <-quit: 4005 return nil 4006 } 4007 case err := <-sub.Err(): 4008 return err 4009 case <-quit: 4010 return nil 4011 } 4012 } 4013 }), nil 4014 } 4015 4016 // ParseUpdatedSlashingRefundRatio is a log parse operation binding the contract event 0x047575f43f09a7a093d94ec483064acfc61b7e25c0de28017da442abf99cb917. 4017 // 4018 // Solidity: event UpdatedSlashingRefundRatio(uint256 indexed validatorID, uint256 refundRatio) 4019 func (_Contract *ContractFilterer) ParseUpdatedSlashingRefundRatio(log types.Log) (*ContractUpdatedSlashingRefundRatio, error) { 4020 event := new(ContractUpdatedSlashingRefundRatio) 4021 if err := _Contract.contract.UnpackLog(event, "UpdatedSlashingRefundRatio", log); err != nil { 4022 return nil, err 4023 } 4024 event.Raw = log 4025 return event, nil 4026 } 4027 4028 // ContractWithdrawnIterator is returned from FilterWithdrawn and is used to iterate over the raw logs and unpacked data for Withdrawn events raised by the Contract contract. 4029 type ContractWithdrawnIterator struct { 4030 Event *ContractWithdrawn // Event containing the contract specifics and raw log 4031 4032 contract *bind.BoundContract // Generic contract to use for unpacking event data 4033 event string // Event name to use for unpacking event data 4034 4035 logs chan types.Log // Log channel receiving the found contract events 4036 sub u2u.Subscription // Subscription for errors, completion and termination 4037 done bool // Whether the subscription completed delivering logs 4038 fail error // Occurred error to stop iteration 4039 } 4040 4041 // Next advances the iterator to the subsequent event, returning whether there 4042 // are any more events found. In case of a retrieval or parsing error, false is 4043 // returned and Error() can be queried for the exact failure. 4044 func (it *ContractWithdrawnIterator) Next() bool { 4045 // If the iterator failed, stop iterating 4046 if it.fail != nil { 4047 return false 4048 } 4049 // If the iterator completed, deliver directly whatever's available 4050 if it.done { 4051 select { 4052 case log := <-it.logs: 4053 it.Event = new(ContractWithdrawn) 4054 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4055 it.fail = err 4056 return false 4057 } 4058 it.Event.Raw = log 4059 return true 4060 4061 default: 4062 return false 4063 } 4064 } 4065 // Iterator still in progress, wait for either a data or an error event 4066 select { 4067 case log := <-it.logs: 4068 it.Event = new(ContractWithdrawn) 4069 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 4070 it.fail = err 4071 return false 4072 } 4073 it.Event.Raw = log 4074 return true 4075 4076 case err := <-it.sub.Err(): 4077 it.done = true 4078 it.fail = err 4079 return it.Next() 4080 } 4081 } 4082 4083 // Error returns any retrieval or parsing error occurred during filtering. 4084 func (it *ContractWithdrawnIterator) Error() error { 4085 return it.fail 4086 } 4087 4088 // Close terminates the iteration process, releasing any pending underlying 4089 // resources. 4090 func (it *ContractWithdrawnIterator) Close() error { 4091 it.sub.Unsubscribe() 4092 return nil 4093 } 4094 4095 // ContractWithdrawn represents a Withdrawn event raised by the Contract contract. 4096 type ContractWithdrawn struct { 4097 Delegator common.Address 4098 ToValidatorID *big.Int 4099 WrID *big.Int 4100 Amount *big.Int 4101 Raw types.Log // Blockchain specific contextual infos 4102 } 4103 4104 // FilterWithdrawn is a free log retrieval operation binding the contract event 0x75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21. 4105 // 4106 // Solidity: event Withdrawn(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 4107 func (_Contract *ContractFilterer) FilterWithdrawn(opts *bind.FilterOpts, delegator []common.Address, toValidatorID []*big.Int, wrID []*big.Int) (*ContractWithdrawnIterator, error) { 4108 4109 var delegatorRule []interface{} 4110 for _, delegatorItem := range delegator { 4111 delegatorRule = append(delegatorRule, delegatorItem) 4112 } 4113 var toValidatorIDRule []interface{} 4114 for _, toValidatorIDItem := range toValidatorID { 4115 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 4116 } 4117 var wrIDRule []interface{} 4118 for _, wrIDItem := range wrID { 4119 wrIDRule = append(wrIDRule, wrIDItem) 4120 } 4121 4122 logs, sub, err := _Contract.contract.FilterLogs(opts, "Withdrawn", delegatorRule, toValidatorIDRule, wrIDRule) 4123 if err != nil { 4124 return nil, err 4125 } 4126 return &ContractWithdrawnIterator{contract: _Contract.contract, event: "Withdrawn", logs: logs, sub: sub}, nil 4127 } 4128 4129 // WatchWithdrawn is a free log subscription operation binding the contract event 0x75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21. 4130 // 4131 // Solidity: event Withdrawn(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 4132 func (_Contract *ContractFilterer) WatchWithdrawn(opts *bind.WatchOpts, sink chan<- *ContractWithdrawn, delegator []common.Address, toValidatorID []*big.Int, wrID []*big.Int) (event.Subscription, error) { 4133 4134 var delegatorRule []interface{} 4135 for _, delegatorItem := range delegator { 4136 delegatorRule = append(delegatorRule, delegatorItem) 4137 } 4138 var toValidatorIDRule []interface{} 4139 for _, toValidatorIDItem := range toValidatorID { 4140 toValidatorIDRule = append(toValidatorIDRule, toValidatorIDItem) 4141 } 4142 var wrIDRule []interface{} 4143 for _, wrIDItem := range wrID { 4144 wrIDRule = append(wrIDRule, wrIDItem) 4145 } 4146 4147 logs, sub, err := _Contract.contract.WatchLogs(opts, "Withdrawn", delegatorRule, toValidatorIDRule, wrIDRule) 4148 if err != nil { 4149 return nil, err 4150 } 4151 return event.NewSubscription(func(quit <-chan struct{}) error { 4152 defer sub.Unsubscribe() 4153 for { 4154 select { 4155 case log := <-logs: 4156 // New log arrived, parse the event and forward to the user 4157 event := new(ContractWithdrawn) 4158 if err := _Contract.contract.UnpackLog(event, "Withdrawn", log); err != nil { 4159 return err 4160 } 4161 event.Raw = log 4162 4163 select { 4164 case sink <- event: 4165 case err := <-sub.Err(): 4166 return err 4167 case <-quit: 4168 return nil 4169 } 4170 case err := <-sub.Err(): 4171 return err 4172 case <-quit: 4173 return nil 4174 } 4175 } 4176 }), nil 4177 } 4178 4179 // ParseWithdrawn is a log parse operation binding the contract event 0x75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21. 4180 // 4181 // Solidity: event Withdrawn(address indexed delegator, uint256 indexed toValidatorID, uint256 indexed wrID, uint256 amount) 4182 func (_Contract *ContractFilterer) ParseWithdrawn(log types.Log) (*ContractWithdrawn, error) { 4183 event := new(ContractWithdrawn) 4184 if err := _Contract.contract.UnpackLog(event, "Withdrawn", log); err != nil { 4185 return nil, err 4186 } 4187 event.Raw = log 4188 return event, nil 4189 } 4190 4191 var ContractBinRuntime = "0x6080604052600436106103765760003560e01c8063893675c6116101d1578063bd14d90711610102578063cfdbb7cd116100a0578063df00c9221161006f578063df00c92214610ef3578063e261641a14610f23578063e2f8c33614610f53578063f2fde38b14610fe557610376565b8063cfdbb7cd14610e3f578063d96ed50514610e78578063dc31e1af14610e8d578063de67f21514610ebd57610376565b8063c65ee0e1116100dc578063c65ee0e114610d95578063c7be95de14610dbf578063cc8343aa14610dd4578063cfd4766314610e0657610376565b8063bd14d90714610d20578063c3de580e14610d56578063c5f956af14610d8057610376565b80639fa6dd351161016f578063a86a056f11610149578063a86a056f14610bc9578063b5d8962714610c02578063b810e41114610c6d578063b88a37e214610ca657610376565b80639fa6dd3514610b0c578063a198d22914610b29578063a5a470ad14610b5957610376565b80638da5cb5b116101ab5780638da5cb5b14610a455780638f32d59b14610a5a57806390a6c47514610a8357806396c7ee4614610aad57610376565b8063893675c6146109e25780638b0e9f3f146109f75780638cddb01514610a0c57610376565b80634f7c4efb116102ab57806361e53fcc11610249578063715018a611610223578063715018a61461090457806376671808146109195780637cacb1d61461092e578063854873e11461094357610376565b806361e53fcc14610862578063670322f8146108925780636f498663146108cb57610376565b80635601fe01116102855780635601fe01146107ba57806358f95b80146107e45780635fab23a8146108145780636099ecb21461082957610376565b80634f7c4efb146106a95780634f864df4146106d95780634feb92f31461070f57610376565b80631d3ac42c1161031857806320c0849d116102f257806320c0849d146105b757806328f731481461060257806339b80c0014610617578063441a3e701461067957610376565b80631d3ac42c146104fa5780631e702f831461052a5780631f2701521461055a57610376565b80630e559d82116103545780630e559d821461041657806312622d0e1461044757806318160ddd1461048057806318f628d41461049557610376565b80630135b1db1461037b57806308c36874146103c05780630962ef79146103ec575b600080fd5b34801561038757600080fd5b506103ae6004803603602081101561039e57600080fd5b50356001600160a01b0316611018565b60408051918252519081900360200190f35b3480156103cc57600080fd5b506103ea600480360360208110156103e357600080fd5b503561102a565b005b3480156103f857600080fd5b506103ea6004803603602081101561040f57600080fd5b50356110f6565b34801561042257600080fd5b5061042b611241565b604080516001600160a01b039092168252519081900360200190f35b34801561045357600080fd5b506103ae6004803603604081101561046a57600080fd5b506001600160a01b038135169060200135611250565b34801561048c57600080fd5b506103ae6112d9565b3480156104a157600080fd5b506103ea60048036036101208110156104b957600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e08101359061010001356112df565b34801561050657600080fd5b506103ae6004803603604081101561051d57600080fd5b5080359060200135611441565b34801561053657600080fd5b506103ea6004803603604081101561054d57600080fd5b508035906020013561166b565b34801561056657600080fd5b506105996004803603606081101561057d57600080fd5b506001600160a01b038135169060208101359060400135611744565b60408051938452602084019290925282820152519081900360600190f35b3480156105c357600080fd5b506103ea600480360360808110156105da57600080fd5b506001600160a01b038135811691602081013590911690604081013515159060600135611776565b34801561060e57600080fd5b506103ae611913565b34801561062357600080fd5b506106416004803603602081101561063a57600080fd5b5035611919565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b34801561068557600080fd5b506103ea6004803603604081101561069c57600080fd5b508035906020013561195b565b3480156106b557600080fd5b506103ea600480360360408110156106cc57600080fd5b5080359060200135611e6b565b3480156106e557600080fd5b506103ea600480360360608110156106fc57600080fd5b5080359060208101359060400135611faf565b34801561071b57600080fd5b506103ea600480360361010081101561073357600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561076357600080fd5b82018360208201111561077557600080fd5b8035906020019184600183028401116401000000008311171561079757600080fd5b91935091508035906020810135906040810135906060810135906080013561224a565b3480156107c657600080fd5b506103ae600480360360208110156107dd57600080fd5b50356122f0565b3480156107f057600080fd5b506103ae6004803603604081101561080757600080fd5b5080359060200135612326565b34801561082057600080fd5b506103ae612343565b34801561083557600080fd5b506103ae6004803603604081101561084c57600080fd5b506001600160a01b038135169060200135612349565b34801561086e57600080fd5b506103ae6004803603604081101561088557600080fd5b5080359060200135612387565b34801561089e57600080fd5b506103ae600480360360408110156108b557600080fd5b506001600160a01b0381351690602001356123a8565b3480156108d757600080fd5b506103ae600480360360408110156108ee57600080fd5b506001600160a01b0381351690602001356123e9565b34801561091057600080fd5b506103ea612453565b34801561092557600080fd5b506103ae61250e565b34801561093a57600080fd5b506103ae612518565b34801561094f57600080fd5b5061096d6004803603602081101561096657600080fd5b503561251e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156109a757818101518382015260200161098f565b50505050905090810190601f1680156109d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109ee57600080fd5b5061042b6125d7565b348015610a0357600080fd5b506103ae6125e6565b348015610a1857600080fd5b506103ea60048036036040811015610a2f57600080fd5b506001600160a01b0381351690602001356125ec565b348015610a5157600080fd5b5061042b61264b565b348015610a6657600080fd5b50610a6f61265a565b604080519115158252519081900360200190f35b348015610a8f57600080fd5b506103ea60048036036020811015610aa657600080fd5b503561266b565b348015610ab957600080fd5b50610ae660048036036040811015610ad057600080fd5b506001600160a01b0381351690602001356126d0565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103ea60048036036020811015610b2257600080fd5b5035612702565b348015610b3557600080fd5b506103ae60048036036040811015610b4c57600080fd5b508035906020013561270d565b6103ea60048036036020811015610b6f57600080fd5b810190602081018135640100000000811115610b8a57600080fd5b820183602082011115610b9c57600080fd5b80359060200191846001830284011164010000000083111715610bbe57600080fd5b50909250905061272e565b348015610bd557600080fd5b506103ae60048036036040811015610bec57600080fd5b506001600160a01b03813516906020013561289b565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b50356128b8565b604080519788526020880196909652868601949094526060860192909252608085015260a08401526001600160a01b031660c0830152519081900360e00190f35b348015610c7957600080fd5b5061059960048036036040811015610c9057600080fd5b506001600160a01b0381351690602001356128fe565b348015610cb257600080fd5b50610cd060048036036020811015610cc957600080fd5b503561292a565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610d0c578181015183820152602001610cf4565b505050509050019250505060405180910390f35b348015610d2c57600080fd5b506103ea60048036036060811015610d4357600080fd5b508035906020810135906040013561298f565b348015610d6257600080fd5b50610a6f60048036036020811015610d7957600080fd5b50356129a2565b348015610d8c57600080fd5b5061042b6129b9565b348015610da157600080fd5b506103ae60048036036020811015610db857600080fd5b50356129c8565b348015610dcb57600080fd5b506103ae6129da565b348015610de057600080fd5b506103ea60048036036040811015610df757600080fd5b508035906020013515156129e0565b348015610e1257600080fd5b506103ae60048036036040811015610e2957600080fd5b506001600160a01b038135169060200135612c18565b348015610e4b57600080fd5b50610a6f60048036036040811015610e6257600080fd5b506001600160a01b038135169060200135612c35565b348015610e8457600080fd5b506103ae612ccb565b348015610e9957600080fd5b506103ae60048036036040811015610eb057600080fd5b5080359060200135612cd1565b348015610ec957600080fd5b506103ea60048036036060811015610ee057600080fd5b5080359060208101359060400135612cf2565b348015610eff57600080fd5b506103ae60048036036040811015610f1657600080fd5b5080359060200135612dad565b348015610f2f57600080fd5b506103ae60048036036040811015610f4657600080fd5b5080359060200135612dce565b348015610f5f57600080fd5b506103ea60048036036060811015610f7657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610fa657600080fd5b820183602082011115610fb857600080fd5b80359060200191846001830284011164010000000083111715610fda57600080fd5b509092509050612def565b348015610ff157600080fd5b506103ea6004803603602081101561100857600080fd5b50356001600160a01b0316612f1e565b60696020526000908152604090205481565b33611033614d24565b61103d8284612f80565b602081015181519192506000916110599163ffffffff6130e016565b905061107c83856110778560400151856130e090919063ffffffff16565b61313a565b6001600160a01b0383166000818152607360209081526040808320888452825291829020805485019055845185820151868401518451928352928201528083019190915290518692917f4119153d17a36f9597d40e3ab4148d03261a439dddbec4e91799ab7159608e26919081900360600190a350505050565b336110ff614d24565b6111098284612f80565b90506000826001600160a01b0316611146836040015161113a856020015186600001516130e090919063ffffffff16565b9063ffffffff6130e016565b604051600081818185875af1925050503d8060008114611182576040519150601f19603f3d011682016040523d82523d6000602084013e611187565b606091505b50509050806111dd576040805162461bcd60e51b815260206004820152601260248201527f4661696c656420746f2073656e642046544d0000000000000000000000000000604482015290519081900360640190fd5b83836001600160a01b03167fc1d8eb6e444b89fb8ff0991c19311c070df704ccb009e210d1462d5b2410bf4584600001518560200151866040015160405180848152602001838152602001828152602001935050505060405180910390a350505050565b607b546001600160a01b031681565b600061125c8383612c35565b61128a57506001600160a01b03821660009081526072602090815260408083208484529091529020546112d3565b6001600160a01b0383166000818152607360209081526040808320868452825280832054938352607282528083208684529091529020546112d09163ffffffff61324616565b90505b92915050565b60765481565b6112e833613288565b6113235760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b611330898989600061329c565b6001600160a01b0389166000908152606f602090815260408083208b8452909152902060020181905561136287613434565b851561143657868611156113a75760405162461bcd60e51b815260040180806020018281038252602c815260200180614ec0602c913960400191505060405180910390fd5b6001600160a01b03891660008181526073602090815260408083208c845282528083208a8155600181018a90556002810189905560038101889055848452607483528184208d855283529281902086905580518781529182018a9052805192938c9390927f138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e7892908290030190a3505b505050505050505050565b3360008181526073602090815260408083208684529091528120909190836114b0576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6114ba8286612c35565b61150b576040805162461bcd60e51b815260206004820152600d60248201527f6e6f74206c6f636b656420757000000000000000000000000000000000000000604482015290519081900360640190fd5b8054841115611561576040805162461bcd60e51b815260206004820152601760248201527f6e6f7420656e6f756768206c6f636b6564207374616b65000000000000000000604482015290519081900360640190fd5b61156b82866134d2565b6115bc576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b6115c6828661358d565b5060006115d98387878560000154613758565b905081600301546363401ec501826002015410156115f5575060005b8154859003825580156116185761160f8387836001613889565b61161881613a8f565b85836001600160a01b03167fef6c0c14fe9aa51af36acd791464dec3badbde668b63189b47bfa4e25be9b2b98784604051808381526020018281526020019250505060405180910390a395945050505050565b61167433613288565b6116af5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b80611701576040805162461bcd60e51b815260206004820152600c60248201527f77726f6e67207374617475730000000000000000000000000000000000000000604482015290519081900360640190fd5b61170b8282613af9565b6117168260006129e0565b6000828152606860205260408120600601546001600160a01b03169061173f9082908190613c23565b505050565b607160209081526000938452604080852082529284528284209052825290208054600182015460029092015490919083565b608254604080516001600160a01b03878116602483015286811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4a7702bb000000000000000000000000000000000000000000000000000000001781529251825160009592909216938693928291908083835b6020831061184557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611808565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d80600081146118a8576040519150601f19603f3d011682016040523d82523d6000602084013e6118ad565b606091505b5050905080806118bb575082155b61190c576040805162461bcd60e51b815260206004820152601b60248201527f676f7620766f746573207265636f756e74696e67206661696c65640000000000604482015290519081900360640190fd5b5050505050565b606d5481565b607760205280600052604060002060009150905080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d0154905087565b33611964614d24565b506001600160a01b038116600090815260716020908152604080832086845282528083208584528252918290208251606081018452815480825260018301549382019390935260029091015492810192909252611a08576040805162461bcd60e51b815260206004820152601560248201527f7265717565737420646f65736e27742065786973740000000000000000000000604482015290519081900360640190fd5b611a1282856134d2565b611a63576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b60208082015182516000878152606890935260409092206001015490919015801590611a9f575060008681526068602052604090206001015482115b15611ac0575050600084815260686020526040902060018101546002909101545b608160009054906101000a90046001600160a01b03166001600160a01b031663b82b84276040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0e57600080fd5b505afa158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b50518201611b44613dcd565b1015611b97576040805162461bcd60e51b815260206004820152601660248201527f6e6f7420656e6f7567682074696d652070617373656400000000000000000000604482015290519081900360640190fd5b608160009054906101000a90046001600160a01b03166001600160a01b031663650acd666040518163ffffffff1660e01b815260040160206040518083038186803b158015611be557600080fd5b505afa158015611bf9573d6000803e3d6000fd5b505050506040513d6020811015611c0f57600080fd5b50518101611c1b61250e565b1015611c6e576040805162461bcd60e51b815260206004820152601860248201527f6e6f7420656e6f7567682065706f636873207061737365640000000000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152607160209081526040808320898452825280832088845290915281206002015490611ca7886129a2565b90506000611cc98383607a60008d815260200190815260200160002054613dd1565b6001600160a01b03881660009081526071602090815260408083208d845282528083208c845290915281208181556001810182905560020155606e8054820190559050808311611d60576040805162461bcd60e51b815260206004820152601660248201527f7374616b652069732066756c6c7920736c617368656400000000000000000000604482015290519081900360640190fd5b60006001600160a01b038816611d7c858463ffffffff61324616565b604051600081818185875af1925050503d8060008114611db8576040519150601f19603f3d011682016040523d82523d6000602084013e611dbd565b606091505b5050905080611e13576040805162461bcd60e51b815260206004820152601260248201527f4661696c656420746f2073656e642046544d0000000000000000000000000000604482015290519081900360640190fd5b611e1c82613a8f565b888a896001600160a01b03167f75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21876040518082815260200191505060405180910390a450505050505050505050565b611e7361265a565b611ec4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611ecd826129a2565b611f1e576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f722069736e277420736c6173686564000000000000000000604482015290519081900360640190fd5b611f26613e33565b811115611f645760405162461bcd60e51b8152600401808060200182810382526021815260200180614e4e6021913960400191505060405180910390fd5b6000828152607a60209081526040918290208390558151838152915184927f047575f43f09a7a093d94ec483064acfc61b7e25c0de28017da442abf99cb91792908290030190a25050565b33611fba818561358d565b5060008211612010576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b61201a8185611250565b82111561206e576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420656e6f75676820756e6c6f636b6564207374616b6500000000000000604482015290519081900360640190fd5b61207881856134d2565b6120c9576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260716020908152604080832087845282528083208684529091529020600201541561214a576040805162461bcd60e51b815260206004820152601360248201527f7772494420616c72656164792065786973747300000000000000000000000000604482015290519081900360640190fd5b6121578185846001613889565b6001600160a01b03811660009081526071602090815260408083208784528252808320868452909152902060020182905561219061250e565b6001600160a01b038216600090815260716020908152604080832088845282528083208784529091529020556121c4613dcd565b6001600160a01b038216600090815260716020908152604080832088845282528083208784529091528120600101919091556122019085906129e0565b8284826001600160a01b03167fd3bb4e423fbea695d16b982f9f682dc5f35152e5411646a8a5a79a6b02ba8d57856040518082815260200191505060405180910390a450505050565b61225333613288565b61228e5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e046029913960400191505060405180910390fd5b6122d6898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b92508a91508990508888613e3f565b606b5488111561143657606b889055505050505050505050565b6000818152606860209081526040808320600601546001600160a01b03168352607282528083208484529091529020545b919050565b600091825260776020908152604080842092845291905290205490565b606e5481565b6000612353614d24565b61235d8484614006565b80516020820151604083015192935061237f9261113a9163ffffffff6130e016565b949350505050565b60009182526077602090815260408084209284526001909201905290205490565b60006123b48383612c35565b6123c0575060006112d3565b506001600160a01b03919091166000908152607360209081526040808320938352929052205490565b60006123f3614d24565b506001600160a01b0383166000908152606f602090815260408083208584528252918290208251606081018452815480825260018301549382018490526002909201549381018490529261237f92909161113a919063ffffffff6130e016565b61245b61265a565b6124ac576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6067546001015b90565b60675481565b606a6020908152600091825260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600186161502019093169290920491820184900484028101840190945280845290918301828280156125cf5780601f106125a4576101008083540402835291602001916125cf565b820191906000526020600020905b8154815290600101906020018083116125b257829003601f168201915b505050505081565b6082546001600160a01b031681565b606c5481565b6125f6828261358d565b612647576040805162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20737461736800000000000000000000000000000000604482015290519081900360640190fd5b5050565b6033546001600160a01b031690565b6033546001600160a01b0316331490565b61267361265a565b6126c4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6126cd81613a8f565b50565b607360209081526000928352604080842090915290825290208054600182015460028301546003909301549192909184565b6126cd33823461313a565b60009182526077602090815260408084209284526005909201905290205490565b608160009054906101000a90046001600160a01b03166001600160a01b031663c5f530af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561277c57600080fd5b505afa158015612790573d6000803e3d6000fd5b505050506040513d60208110156127a657600080fd5b50513410156127fc576040805162461bcd60e51b815260206004820152601760248201527f696e73756666696369656e742073656c662d7374616b65000000000000000000604482015290519081900360640190fd5b8061284e576040805162461bcd60e51b815260206004820152600c60248201527f656d707479207075626b65790000000000000000000000000000000000000000604482015290519081900360640190fd5b61288e3383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061407492505050565b61264733606b543461313a565b607060209081526000928352604080842090915290825290205481565b606860205260009081526040902080546001820154600283015460038401546004850154600586015460069096015494959394929391929091906001600160a01b031687565b607460209081526000928352604080842090915290825290208054600182015460029092015490919083565b60008181526077602090815260409182902060060180548351818402810184019094528084526060939283018282801561298357602002820191906000526020600020905b81548152602001906001019080831161296f575b50505050509050919050565b3361299c8185858561409f565b50505050565b600090815260686020526040902054608016151590565b607f546001600160a01b031681565b607a6020526000908152604090205481565b606b5481565b6129e982614454565b612a3a576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f7220646f65736e2774206578697374000000000000000000604482015290519081900360640190fd5b60008281526068602052604090206003810154905415612a58575060005b606654604080517fa4066fbe000000000000000000000000000000000000000000000000000000008152600481018690526024810184905290516001600160a01b039092169163a4066fbe9160448082019260009290919082900301818387803b158015612ac557600080fd5b505af1158015612ad9573d6000803e3d6000fd5b50505050818015612ae957508015155b1561173f576066546000848152606a60205260409081902081517f242a6e3f0000000000000000000000000000000000000000000000000000000081526004810187815260248201938452825460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001831615610100020190911604604483018190526001600160a01b039095169463242a6e3f94899493909160649091019084908015612bda5780601f10612baf57610100808354040283529160200191612bda565b820191906000526020600020905b815481529060010190602001808311612bbd57829003601f168201915b50509350505050600060405180830381600087803b158015612bfb57600080fd5b505af1158015612c0f573d6000803e3d6000fd5b50505050505050565b607260209081526000928352604080842090915290825290205481565b6001600160a01b038216600090815260736020908152604080832084845290915281206002015415801590612c8c57506001600160a01b038316600090815260736020908152604080832085845290915290205415155b80156112d057506001600160a01b0383166000908152607360209081526040808320858452909152902060020154612cc2613dcd565b11159392505050565b607e5481565b60009182526077602090815260408084209284526003909201905290205490565b3381612d45576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b612d4f8185612c35565b15612da1576040805162461bcd60e51b815260206004820152601160248201527f616c7265616479206c6f636b6564207570000000000000000000000000000000604482015290519081900360640190fd5b61299c8185858561409f565b60009182526077602090815260408084209284526002909201905290205490565b60009182526077602090815260408084209284526004909201905290205490565b612df761265a565b612e48576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b612e5183613434565b6040516001600160a01b0385169084156108fc029085906000818181858888f19350505050158015612e87573d6000803e3d6000fd5b50836001600160a01b03167f9eec469b348bcf64bbfb60e46ce7b160e2e09bf5421496a2cdbc43714c28b8ad84848460405180848152602001806020018281038252848482818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a250505050565b612f2661265a565b612f77576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6126cd8161446b565b612f88614d24565b612f9283836134d2565b612fe3576040805162461bcd60e51b815260206004820152601860248201527f6f75747374616e64696e67207346544d2062616c616e63650000000000000000604482015290519081900360640190fd5b612fed838361358d565b50506001600160a01b0382166000908152606f602090815260408083208484528252808320815160608101835281548082526001830154948201859052600290920154928101839052939261304b9261113a9163ffffffff6130e016565b90508061309f576040805162461bcd60e51b815260206004820152600c60248201527f7a65726f20726577617264730000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0384166000908152606f60209081526040808320868452909152812081815560018101829055600201556130d981613434565b5092915050565b6000828201838110156112d0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61314382614454565b613194576040805162461bcd60e51b815260206004820152601760248201527f76616c696461746f7220646f65736e2774206578697374000000000000000000604482015290519081900360640190fd5b600082815260686020526040902054156131f5576040805162461bcd60e51b815260206004820152601660248201527f76616c696461746f722069736e27742061637469766500000000000000000000604482015290519081900360640190fd5b613202838383600161329c565b61320b82614524565b61173f5760405162461bcd60e51b8152600401808060200182810382526029815260200180614e976029913960400191505060405180910390fd5b60006112d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506145ec565b6066546001600160a01b0390811691161490565b600082116132f1576040805162461bcd60e51b815260206004820152600b60248201527f7a65726f20616d6f756e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6132fb848461358d565b506001600160a01b0384166000908152607260209081526040808320868452909152902054613330908363ffffffff6130e016565b6001600160a01b0385166000908152607260209081526040808320878452825280832093909355606890522060030154613370818463ffffffff6130e016565b600085815260686020526040902060030155606c54613395908463ffffffff6130e016565b606c556000848152606860205260409020546133c257606d546133be908463ffffffff6130e016565b606d555b6133cd8482156129e0565b60408051848152905185916001600160a01b038816917f9a8f44850296624dadfd9c246d17e47171d35727a181bd090aa14bbbe00238bb9181900360200190a360008481526068602052604090206006015461190c9086906001600160a01b031684613c23565b606654604080517f66e7ea0f0000000000000000000000000000000000000000000000000000000081523060048201526024810184905290516001600160a01b03909216916366e7ea0f9160448082019260009290919082900301818387803b1580156134a057600080fd5b505af11580156134b4573d6000803e3d6000fd5b50506076546134cc925090508263ffffffff6130e016565b60765550565b607b546000906001600160a01b03166134ed575060016112d3565b607b54604080517f21d585c30000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201869052915191909216916321d585c3916044808301926020929190829003018186803b15801561355a57600080fd5b505afa15801561356e573d6000803e3d6000fd5b505050506040513d602081101561358457600080fd5b50519392505050565b6000613597614d24565b6135a18484614683565b90506135ac836147bb565b6001600160a01b0385166000818152607060209081526040808320888452825280832094909455918152606f8252828120868252825282902082516060810184528154815260018201549281019290925260020154918101919091526136129082614816565b6001600160a01b0385166000818152606f602090815260408083208884528252808320855181558583015160018083019190915595820151600291820155938352607482528083208884528252918290208251606081018452815481529481015491850191909152909101549082015261368c9082614816565b6001600160a01b0385166000908152607460209081526040808320878452825291829020835181559083015160018201559101516002909101556136d08484612c35565b613733576001600160a01b0384166000818152607360209081526040808320878452825280832083815560018082018590556002808301869055600390920185905594845260748352818420888552909252822082815592830182905591909101555b60208101511515806137455750805115155b8061237f57506040015115159392505050565b6001600160a01b038416600090815260746020908152604080832086845290915281205481906137a0908490613794908763ffffffff61488816565b9063ffffffff6148e116565b6001600160a01b0387166000908152607460209081526040808320898452909152812060010154919250906137e1908590613794908863ffffffff61488816565b6001600160a01b03881660009081526074602090815260408083208a8452909152902054909150600282048301906138199084613246565b6001600160a01b03891660009081526074602090815260408083208b845290915290209081556001015461384d9083613246565b6001600160a01b03891660009081526074602090815260408083208b845290915290206001015585811061387e5750845b979650505050505050565b6001600160a01b038416600090815260726020908152604080832086845282528083208054869003905560689091529020600301546138ce908363ffffffff61324616565b600084815260686020526040902060030155606c546138f3908363ffffffff61324616565b606c5560008381526068602052604090205461392057606d5461391c908363ffffffff61324616565b606d555b600061392b846122f0565b90508015613a5d57600084815260686020526040902054613a5857608160009054906101000a90046001600160a01b03166001600160a01b031663c5f530af6040518163ffffffff1660e01b815260040160206040518083038186803b15801561399457600080fd5b505afa1580156139a8573d6000803e3d6000fd5b505050506040513d60208110156139be57600080fd5b5051811015613a14576040805162461bcd60e51b815260206004820152601760248201527f696e73756666696369656e742073656c662d7374616b65000000000000000000604482015290519081900360640190fd5b613a1d84614524565b613a585760405162461bcd60e51b8152600401808060200182810382526029815260200180614e976029913960400191505060405180910390fd5b613a68565b613a68846001613af9565b60008481526068602052604090206006015461190c9086906001600160a01b031684613c23565b80156126cd5760405160009082156108fc0290839083818181858288f19350505050158015613ac2573d6000803e3d6000fd5b506040805182815290517f8918bd6046d08b314e457977f29562c5d76a7030d79b1edba66e8a5da0b77ae89181900360200190a150565b600082815260686020526040902054158015613b1457508015155b15613b4157600082815260686020526040902060030154606d54613b3d9163ffffffff61324616565b606d555b60008281526068602052604090205481111561264757600082815260686020526040902081815560020154613be957613b7861250e565b600083815260686020526040902060020155613b92613dcd565b6000838152606860209081526040918290206001810184905560020154825190815290810192909252805184927fac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e4792908290030190a25b60408051828152905183917fcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e919081900360200190a25050565b6082546001600160a01b03161561173f57608254604080516001600160a01b03868116602483015285811660448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4a7702bb00000000000000000000000000000000000000000000000000000000178152925182516000959290921693627a120093928291908083835b60208310613d0657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613cc9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613d69576040519150601f19603f3d011682016040523d82523d6000602084013e613d6e565b606091505b505090508080613d7c575081155b61299c576040805162461bcd60e51b815260206004820152601b60248201527f676f7620766f746573207265636f756e74696e67206661696c65640000000000604482015290519081900360640190fd5b4290565b6000821580613de75750613de3613e33565b8210155b15613df457506000613e2c565b613e1f600161113a613e04613e33565b61379486613e10613e33565b8a91900363ffffffff61488816565b905083811115613e2c5750825b9392505050565b670de0b6b3a764000090565b6001600160a01b03881660009081526069602052604090205415613eaa576040805162461bcd60e51b815260206004820152601860248201527f76616c696461746f7220616c7265616479206578697374730000000000000000604482015290519081900360640190fd5b6001600160a01b03881660008181526069602090815260408083208b90558a8352606882528083208981556004810189905560058101889055600181018690556002810187905560060180547fffffffffffffffffffffffff000000000000000000000000000000000000000016909417909355606a81529190208751613f3392890190614d45565b50876001600160a01b0316877f49bca1ed2666922f9f1690c26a569e1299c2a715fe57647d77e81adfabbf25bf8686604051808381526020018281526020019250505060405180910390a38115613fbf576040805183815260208101839052815189927fac4801c32a6067ff757446524ee4e7a373797278ac3c883eac5c693b4ad72e47928290030190a25b8415613ffc5760408051868152905188917fcd35267e7654194727477d6c78b541a553483cff7f92a055d17868d3da6e953e919081900360200190a25b5050505050505050565b61400e614d24565b614016614d24565b6140208484614683565b6001600160a01b0385166000908152606f60209081526040808320878452825291829020825160608101845281548152600182015492810192909252600201549181019190915290915061237f9082614816565b606b80546001019081905561173f838284600061408f61250e565b614097613dcd565b600080613e3f565b6140a98484611250565b8111156140fd576040805162461bcd60e51b815260206004820152601060248201527f6e6f7420656e6f756768207374616b6500000000000000000000000000000000604482015290519081900360640190fd5b6000838152606860205260409020541561415e576040805162461bcd60e51b815260206004820152601660248201527f76616c696461746f722069736e27742061637469766500000000000000000000604482015290519081900360640190fd5b608160009054906101000a90046001600160a01b03166001600160a01b0316630d7b26096040518163ffffffff1660e01b815260040160206040518083038186803b1580156141ac57600080fd5b505afa1580156141c0573d6000803e3d6000fd5b505050506040513d60208110156141d657600080fd5b505182108015906142605750608160009054906101000a90046001600160a01b03166001600160a01b0316630d4955e36040518163ffffffff1660e01b815260040160206040518083038186803b15801561423057600080fd5b505afa158015614244573d6000803e3d6000fd5b505050506040513d602081101561425a57600080fd5b50518211155b6142b1576040805162461bcd60e51b815260206004820152601260248201527f696e636f7272656374206475726174696f6e0000000000000000000000000000604482015290519081900360640190fd5b60006142bf8361113a613dcd565b6000858152606860205260409020600601549091506001600160a01b03908116908616811461434d576001600160a01b038116600090815260736020908152604080832088845290915290206002015482111561434d5760405162461bcd60e51b8152600401808060200182810382526028815260200180614e6f6028913960400191505060405180910390fd5b614357868661358d565b506001600160a01b0386166000908152607360209081526040808320888452909152902060038101548510156143d4576040805162461bcd60e51b815260206004820152601f60248201527f6c6f636b7570206475726174696f6e2063616e6e6f7420646563726561736500604482015290519081900360640190fd5b80546143e6908563ffffffff6130e016565b81556143f061250e565b600182015560028101839055600381018590556040805186815260208101869052815188926001600160a01b038b16927f138940e95abffcd789b497bf6188bba3afa5fbd22fb5c42c2f6018d1bf0f4e78929081900390910190a350505050505050565b600090815260686020526040902060050154151590565b6001600160a01b0381166144b05760405162461bcd60e51b8152600401808060200182810382526026815260200180614dde6026913960400191505060405180910390fd5b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60006145d1614531613e33565b608154604080517f2265f2840000000000000000000000000000000000000000000000000000000081529051613794926001600160a01b031691632265f284916004808301926020929190829003018186803b15801561459057600080fd5b505afa1580156145a4573d6000803e3d6000fd5b505050506040513d60208110156145ba57600080fd5b50516145c5866122f0565b9063ffffffff61488816565b60008381526068602052604090206003015411159050919050565b6000818484111561467b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614640578181015183820152602001614628565b50505050905090810190601f16801561466d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b61468b614d24565b6001600160a01b0383166000908152607060209081526040808320858452909152812054906146b9846147bb565b905060006146c78686614923565b9050818111156146d45750805b828110156146df5750815b6001600160a01b0386166000818152607360209081526040808320898452825280832093835260728252808320898452909152812054825490919061472b90839063ffffffff61324616565b9050600061473f84600001548a8988614a00565b9050614749614d24565b614757828660030154614a63565b9050614765838b8a89614a00565b915061476f614d24565b61477a836000614a63565b9050614788858c898b614a00565b9250614792614d24565b61479d846000614a63565b90506147aa838383614c24565b9d9c50505050505050505050505050565b6000818152606860205260408120600201541561480e5760008281526068602052604090206002015460675410156147f65750606754612321565b50600081815260686020526040902060020154612321565b505060675490565b61481e614d24565b604080516060810190915282518451829161483f919063ffffffff6130e016565b815260200161485f846020015186602001516130e090919063ffffffff16565b815260200161487f846040015186604001516130e090919063ffffffff16565b90529392505050565b600082614897575060006112d3565b828202828482816148a457fe5b04146112d05760405162461bcd60e51b8152600401808060200182810382526021815260200180614e2d6021913960400191505060405180910390fd5b60006112d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614c3f565b6001600160a01b0382166000908152607360209081526040808320848452909152812060010154606754614958858583614ca4565b156149665791506112d39050565b614971858584614ca4565b614980576000925050506112d3565b80821115614993576000925050506112d3565b808210156149c6576002818301046149ac868683614ca4565b156149bc578060010192506149c0565b8091505b50614993565b806149d6576000925050506112d3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01949350505050565b6000818310614a115750600061237f565b60008381526077602081815260408084208885526001908101835281852054878652938352818520898652019091529091205461387e614a4f613e33565b613794896145c5858763ffffffff61324616565b614a6b614d24565b60405180606001604052806000815260200160008152602001600081525090506000608160009054906101000a90046001600160a01b03166001600160a01b0316635e2308d26040518163ffffffff1660e01b815260040160206040518083038186803b158015614adb57600080fd5b505afa158015614aef573d6000803e3d6000fd5b505050506040513d6020811015614b0557600080fd5b505190508215614bfd57600081614b1a613e33565b0390506000614bac608160009054906101000a90046001600160a01b03166001600160a01b0316630d4955e36040518163ffffffff1660e01b815260040160206040518083038186803b158015614b7057600080fd5b505afa158015614b84573d6000803e3d6000fd5b505050506040513d6020811015614b9a57600080fd5b5051613794848863ffffffff61488816565b90506000614bcd614bbb613e33565b6137948987860163ffffffff61488816565b9050614bea614bda613e33565b613794898763ffffffff61488816565b6020860181905290038452506130d99050565b614c18614c08613e33565b613794868463ffffffff61488816565b60408301525092915050565b614c2c614d24565b61237f614c398585614816565b83614816565b60008183614c8e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614640578181015183820152602001614628565b506000838581614c9a57fe5b0495945050505050565b6001600160a01b0383166000908152607360209081526040808320858452909152812060010154821080159061237f57506001600160a01b0384166000908152607360209081526040808320868452909152902060020154614d0583614d0f565b1115949350505050565b60009081526077602052604090206007015490565b60405180606001604052806000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614d8657805160ff1916838001178555614db3565b82800160010185558215614db3579182015b82811115614db3578251825591602001919060010190614d98565b50614dbf929150614dc3565b5090565b61251591905b80821115614dbf5760008155600101614dc956fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737363616c6c6572206973206e6f7420746865204e6f64654472697665724175746820636f6e7472616374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d757374206265206c657373207468616e206f7220657175616c20746f20312e3076616c696461746f72206c6f636b757020706572696f642077696c6c20656e64206561726c69657276616c696461746f7227732064656c65676174696f6e73206c696d69742069732065786365656465646c6f636b6564207374616b652069732067726561746572207468616e207468652077686f6c65207374616b65a265627a7a7231582087037332c1e7e6c6d22bd22a9138be994cc25958ae26e11634b7757630a9b59464736f6c63430005110032"