UNPKG

@vechain/vebetterdao-contracts

Version:

Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.

1,749 lines 113 kB
{ "_format": "hh-sol-artifact-1", "contractName": "XAllocationVotingV1", "sourceName": "contracts/deprecated/V1/XAllocationVotingV1.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "B3TRGovernorOnlyExecutor", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "name": "ERC1967InvalidImplementation", "type": "error" }, { "inputs": [], "name": "ERC1967NonPayable", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "voter", "type": "address" } ], "name": "GovernorAlreadyCastVote", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "appId", "type": "bytes32" } ], "name": "GovernorAppNotAvailableForVoting", "type": "error" }, { "inputs": [], "name": "GovernorInsufficientVotingPower", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "quorumNumerator", "type": "uint256" }, { "internalType": "uint256", "name": "quorumDenominator", "type": "uint256" } ], "name": "GovernorInvalidQuorumFraction", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "votingPeriod", "type": "uint256" } ], "name": "GovernorInvalidVotingPeriod", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "GovernorNonexistentRound", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "internalType": "enum IXAllocationVotingGovernorV1.RoundState", "name": "current", "type": "uint8" }, { "internalType": "bytes32", "name": "expectedStates", "type": "bytes32" } ], "name": "GovernorUnexpectedRoundState", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "threshold", "type": "uint256" }, { "internalType": "uint256", "name": "votes", "type": "uint256" } ], "name": "GovernorVotingThresholdNotMet", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [], "name": "UUPSUnauthorizedCallContext", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "slot", "type": "bytes32" } ], "name": "UUPSUnsupportedProxiableUUID", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "voter", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "bytes32[]", "name": "appsIds", "type": "bytes32[]" }, { "indexed": false, "internalType": "uint256[]", "name": "voteWeights", "type": "uint256[]" } ], "name": "AllocationVoteCast", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldContractAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newContractAddress", "type": "address" } ], "name": "EmissionsSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldQuorumNumerator", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256" } ], "name": "QuorumNumeratorUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "proposer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "voteStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "voteEnd", "type": "uint256" }, { "indexed": false, "internalType": "bytes32[]", "name": "appsIds", "type": "bytes32[]" } ], "name": "RoundCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldContractAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newContractAddress", "type": "address" } ], "name": "VoterRewardsSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldVotingPeriod", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotingPeriod", "type": "uint256" } ], "name": "VotingPeriodSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldVotingThreshold", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotingThreshold", "type": "uint256" } ], "name": "VotingThresholdSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldContractAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newContractAddress", "type": "address" } ], "name": "X2EarnAppsSet", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CONTRACTS_ADDRESS_MANAGER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "COUNTING_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GOVERNANCE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROUND_STARTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADE_INTERFACE_VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "appSharesCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseAllocationPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "appIds", "type": "bytes32[]" }, { "internalType": "uint256[]", "name": "voteWeights", "type": "uint256[]" } ], "name": "castVote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentRoundDeadline", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentRoundId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentRoundSnapshot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emissions", "outputs": [ { "internalType": "contract IEmissionsV1", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "finalizeRound", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "getAppIdsOfRound", "outputs": [ { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "internalType": "bytes32", "name": "app", "type": "bytes32" } ], "name": "getAppVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "internalType": "bytes32", "name": "app", "type": "bytes32" } ], "name": "getAppVotesQF", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "getAppsOfRound", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "address", "name": "teamWalletAddress", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "metadataURI", "type": "string" }, { "internalType": "uint256", "name": "createdAtTimestamp", "type": "uint256" }, { "internalType": "bool", "name": "appAvailableForAllocationVoting", "type": "bool" } ], "internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "getRound", "outputs": [ { "components": [ { "internalType": "address", "name": "proposer", "type": "address" }, { "internalType": "uint48", "name": "voteStart", "type": "uint48" }, { "internalType": "uint32", "name": "voteDuration", "type": "uint32" } ], "internalType": "struct RoundsStorageUpgradeableV1.RoundCore", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "getRoundAppSharesCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "getRoundBaseAllocationPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" } ], "name": "hasVoted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "hasVotedOnce", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IVotes", "name": "vot3Token", "type": "address" }, { "internalType": "uint256", "name": "quorumPercentage", "type": "uint256" }, { "internalType": "uint32", "name": "initialVotingPeriod", "type": "uint32" }, { "internalType": "address", "name": "timeLock", "type": "address" }, { "internalType": "contract IVoterRewardsV1", "name": "voterRewards", "type": "address" }, { "internalType": "contract IEmissionsV1", "name": "emissions", "type": "address" }, { "internalType": "address[]", "name": "admins", "type": "address[]" }, { "internalType": "address", "name": "upgrader", "type": "address" }, { "internalType": "address", "name": "contractsAddressManager", "type": "address" }, { "internalType": "contract IX2EarnAppsV1", "name": "x2EarnAppsAddress", "type": "address" }, { "internalType": "uint256", "name": "baseAllocationPercentage", "type": "uint256" }, { "internalType": "uint256", "name": "appSharesCap", "type": "uint256" }, { "internalType": "uint256", "name": "votingThreshold", "type": "uint256" } ], "internalType": "struct XAllocationVotingV1.InitializationData", "name": "data", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "isActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "appId", "type": "bytes32" }, { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "isEligibleForVote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "isFinalized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "latestSucceededRoundId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "quorum", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "quorumDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "quorumNumerator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "quorumNumerator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "quorumReached", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "roundDeadline", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "roundProposer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "roundQuorum", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "roundSnapshot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "appSharesCap_", "type": "uint256" } ], "name": "setAppSharesCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "baseAllocationPercentage_", "type": "uint256" } ], "name": "setBaseAllocationPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IEmissionsV1", "name": "newEmissions", "type": "address" } ], "name": "setEmissionsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IVoterRewardsV1", "name": "newVoterRewards", "type": "address" } ], "name": "setVoterRewardsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "newVotingPeriod", "type": "uint32" } ], "name": "setVotingPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVotingThreshold", "type": "uint256" } ], "name": "setVotingThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IX2EarnAppsV1", "name": "newX2EarnApps", "type": "address" } ], "name": "setX2EarnAppsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startNewRound", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "state", "outputs": [ { "internalType": "enum IXAllocationVotingGovernorV1.RoundState", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC5805", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "totalVoters", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "totalVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "totalVotesQF", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256" } ], "name": "updateQuorumNumerator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voterRewards", "outputs": [ { "internalType": "contract IVoterRewardsV1", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "x2EarnApps", "outputs": [ { "internalType": "contract IX2EarnAppsV1", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161495962000104600039600081816120f901528181612122015261226c01526149596000f3fe60806040526004361061030a5760003560e01c806301ffc9a71461030f57806302a251a31461034457806306f3f9e61461036757806306fdde03146103895780630a0e74ef146103ab5780630eca87fb146103cb57806319e6e158146103eb5780632267716c1461040b578063248a9ca31461042d578063291605f71461044d5780632f2ff15d1461047a578063300973771461049a57806333653f5d146104ba57806333727c4d146104cf5780633469f6e2146104ef57806336568abe1461050f5780633e4f49e61461052f578063438596321461055c578063498d91bf1461057c5780634bb5181a1461059c5780634bf5d7e9146105bc5780634f1ef286146105d157806352d1902d146105e45780635320a147146105f957806353ed63991461061957806354fd4d5014610639578063561b64ef146106635780635718160914610678578063593728121461069857806359529edd146106ad57806360c4247f146106cd57806362827733146106ed57806374038935146107025780637ace24851461072257806382afd23b1461074f578063836761e01461076f5780638ab52d4b1461078f5780638f1327c0146107a457806391d14854146107fd57806391ddadf41461081d578063952f21331461084957806397c3d3341461086b5780639aeb962b1461087f5780639cbe5efd1461089f578063a217fddf146108b4578063a3844e11146108c9578063a7713a70146108de578063ad3cb1cc146108f3578063b25d6f6214610924578063bb7de6d414610944578063bd85948c14610959578063bed730101461096e578063c048f6c91461098e578063cd669a72146109ae578063d06efeda146109d0578063d3a368bd146109f0578063d4a8dd9814610a10578063d547741f14610a30578063d68b4c3614610a50578063dd4e2ba514610a70578063e540d01d14610a85578063e7ad2bed14610aa5578063eb9019d414610ac5578063f36c8f5c14610ae5578063f5fae13614610b07578063f72c0d8b14610b27578063f8ce560a14610b49578063fb03ec6f14610b69578063fc0c546a14610b89575b600080fd5b34801561031b57600080fd5b5061032f61032a366004613bba565b610b9e565b60405190151581526020015b60405180910390f35b34801561035057600080fd5b50610359610baf565b60405190815260200161033b565b34801561037357600080fd5b50610387610382366004613be4565b610bbe565b005b34801561039557600080fd5b5061039e610be3565b60405161033b9190613c4d565b3480156103b757600080fd5b506103596103c6366004613be4565b610c84565b3480156103d757600080fd5b506103596103e6366004613be4565b610ca4565b3480156103f757600080fd5b50610359610406366004613be4565b610cc4565b34801561041757600080fd5b50610420610ce7565b60405161033b9190613c60565b34801561043957600080fd5b50610359610448366004613be4565b610d05565b34801561045957600080fd5b5061046d610468366004613be4565b610d25565b60405161033b9190613c74565b34801561048657600080fd5b50610387610495366004613d51565b610f06565b3480156104a657600080fd5b506103596104b5366004613be4565b610f28565b3480156104c657600080fd5b50610420610f45565b3480156104db57600080fd5b5061032f6104ea366004613be4565b610f60565b3480156104fb57600080fd5b5061038761050a366004613be4565b610f83565b34801561051b57600080fd5b5061038761052a366004613d51565b6110ec565b34801561053b57600080fd5b5061054f61054a366004613be4565b611124565b60405161033b9190613db9565b34801561056857600080fd5b5061032f610577366004613d51565b6111ac565b34801561058857600080fd5b50610359610597366004613be4565b6111e9565b3480156105a857600080fd5b506103596105b7366004613dc7565b61120c565b3480156105c857600080fd5b5061039e611237565b6103876105df366004613ea1565b6112e0565b3480156105f057600080fd5b506103596112fb565b34801561060557600080fd5b50610420610614366004613be4565b611318565b34801561062557600080fd5b50610387610634366004613fbc565b611341565b34801561064557600080fd5b506040805180820190915260018152603160f81b602082015261039e565b34801561066f57600080fd5b5061035961143f565b34801561068457600080fd5b5061038761069336600461407f565b61144c565b3480156106a457600080fd5b5061035961146d565b3480156106b957600080fd5b506103596106c8366004613be4565b61147a565b3480156106d957600080fd5b506103596106e8366004613be4565b611488565b3480156106f957600080fd5b50610359611521565b34801561070e57600080fd5b5061038761071d366004613be4565b611536565b34801561072e57600080fd5b5061074261073d366004613be4565b611557565b60405161033b91906140d7565b34801561075b57600080fd5b5061032f61076a366004613be4565b6115ca565b34801561077b57600080fd5b5061038761078a366004613be4565b6115ee565b34801561079b57600080fd5b5061035961160f565b3480156107b057600080fd5b506107c46107bf366004613be4565b611621565b6040805182516001600160a01b0316815260208084015165ffffffffffff16908201529181015163ffffffff169082015260600161033b565b34801561080957600080fd5b5061032f610818366004613d51565b6116a1565b34801561082957600080fd5b506108326116d7565b60405165ffffffffffff909116815260200161033b565b34801561085557600080fd5b5061035960008051602061490483398151915281565b34801561087757600080fd5b506064610359565b34801561088b57600080fd5b5061032f61089a36600461407f565b611746565b3480156108ab57600080fd5b50610359611774565b3480156108c057600080fd5b50610359600081565b3480156108d557600080fd5b5061042061177f565b3480156108ea57600080fd5b5061035961179d565b3480156108ff57600080fd5b5061039e604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561093057600080fd5b5061038761093f36600461407f565b6117c2565b34801561095057600080fd5b506103596117e3565b34801561096557600080fd5b506103596117f8565b34801561097a57600080fd5b50610359610989366004613dc7565b611821565b34801561099a57600080fd5b506103876109a936600461407f565b611851565b3480156109ba57600080fd5b506103596000805160206148e483398151915281565b3480156109dc57600080fd5b506103596109eb366004613be4565b611872565b3480156109fc57600080fd5b50610359610a0b366004613be4565b6118a1565b348015610a1c57600080fd5b5061032f610a2b366004613be4565b6118f5565b348015610a3c57600080fd5b50610387610a4b366004613d51565b611900565b348015610a5c57600080fd5b5061032f610a6b366004613dc7565b61191c565b348015610a7c57600080fd5b5061039e6119a3565b348015610a9157600080fd5b50610387610aa03660046140fe565b6119c3565b348015610ab157600080fd5b50610387610ac036600461417d565b6119e4565b348015610ad157600080fd5b50610359610ae03660046142a7565b611e09565b348015610af157600080fd5b5061035960008051602061484383398151915281565b348015610b1357600080fd5b50610387610b22366004613be4565b611e25565b348015610b3357600080fd5b506103596000805160206148a483398151915281565b348015610b5557600080fd5b50610359610b64366004613be4565b611e46565b348015610b7557600080fd5b50610359610b84366004613be4565b611e51565b348015610b9557600080fd5b50610420611e74565b6000610ba982611e7f565b92915050565b6000610bb9611ea4565b905090565b600080516020614843833981519152610bd681611ebc565b610bdf82611ec9565b5050565b60606000610bef611ed2565b9050806000018054610c00906142d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2c906142d3565b8015610c795780601f10610c4e57610100808354040283529160200191610c79565b820191906000526020600020905b815481529060010190602001808311610c5c57829003601f168201915b505050505091505090565b600080610c8f611ef6565b60009384526003016020525050604090205490565b600080610caf611ef6565b60009384526002016020525050604090205490565b600080610ccf611f1a565b60009384526001016020525050604090206002015490565b600080610cf2611f3e565b600101546001600160a01b031692915050565b600080610d10611f62565b60009384526020525050604090206001015490565b60606000610d31611f86565b6000848152600282016020908152604080832080548251818502810185019093528083529495509293909291830182828015610d8c57602002820191906000526020600020905b815481526020019060010190808311610d78575b505050505090506000815190506000816001600160401b03811115610db357610db3613de9565b604051908082528060200260200182016040528015610e2b57816020015b610e186040518060c001604052806000801916815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b815260200190600190039081610dd15790505b50905060005b82811015610efc57610e41610f45565b6001600160a01b031663785d6e18858381518110610e6157610e6161430d565b60200260200101516040518263ffffffff1660e01b8152600401610e8791815260200190565b600060405180830381865afa158015610ea4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ecc9190810190614383565b828281518110610ede57610ede61430d565b60200260200101819052508080610ef49061445f565b915050610e31565b5095945050505050565b610f0f82610d05565b610f1881611ebc565b610f228383611faa565b50505050565b600080610f33612052565b60009384526020525050604090205490565b600080610f50611f3e565b546001600160a01b031692915050565b600080610f6b612052565b60009384526001016020525050604090205460ff1690565b610f8c816115ca565b15610ffa5760405162461bcd60e51b815260206004820152603360248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f7256313a20726f756044820152721b99081a5cc81b9bdd08195b991959081e595d606a1b60648201526084015b60405180910390fd5b6000611004612052565b90508160010361103957600091825260208181526040808420600190819055928301909152909120805460ff19169091179055565b600261104483611124565b600281111561105557611055613d81565b0361108557600082815260208281526040808320949094556001928301905291909120805460ff19169091179055565b600161109083611124565b60028111156110a1576110a1613d81565b03610bdf578060006110b4600185614478565b8152602080820192909252604090810160009081205485825284845282822055600180850190935220805460ff191690911790555050565b6001600160a01b03811633146111155760405163334bd91960e11b815260040160405180910390fd5b61111f8282612076565b505050565b60008061113083611872565b905080600003611156576040516333b4e31b60e21b815260048101849052602401610ff1565b60006111606116d7565b65ffffffffffff1690506000611175856118a1565b905081811061118957506000949350505050565b611192856118f5565b6111a157506001949350505050565b506002949350505050565b6000806111b7611f1a565b6000948552600101602090815260408086206001600160a01b0395909516865260049094019052505090205460ff1690565b6000806111f4611f1a565b60009384526001016020525050604090206005015490565b600080611217611f1a565b600094855260010160209081526040808620948652939052505090205490565b6060611241611e74565b6001600160a01b0316634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561129f57506040513d6000823e601f3d908101601f1916820160405261129c919081019061448b565b60015b6112db575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b6112e86120ee565b6112f182612195565b610bdf82826121ad565b6000611305612261565b506000805160206148c483398151915290565b600080611323611f86565b6000938452600101602052505060409020546001600160a01b031690565b6113548361134f60006122aa565b6122cd565b5080518251146113ca5760405162461bcd60e51b815260206004820152603b60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a20617070732060448201527a0c2dcc840eecad2ced0e8e640d8cadccee8d040dad2e6dac2e8c6d602b1b6064820152608401610ff1565b60008251116114325760405162461bcd60e51b815260206004820152602e60248201527f58416c6c6f636174696f6e566f74696e67476f7665726e6f723a206e6f20617060448201526d3839903a37903b37ba32903337b960911b6064820152608401610ff1565b33610f228482858561230c565b6000610bb96109eb611774565b60008051602061490483398151915261146481611ebc565b610bdf82612776565b6000610bb9610a0b611774565b6000610ba9610b6483611872565b600080611493612866565b80549091506000826114a6600184614478565b815481106114b6576114b661430d565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b03168682116114fa576001600160d01b03169695505050505050565b61150d6115068861288a565b86906128b8565b6001600160d01b0316979650505050505050565b60008061152c611f1a565b6002015492915050565b60008051602061484383398151915261154e81611ebc565b610bdf8261296e565b60606000611563611f86565b600084815260028201602090815260409182902080548351818402810184019094528084529394509192908301828280156115bd57602002820191906000526020600020905b8154815260200190600101908083116115a9575b5050505050915050919050565b6000806115d683611124565b60028111156115e7576115e7613d81565b1492915050565b60008051602061484383398151915261160681611ebc565b610bdf82612a0f565b60008061161a611ef6565b5492915050565b6040805160608101825260008082526020820181905291810182905290611646611f86565b60009384526001016020908152604093849020845160608101865290546001600160a01b0381168252600160a01b810465ffffffffffff1692820192909252600160d01b90910463ffffffff16938101939093525090919050565b6000806116ac611f62565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b60006116e1611e74565b6001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561173a575060408051601f3d908101601f19168201909252611737918101906144bf565b60015b6112db57610bb9612a18565b600080611751611f1a565b6001600160a01b0390931660009081526020939093525050604090205460ff1690565b60008061161a611f86565b60008061178a611f3e565b600201546001600160a01b031692915050565b6000806117a8612866565b90506117b381612a23565b6001600160d01b031691505090565b6000805160206149048339815191526117da81611ebc565b610bdf82612a5c565b6000806117ee611ef6565b600101