@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
102 lines (101 loc) • 11.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VoteEligibilityUtils",
"sourceName": "contracts/x-2-earn-apps/libraries/VoteEligibilityUtils.sol",
"abi": [
{
"inputs": [],
"name": "CheckpointUnorderedInsertion",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
},
{
"internalType": "uint48",
"name": "clock",
"type": "uint48"
}
],
"name": "ERC5805FutureLookup",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "bits",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "SafeCastOverflowedUintDowncast",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bool",
"name": "isAvailable",
"type": "bool"
}
],
"name": "VotingEligibilityUpdated",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "appId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "timepoint",
"type": "uint256"
},
{
"internalType": "bool",
"name": "appExists",
"type": "bool"
},
{
"internalType": "uint48",
"name": "currentTimepoint",
"type": "uint48"
}
],
"name": "isEligible",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x61093561003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063c2ff3b9314610045578063f987f70914610067575b600080fd5b81801561005157600080fd5b506100656100603660046107e5565b61008e565b005b61007a610075366004610832565b610225565b604051901515815260200160405180910390f35b60006100986102ba565b9050831515831515036100ab575061021f565b600085815260028201602052604090206100de9083866100d4576100cf60006102de565b610316565b6100cf60016102de565b5050836101ab57600085815260018083016020526040822054835490929161010591610875565b9050600083600001828154811061011e5761011e610888565b906000526020600020015490508084600001848154811061014157610141610888565b6000918252602080832090910192909255828152600186019091526040902083905583548490806101745761017461089e565b60019003818190600052602060002001600090559055836001016000898152602001908152602001600020600090555050506101e1565b80546001818101835560008381526020902090910186905581546101cf9190610875565b60008681526001830160205260409020555b847f67a3d5f523bbd1855235e1573461f352e4f47a2e67434dac8ac4cf04be557c5185604051610215911515815260200190565b60405180910390a2505b50505050565b6000806102306102ba565b9050836102415760009150506102b2565b8265ffffffffffff1685111561028057604051637669fc0f60e11b81526004810186905265ffffffffffff841660248201526044015b60405180910390fd5b6102a261028c86610331565b6000888152600284016020526040902090610364565b6001600160d01b03166001149150505b949350505050565b7fb5b8d618af1ffb8d5bcc4bd23f445ba34ed08d7a16d1e1b5411cfbe7913e590090565b60006001600160d01b03821115610312576040516306dfcc6560e41b815260d0600482015260248101839052604401610277565b5090565b60008061032485858561041c565b915091505b935093915050565b600065ffffffffffff821115610312576040516306dfcc6560e41b81526030600482015260248101839052604401610277565b8154600090818160058111156103c357600061037f8461042a565b6103899085610875565b60008881526020902090915081015465ffffffffffff90811690871610156103b3578091506103c1565b6103be8160016108b4565b92505b505b60006103d187878585610519565b9050801561040c576103f6876103e8600184610875565b600091825260209091200190565b54600160301b90046001600160d01b031661040f565b60005b9450505050505b92915050565b60008061032485858561057b565b60008160000361043c57506000919050565b60006001610449846106f5565b901c6001901b90506001818481610462576104626108c7565b048201901c9050600181848161047a5761047a6108c7565b048201901c90506001818481610492576104926108c7565b048201901c905060018184816104aa576104aa6108c7565b048201901c905060018184816104c2576104c26108c7565b048201901c905060018184816104da576104da6108c7565b048201901c905060018184816104f2576104f26108c7565b048201901c90506105128182858161050c5761050c6108c7565b04610789565b9392505050565b60005b81831015610573576000610530848461079f565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561055f5780925061056d565b61056a8160016108b4565b93505b5061051c565b509392505050565b82546000908190801561069a576000610599876103e8600185610875565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b0316602084015291925090871610156105ed57604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff8088169116036106395784610610886103e8600186610875565b80546001600160d01b0392909216600160301b0265ffffffffffff90921691909117905561068a565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506103299050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610329565b600080608083901c1561070a57608092831c92015b604083901c1561071c57604092831c92015b602083901c1561072e57602092831c92015b601083901c1561074057601092831c92015b600883901c1561075257600892831c92015b600483901c1561076457600492831c92015b600283901c1561077657600292831c92015b600183901c156104165760010192915050565b60008183106107985781610512565b5090919050565b60006107ae60028484186108dd565b610512908484166108b4565b803580151581146107ca57600080fd5b919050565b803565ffffffffffff811681146107ca57600080fd5b600080600080608085870312156107fb57600080fd5b8435935061080b602086016107ba565b9250610819604086016107ba565b9150610827606086016107cf565b905092959194509250565b6000806000806080858703121561084857600080fd5b8435935060208501359250610819604086016107ba565b634e487b7160e01b600052601160045260246000fd5b818103818111156104165761041661085f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b808201808211156104165761041661085f565b634e487b7160e01b600052601260045260246000fd5b6000826108fa57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220efdaf19246037c298330094d7da1816998ff0bb98fccc837a9ef05c22b5ef0fe64736f6c63430008140033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063c2ff3b9314610045578063f987f70914610067575b600080fd5b81801561005157600080fd5b506100656100603660046107e5565b61008e565b005b61007a610075366004610832565b610225565b604051901515815260200160405180910390f35b60006100986102ba565b9050831515831515036100ab575061021f565b600085815260028201602052604090206100de9083866100d4576100cf60006102de565b610316565b6100cf60016102de565b5050836101ab57600085815260018083016020526040822054835490929161010591610875565b9050600083600001828154811061011e5761011e610888565b906000526020600020015490508084600001848154811061014157610141610888565b6000918252602080832090910192909255828152600186019091526040902083905583548490806101745761017461089e565b60019003818190600052602060002001600090559055836001016000898152602001908152602001600020600090555050506101e1565b80546001818101835560008381526020902090910186905581546101cf9190610875565b60008681526001830160205260409020555b847f67a3d5f523bbd1855235e1573461f352e4f47a2e67434dac8ac4cf04be557c5185604051610215911515815260200190565b60405180910390a2505b50505050565b6000806102306102ba565b9050836102415760009150506102b2565b8265ffffffffffff1685111561028057604051637669fc0f60e11b81526004810186905265ffffffffffff841660248201526044015b60405180910390fd5b6102a261028c86610331565b6000888152600284016020526040902090610364565b6001600160d01b03166001149150505b949350505050565b7fb5b8d618af1ffb8d5bcc4bd23f445ba34ed08d7a16d1e1b5411cfbe7913e590090565b60006001600160d01b03821115610312576040516306dfcc6560e41b815260d0600482015260248101839052604401610277565b5090565b60008061032485858561041c565b915091505b935093915050565b600065ffffffffffff821115610312576040516306dfcc6560e41b81526030600482015260248101839052604401610277565b8154600090818160058111156103c357600061037f8461042a565b6103899085610875565b60008881526020902090915081015465ffffffffffff90811690871610156103b3578091506103c1565b6103be8160016108b4565b92505b505b60006103d187878585610519565b9050801561040c576103f6876103e8600184610875565b600091825260209091200190565b54600160301b90046001600160d01b031661040f565b60005b9450505050505b92915050565b60008061032485858561057b565b60008160000361043c57506000919050565b60006001610449846106f5565b901c6001901b90506001818481610462576104626108c7565b048201901c9050600181848161047a5761047a6108c7565b048201901c90506001818481610492576104926108c7565b048201901c905060018184816104aa576104aa6108c7565b048201901c905060018184816104c2576104c26108c7565b048201901c905060018184816104da576104da6108c7565b048201901c905060018184816104f2576104f26108c7565b048201901c90506105128182858161050c5761050c6108c7565b04610789565b9392505050565b60005b81831015610573576000610530848461079f565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561055f5780925061056d565b61056a8160016108b4565b93505b5061051c565b509392505050565b82546000908190801561069a576000610599876103e8600185610875565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b0316602084015291925090871610156105ed57604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff8088169116036106395784610610886103e8600186610875565b80546001600160d01b0392909216600160301b0265ffffffffffff90921691909117905561068a565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506103299050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081610329565b600080608083901c1561070a57608092831c92015b604083901c1561071c57604092831c92015b602083901c1561072e57602092831c92015b601083901c1561074057601092831c92015b600883901c1561075257600892831c92015b600483901c1561076457600492831c92015b600283901c1561077657600292831c92015b600183901c156104165760010192915050565b60008183106107985781610512565b5090919050565b60006107ae60028484186108dd565b610512908484166108b4565b803580151581146107ca57600080fd5b919050565b803565ffffffffffff811681146107ca57600080fd5b600080600080608085870312156107fb57600080fd5b8435935061080b602086016107ba565b9250610819604086016107ba565b9150610827606086016107cf565b905092959194509250565b6000806000806080858703121561084857600080fd5b8435935060208501359250610819604086016107ba565b634e487b7160e01b600052601160045260246000fd5b818103818111156104165761041661085f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b808201808211156104165761041661085f565b634e487b7160e01b600052601260045260246000fd5b6000826108fa57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220efdaf19246037c298330094d7da1816998ff0bb98fccc837a9ef05c22b5ef0fe64736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}