@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
1,552 lines • 108 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "GrantsManager",
"sourceName": "contracts/GrantsManager.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": "caller",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "CallerIsNotTheGrantReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "EnforcedPause",
"type": "error"
},
{
"inputs": [],
"name": "ExpectedPause",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GrantAlreadyCompleted",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GrantAlreadyRejected",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "availableFunds",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredFunds",
"type": "uint256"
}
],
"name": "InsufficientFunds",
"type": "error"
},
{
"inputs": [],
"name": "InvalidAmount",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
}
],
"name": "InvalidFunctionSelector",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "InvalidMilestoneIndex",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "provided",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "required",
"type": "uint256"
}
],
"name": "InvalidNumberOfMilestones",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "InvalidTarget",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "MilestoneAlreadyApproved",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "MilestoneAlreadyClaimed",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "MilestoneAmountZero",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalAmount",
"type": "uint256"
}
],
"name": "MilestoneClaimedAmountExceedsTotalAmount",
"type": "error"
},
{
"inputs": [],
"name": "MilestoneDetailsMetadataURIEmpty",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "MilestoneNotApprovedByAdmin",
"type": "error"
},
{
"inputs": [],
"name": "MilestoneProposerZeroAddress",
"type": "error"
},
{
"inputs": [
{
"internalType": "enum IGrantsManager.MilestoneState",
"name": "status",
"type": "uint8"
}
],
"name": "MilestoneStateNotPending",
"type": "error"
},
{
"inputs": [],
"name": "MilestoneTotalAmountZero",
"type": "error"
},
{
"inputs": [],
"name": "NotAuthorized",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "PreviousMilestoneNotApproved",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "ProposalNotExecuted",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [],
"name": "TransferFailed",
"type": "error"
},
{
"inputs": [],
"name": "UUPSUnauthorizedCallContext",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "slot",
"type": "bytes32"
}
],
"name": "UUPSUnsupportedProxiableUUID",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "GrantCanceled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "newGrantsReceiver",
"type": "address"
}
],
"name": "GrantsReceiverUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "MilestoneClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "newMilestoneMetadataURI",
"type": "string"
}
],
"name": "MilestoneMetadataURIUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "MilestoneRejectedAndFundsReturnedToTreasury",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "MilestoneValidated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "grantsReceiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "metadataURI",
"type": "string"
}
],
"name": "MilestonesCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"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": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"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": "GRANTS_APPROVER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "GRANTS_REJECTOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PAUSER_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": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "approveMilestoneWithReason",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "approveMilestones",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "claimMilestone",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"internalType": "address",
"name": "grantsReceiver",
"type": "address"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
}
],
"name": "createMilestones",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getB3trContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getGovernorContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "getGrantProposal",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"internalType": "address",
"name": "grantsReceiver",
"type": "address"
},
{
"components": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isClaimed",
"type": "bool"
},
{
"internalType": "bool",
"name": "isApproved",
"type": "bool"
},
{
"internalType": "bool",
"name": "isRejected",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"internalType": "struct IGrantsManager.Milestone[]",
"name": "milestones",
"type": "tuple[]"
},
{
"internalType": "string",
"name": "metadataURI",
"type": "string"
}
],
"internalType": "struct IGrantsManager.GrantProposal",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "getGrantsReceiverAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "getMilestone",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isClaimed",
"type": "bool"
},
{
"internalType": "bool",
"name": "isApproved",
"type": "bool"
},
{
"internalType": "bool",
"name": "isRejected",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"internalType": "struct IGrantsManager.Milestone",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "getMilestoneMetadataURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "getMilestones",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isClaimed",
"type": "bool"
},
{
"internalType": "bool",
"name": "isApproved",
"type": "bool"
},
{
"internalType": "bool",
"name": "isRejected",
"type": "bool"
},
{
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"internalType": "struct IGrantsManager.Milestone[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMinimumMilestoneCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "milestoneId",
"type": "uint256"
}
],
"name": "getTotalAmountForMilestones",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTreasuryContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"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": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "grantState",
"outputs": [
{
"internalType": "enum IGrantsManager.GrantState",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"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": "address",
"name": "_governor",
"type": "address"
},
{
"internalType": "address",
"name": "_treasury",
"type": "address"
},
{
"internalType": "address",
"name": "defaultAdmin",
"type": "address"
},
{
"internalType": "address",
"name": "_b3tr",
"type": "address"
},
{
"internalType": "uint256",
"name": "_minimumMilestoneCount",
"type": "uint256"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "isClaimable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "isGrantCompleted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "isGrantInDevelopment",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "isGrantRejected",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "milestoneIndex",
"type": "uint256"
}
],
"name": "milestoneState",
"outputs": [
{
"internalType": "enum IGrantsManager.MilestoneState",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "rejectMilestones",
"outputs": [],
"stateMutability": "nonpayable",
"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": "address",
"name": "_b3tr",
"type": "address"
}
],
"name": "setB3trContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_governor",
"type": "address"
}
],
"name": "setGovernorContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "minimumMilestoneCount",
"type": "uint256"
}
],
"name": "setMinimumMilestoneCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_treasury",
"type": "address"
}
],
"name": "setTreasuryContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "newGrantsReceiver",
"type": "address"
}
],
"name": "updateGrantsReceiver",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "string",
"name": "newMilestoneMetadataURI",
"type": "string"
}
],
"name": "updateMilestoneMetadataURI",
"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": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161487f62000104600039600081816132d1015281816132fa0152613444015261487f6000f3fe6080604052600436106102175760003560e01c806219cce61461021c578063012947641461024757806301ffc9a71461026a57806306c498221461029a5780631ed65110146102bc57806321afd1f6146102dc578063248a9ca3146102fe57806324ad94cd1461031e57806326c74fc31461034b5780632f2ff15d1461036057806336568abe146103805780633f36cd7f146103a05780633f4ba83a146103c257806342c549c0146103d75780634f1ef2861461040457806352d1902d1461041757806354b90b7b1461042c57806354fd4d501461044c5780635ade3874146104605780635c975abb14610480578063767b1602146104955780637da17bf3146104b5578063808860a5146104d55780638456cb59146104f55780638ed9895c1461050a57806391d14854146105375780639b15408714610557578063a217fddf14610577578063ad3cb1cc1461058c578063b2a2eef9146105ca578063b3396778146105ea578063bfda4e7c1461060a578063c1a45a6a14610637578063c224938914610657578063c266aef714610677578063c42433b414610697578063c4ec8f98146106b7578063cff28c70146106cc578063d547741f146106ec578063da104fac1461070c578063e03d759b1461072c578063e63ab1e91461074c578063e9af5d1b1461076e578063f23e227b1461079b578063f36c8f5c146107bb578063f7013ef6146107dd578063f72c0d8b146107fd575b600080fd5b34801561022857600080fd5b5061023161081f565b60405161023e9190613ed6565b60405180910390f35b34801561025357600080fd5b5061025c61083d565b60405190815260200161023e565b34801561027657600080fd5b5061028a610285366004613eea565b610852565b604051901515815260200161023e565b3480156102a657600080fd5b506102ba6102b5366004613f29565b610889565b005b3480156102c857600080fd5b506102ba6102d7366004613f29565b6108c4565b3480156102e857600080fd5b5061025c60008051602061476a83398151915281565b34801561030a57600080fd5b5061025c610319366004613f46565b6108ff565b34801561032a57600080fd5b5061033e610339366004613f46565b61091f565b60405161023e9190613ff2565b34801561035757600080fd5b50610231610b96565b34801561036c57600080fd5b506102ba61037b3660046140b7565b610bb4565b34801561038c57600080fd5b506102ba61039b3660046140b7565b610bd6565b3480156103ac57600080fd5b5061025c60008051602061482a83398151915281565b3480156103ce57600080fd5b506102ba610c0e565b3480156103e357600080fd5b506103f76103f2366004613f46565b610c7a565b60405161023e91906140e7565b6102ba6104123660046141fe565b610dc6565b34801561042357600080fd5b5061025c610de1565b34801561043857600080fd5b506102ba610447366004613f29565b610dfe565b34801561045857600080fd5b50600361025c565b34801561046c57600080fd5b5061025c61047b366004613f46565b610e39565b34801561048c57600080fd5b5061028a610e44565b3480156104a157600080fd5b506102ba6104b036600461424d565b610e59565b3480156104c157600080fd5b5061028a6104d0366004613f46565b610fd1565b3480156104e157600080fd5b506102ba6104f036600461426f565b611254565b34801561050157600080fd5b506102ba6117e5565b34801561051657600080fd5b5061052a61052536600461424d565b61184d565b60405161023e9190614384565b34801561054357600080fd5b5061028a6105523660046140b7565b6119ae565b34801561056357600080fd5b5061028a610572366004613f46565b6119e4565b34801561058357600080fd5b5061025c600081565b34801561059857600080fd5b506105bd604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023e9190614397565b3480156105d657600080fd5b506102ba6105e5366004613f46565b611d43565b3480156105f657600080fd5b506102ba6106053660046143aa565b611d63565b34801561061657600080fd5b5061062a610625366004613f46565b611efc565b60405161023e919061440f565b34801561064357600080fd5b5061028a61065236600461424d565b611ff1565b34801561066357600080fd5b5061028a610672366004613f46565b612018565b34801561068357600080fd5b506102ba61069236600461424d565b61237c565b3480156106a357600080fd5b506102ba6106b2366004614429565b6127f6565b3480156106c357600080fd5b506102316128e9565b3480156106d857600080fd5b506105bd6106e7366004613f46565b612907565b3480156106f857600080fd5b506102ba6107073660046140b7565b6129b9565b34801561071857600080fd5b50610231610727366004613f46565b6129d5565b34801561073857600080fd5b506102ba6107473660046140b7565b6129fe565b34801561075857600080fd5b5061025c60008051602061480a83398151915281565b34801561077a57600080fd5b5061078e61078936600461424d565b612ae5565b60405161023e9190614459565b3480156107a757600080fd5b506102ba6107b6366004613f46565b612af8565b3480156107c757600080fd5b5061025c60008051602061478a83398151915281565b3480156107e957600080fd5b506102ba6107f836600461446d565b612dbd565b34801561080957600080fd5b5061025c6000805160206147ca83398151915281565b60008061082a613101565b600101546001600160a01b031692915050565b600080610848613101565b6004015492915050565b60006001600160e01b03198216637965db0b60e01b148061088357506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061089481613125565b600061089e613101565b60010180546001600160a01b0319166001600160a01b0394909416939093179092555050565b60006108cf81613125565b60006108d9613101565b60020180546001600160a01b0319166001600160a01b0394909416939093179092555050565b60008061090a613132565b60009384526020525050604090206001015490565b6109716040518060e0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160608152602001606081525090565b600061097b613101565b600084815260208281526040808320815160e0810183528154815260018201548185015260028201548184015260038201546001600160a01b03908116606083015260048301541660808201526005820180548451818702810187019095528085529697509095919460a087019491929184015b82821015610af45760008481526020908190206040805160a0810182526003860290920180548352600181015460ff808216151595850195909552610100810485161515928401929092526201000090910490921615156060820152600282018054919291608084019190610a63906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8f906144d1565b8015610adc5780601f10610ab157610100808354040283529160200191610adc565b820191906000526020600020905b815481529060010190602001808311610abf57829003601f168201915b505050505081525050815260200190600101906109ef565b505050508152602001600682018054610b0c906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610b38906144d1565b8015610b855780601f10610b5a57610100808354040283529160200191610b85565b820191906000526020600020905b815481529060010190602001808311610b6857829003601f168201915b505050505081525050915050919050565b600080610ba1613101565b600201546001600160a01b031692915050565b610bbd826108ff565b610bc681613125565b610bd08383613156565b50505050565b6001600160a01b0381163314610bff5760405163334bd91960e11b815260040160405180910390fd5b610c0982826131f7565b505050565b60008051602061480a8339815191526000610c27613101565b9050610c3382336119ae565b80610c515750610c5160008051602061478a833981519152336119ae565b610c6e5760405163ea8e4eb560e01b815260040160405180910390fd5b610c7661326f565b5050565b60606000610c86613101565b600084815260208281526040808320600501805482518185028101850190935280835294955090939092909184015b82821015610dba5760008481526020908190206040805160a0810182526003860290920180548352600181015460ff808216151595850195909552610100810485161515928401929092526201000090910490921615156060820152600282018054919291608084019190610d29906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d55906144d1565b8015610da25780601f10610d7757610100808354040283529160200191610da2565b820191906000526020600020905b815481529060010190602001808311610d8557829003601f168201915b50505050508152505081526020019060010190610cb5565b50505050915050919050565b610dce6132c6565b610dd78261336d565b610c768282613385565b6000610deb613439565b506000805160206147ea83398151915290565b6000610e0981613125565b6000610e13613101565b60030180546001600160a01b0319166001600160a01b0394909416939093179092555050565b60008061090a613101565b600080610e4f613482565b5460ff1692915050565b60008051602061482a8339815191526000610e72613101565b9050610e7e82336119ae565b80610e9c5750610e9c60008051602061478a833981519152336119ae565b610eb95760405163ea8e4eb560e01b815260040160405180910390fd5b6000610ec3613101565b9050610ece856134a6565b610ed8858561355c565b8315610f61576000610ef486610eef600188614521565b61359e565b90506001816003811115610f0a57610f0a6143f9565b14158015610f2a57506002816003811115610f2757610f276143f9565b14155b15610f5f5785610f3b600187614521565b60405163414e3ac760e01b8152600401610f56929190614534565b60405180910390fd5b505b600085815260208290526040902060050180546001919086908110610f8857610f88614542565b60009182526020822060016003909202010180549215156101000261ff001990931692909217909155604051859187916000805160206147aa8339815191529190a35050505050565b600080610fdc613101565b600084815260208281526040808320815160e0810183528154815260018201548185015260028201548184015260038201546001600160a01b039081166060830152600483015416608082015260058201805484518187028101870190955280855296975094959094919360a0860193929190879084015b828210156111595760008481526020908190206040805160a0810182526003860290920180548352600181015460ff8082161515958501959095526101008104851615159284019290925262010000909104909216151560608201526002820180549192916080840191906110c8906144d1565b80601f01602080910402602001604051908101604052809291908181526020018280546110f4906144d1565b80156111415780601f1061111657610100808354040283529160200191611141565b820191906000526020600020905b81548152906001019060200180831161112457829003601f168201915b50505050508152505081526020019060010190611054565b505050508152602001600682018054611171906144d1565b80601f016020809104026020016040519081016040528092919081815260200182805461119d906144d1565b80156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b505050505081525050905060005b8160a0015151811015611249578160a00151818151811061121b5761121b614542565b6020026020010151606001511561123757506001949350505050565b8061124181614558565b9150506111f8565b506000949350505050565b600061125e613101565b905061127860008051602061478a833981519152336119ae565b6112955760405163ea8e4eb560e01b815260040160405180910390fd5b61129d613826565b60006112a7613101565b6000878152602082905260408120919250805b855181101561152e5760008682815181106112d7576112d7614542565b602090810291909101810151908101519091506001600160e01b03198116638e184b3f60e01b14611327576040516310cb7cf160e21b81526001600160e01b031982166004820152602401610f56565b6000600483516113379190614521565b6001600160401b0381111561134e5761134e614149565b6040519080825280601f01601f191660200182016040528015611378576020820181803683370190505b50905060005b81518110156113e95783611393826004614571565b815181106113a3576113a3614542565b602001015160f81c60f81b8282815181106113c0576113c0614542565b60200101906001600160f81b031916908160001a905350806113e181614558565b91505061137e565b50600080828060200190518101906114019190614584565b90925090506001600160a01b0382163014611431578160405163d08525e960e01b8152600401610f569190613ed6565b806000036114525760405163162908e360e11b815260040160405180910390fd5b61145c8188614571565b60008f815260208b81526040808320815160a08101835286815280840185815281840186815260608301878152855180880190965287865260808401958652600590940180546001818101835591895296909720835160039097020195865590519585018054915193511515620100000262ff0000199415156101000261ff00199815159890981661ffff199093169290921796909617929092169190911790935551929950909160028201906115139082614600565b5050505050505050808061152690614558565b9150506112ba565b508782556003820180546001600160a01b0319166001600160a01b0389161790556006820161155d8a82614600565b50600182018190556000600283018190556004830180546001600160a01b0319166001600160a01b038981169182179092556040805160e08101825286548152602080820187905281830186905260038801549094166060820152608081019290925260058601805482518186028101860190935280835261178c959394889460a087019493929184015b828210156116ed5760008481526020908190206040805160a0810182526003860290920180548352600181015460ff80821615159585019590955261010081048516151592840192909252620100009091049092161515606082015260028201805491929160808401919061165c906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611688906144d1565b80156116d55780601f106116aa576101008083540402835291602001916116d5565b820191906000526020600020905b8154815290600101906020018083116116b857829003601f168201915b505050505081525050815260200190600101906115e8565b505050508152602001600682018054611705906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611731906144d1565b801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b50505050508152505061384c565b856001600160a01b0316876001600160a01b0316897f4881acb9050bcf1b58cd99d39b4d4497e03c9961e7466fdb95d6e422cd6f9553848d6040516117d29291906146bf565b60405180910390a4505050505050505050565b60008051602061480a83398151915260006117fe613101565b905061180a82336119ae565b80611828575061182860008051602061478a833981519152336119ae565b6118455760405163ea8e4eb560e01b815260040160405180910390fd5b610c766139ce565b6118856040518060a0016040528060008152602001600015158152602001600015158152602001600015158152602001606081525090565b600061188f613101565b6000858152602082905260409020600501805491925090849081106118b6576118b6614542565b60009182526020918290206040805160a081018252600390930290910180548352600181015460ff808216151595850195909552610100810485161515928401929092526201000090910490921615156060820152600282018054919291608084019190611923906144d1565b80601f016020809104026020016040519081016040528092919081815260200182805461194f906144d1565b801561199c5780601f106119715761010080835404028352916020019161199c565b820191906000526020600020905b81548152906001019060200180831161197f57829003601f168201915b50505050508152505091505092915050565b6000806119b9613132565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b6000806119ef613101565b600084815260208281526040808320815160e0810183528154815260018201548185015260028201548184015260038201546001600160a01b039081166060830152600483015416608082015260058201805484518187028101870190955280855296975094959094919360a0860193929190879084015b82821015611b6c5760008481526020908190206040805160a0810182526003860290920180548352600181015460ff808216151595850195909552610100810485161515928401929092526201000090910490921615156060820152600282018054919291608084019190611adb906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611b07906144d1565b8015611b545780601f10611b2957610100808354040283529160200191611b54565b820191906000526020600020905b815481529060010190602001808311611b3757829003601f168201915b50505050508152505081526020019060010190611a67565b505050508152602001600682018054611b84906144d1565b80601f0160208091040260200160405190810160405280929190818152602001828054611bb0906144d1565b8015611bfd5780601f10611bd257610100808354040283529160200191611bfd565b820191906000526020600020905b815481529060010190602001808311611be057829003601f168201915b505050919092525050506001830154604051631f27a4f360e11b8152600481018790529192506000916001600160a01b0390911690633e4f49e690602401602060405180830381865afa158015611c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7c91906146d8565b90506006816009811115611c9257611c926143f9565b14158015611cb257506008816009811115611caf57611caf6143f9565b14155b8015611cd057506009816009811115611ccd57611ccd6143f9565b14155b15611ce057506000949350505050565b60005b8260a0015151811015611d37576000611cfc878361359e565b90506000816003811115611d1257611d126143f9565b03611d24575060019695505050505050565b5080611d2f81614558565b915050611ce3565b50600095945050505050565b6000611d4e81613125565b6000611d58613101565b600401929092555050565b60008051602061482a8339815191526000611d7c613101565b9050611d8882336119ae565b80611da65750611da660008051602061478a833981519152336119ae565b611dc35760405163ea8e4eb560e01b815260040160405180910390fd5b6000611dcd613101565b9050611dd8866134a6565b611de2868661355c565b8415611e42576000611df987610eef600189614521565b90506001816003811115611e0f57611e0f6143f9565b14158015611e2f57506002816003811115611e2c57611e2c6143f9565b14155b15611e405786610f3b600188614521565b505b600086815260208290526040902060050180546001919087908110611e6957611e69614542565b906000526020600020906003020160010160016101000a81548160ff021916908315150217905550838160000160008881526020019081526020016000206005018681548110611ebb57611ebb614542565b90600052602060002090600302016002019081611ed89190614600565b50604051859087906000805160206147aa83398151915290600090a3505050505050565b600080611f07613101565b6001810154604051631f27a4f360e11b8152600481018690529192506000916001600160a01b0390911690633e4f49e690602401602060405180830381865afa158015611f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7c91906146d8565b9050611f8784610fd15