UNPKG

@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
{ "_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": {} }