UNPKG

@vechain/vebetterdao-contracts

Version:

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

145 lines (144 loc) 14.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "VotesQuorumFractionUtils", "sourceName": "contracts/x-allocation-voting-governance/libraries/VotesQuorumFractionUtils.sol", "abi": [ { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "quorumNumerator", "type": "uint256" }, { "internalType": "uint256", "name": "quorumDenominator", "type": "uint256" } ], "name": "GovernorInvalidQuorumFraction", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldQuorumNumerator", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256" } ], "name": "QuorumNumeratorUpdated", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "quorum", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "quorumDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "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": [], "name": "quorumPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x610aa861003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c80634fa76ec91461007c57806360c4247f1461009657806397c3d334146100a9578063a7713a701461007c578063af741595146100b0578063bd88fe32146100d2578063f8ce560a146100f2575b600080fd5b610084610105565b60405190815260200160405180910390f35b6100846100a4366004610936565b61012a565b6064610084565b8180156100bc57600080fd5b506100d06100cb36600461094f565b6101c3565b005b8180156100de57600080fd5b506100d06100ed36600461094f565b610244565b610084610100366004610936565b6102ca565b600080610110610411565b905061011b81610435565b6001600160d01b031691505090565b600080610135610411565b80549091506000826101486001846109a0565b81548110610158576101586109b3565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b031686821161019c576001600160d01b03169695505050505050565b6101af6101a88861047d565b86906104b4565b6001600160d01b0316979650505050505050565b60006101cd610411565b90506064808411156101ff57838160405163243e544560e01b81526004016101f69291906109c9565b60405180910390fd5b6102148361020c8661055e565b849190610592565b5050600080516020610a538339815191526000856040516102369291906109c9565b60405180910390a150505050565b60648083111561026b57828160405163243e544560e01b81526004016101f69291906109c9565b6000610275610411565b9050600061028282610435565b6001600160d01b0316905061029a8461020c8761055e565b5050600080516020610a5383398151915281866040516102bb9291906109c9565b60405180910390a15050505050565b60007f6eb1bf0a160cdf1b5e63f5e5c6b310f6c2542cd9e2a47ff1bc977c526dfab500816102f6610411565b8054909150600090818361030b6001846109a0565b8154811061031b5761031b6109b3565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b031688821161035d57806001600160d01b0316945061037c565b6103706103698a61047d565b87906104b4565b6001600160d01b031694505b50505050610388606490565b8354604051632394e7a360e21b81526004810188905283916001600160a01b031690638e539e8c90602401602060405180830381865afa1580156103d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f491906109d7565b6103fe91906109f0565b6104089190610a1d565b95945050505050565b7f49d99284d013647f52e2a267fd5944583bd36be17443e784ec3e86bbd4c3240090565b805460009080156104735761045d8361044f6001846109a0565b600091825260209091200190565b54600160301b90046001600160d01b0316610476565b60005b9392505050565b600065ffffffffffff8211156104b0576040516306dfcc6560e41b815260306004820152602481018390526044016101f6565b5090565b8154600090818160058111156105135760006104cf846105ad565b6104d990856109a0565b60008881526020902090915081015465ffffffffffff908116908716101561050357809150610511565b61050e816001610a3f565b92505b505b600061052187878585610695565b9050801561054e576105388761044f6001846109a0565b54600160301b90046001600160d01b0316610551565b60005b9450505050505b92915050565b60006001600160d01b038211156104b0576040516306dfcc6560e41b815260d06004820152602481018390526044016101f6565b6000806105a08585856106f7565b915091505b935093915050565b6000816000036105bf57506000919050565b600060016105cc84610871565b901c6001901b905060018184816105e5576105e5610a07565b048201901c905060018184816105fd576105fd610a07565b048201901c9050600181848161061557610615610a07565b048201901c9050600181848161062d5761062d610a07565b048201901c9050600181848161064557610645610a07565b048201901c9050600181848161065d5761065d610a07565b048201901c9050600181848161067557610675610a07565b048201901c90506104768182858161068f5761068f610a07565b04610905565b60005b818310156106ef5760006106ac848461091b565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156106db578092506106e9565b6106e6816001610a3f565b93505b50610698565b509392505050565b8254600090819080156108165760006107158761044f6001856109a0565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b03166020840152919250908716101561076957604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff8088169116036107b5578461078c8861044f6001866109a0565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055610806565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506105a59050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816105a5565b600080608083901c1561088657608092831c92015b604083901c1561089857604092831c92015b602083901c156108aa57602092831c92015b601083901c156108bc57601092831c92015b600883901c156108ce57600892831c92015b600483901c156108e057600492831c92015b600283901c156108f257600292831c92015b600183901c156105585760010192915050565b60008183106109145781610476565b5090919050565b600061092a6002848418610a1d565b61047690848416610a3f565b60006020828403121561094857600080fd5b5035919050565b6000806040838503121561096257600080fd5b82359150602083013565ffffffffffff8116811461097f57600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105585761055861098a565b634e487b7160e01b600052603260045260246000fd5b918252602082015260400190565b6000602082840312156109e957600080fd5b5051919050565b80820281158282048414176105585761055861098a565b634e487b7160e01b600052601260045260246000fd5b600082610a3a57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105585761055861098a56fe0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997a2646970667358221220624d0d5490f0cf00bca421e360dcf499bf7fbe2123d0d5e1130e3945f3eaf39c64736f6c63430008140033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c80634fa76ec91461007c57806360c4247f1461009657806397c3d334146100a9578063a7713a701461007c578063af741595146100b0578063bd88fe32146100d2578063f8ce560a146100f2575b600080fd5b610084610105565b60405190815260200160405180910390f35b6100846100a4366004610936565b61012a565b6064610084565b8180156100bc57600080fd5b506100d06100cb36600461094f565b6101c3565b005b8180156100de57600080fd5b506100d06100ed36600461094f565b610244565b610084610100366004610936565b6102ca565b600080610110610411565b905061011b81610435565b6001600160d01b031691505090565b600080610135610411565b80549091506000826101486001846109a0565b81548110610158576101586109b3565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b031686821161019c576001600160d01b03169695505050505050565b6101af6101a88861047d565b86906104b4565b6001600160d01b0316979650505050505050565b60006101cd610411565b90506064808411156101ff57838160405163243e544560e01b81526004016101f69291906109c9565b60405180910390fd5b6102148361020c8661055e565b849190610592565b5050600080516020610a538339815191526000856040516102369291906109c9565b60405180910390a150505050565b60648083111561026b57828160405163243e544560e01b81526004016101f69291906109c9565b6000610275610411565b9050600061028282610435565b6001600160d01b0316905061029a8461020c8761055e565b5050600080516020610a5383398151915281866040516102bb9291906109c9565b60405180910390a15050505050565b60007f6eb1bf0a160cdf1b5e63f5e5c6b310f6c2542cd9e2a47ff1bc977c526dfab500816102f6610411565b8054909150600090818361030b6001846109a0565b8154811061031b5761031b6109b3565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b031688821161035d57806001600160d01b0316945061037c565b6103706103698a61047d565b87906104b4565b6001600160d01b031694505b50505050610388606490565b8354604051632394e7a360e21b81526004810188905283916001600160a01b031690638e539e8c90602401602060405180830381865afa1580156103d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f491906109d7565b6103fe91906109f0565b6104089190610a1d565b95945050505050565b7f49d99284d013647f52e2a267fd5944583bd36be17443e784ec3e86bbd4c3240090565b805460009080156104735761045d8361044f6001846109a0565b600091825260209091200190565b54600160301b90046001600160d01b0316610476565b60005b9392505050565b600065ffffffffffff8211156104b0576040516306dfcc6560e41b815260306004820152602481018390526044016101f6565b5090565b8154600090818160058111156105135760006104cf846105ad565b6104d990856109a0565b60008881526020902090915081015465ffffffffffff908116908716101561050357809150610511565b61050e816001610a3f565b92505b505b600061052187878585610695565b9050801561054e576105388761044f6001846109a0565b54600160301b90046001600160d01b0316610551565b60005b9450505050505b92915050565b60006001600160d01b038211156104b0576040516306dfcc6560e41b815260d06004820152602481018390526044016101f6565b6000806105a08585856106f7565b915091505b935093915050565b6000816000036105bf57506000919050565b600060016105cc84610871565b901c6001901b905060018184816105e5576105e5610a07565b048201901c905060018184816105fd576105fd610a07565b048201901c9050600181848161061557610615610a07565b048201901c9050600181848161062d5761062d610a07565b048201901c9050600181848161064557610645610a07565b048201901c9050600181848161065d5761065d610a07565b048201901c9050600181848161067557610675610a07565b048201901c90506104768182858161068f5761068f610a07565b04610905565b60005b818310156106ef5760006106ac848461091b565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156106db578092506106e9565b6106e6816001610a3f565b93505b50610698565b509392505050565b8254600090819080156108165760006107158761044f6001856109a0565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b03166020840152919250908716101561076957604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff8088169116036107b5578461078c8861044f6001866109a0565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055610806565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506105a59050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816105a5565b600080608083901c1561088657608092831c92015b604083901c1561089857604092831c92015b602083901c156108aa57602092831c92015b601083901c156108bc57601092831c92015b600883901c156108ce57600892831c92015b600483901c156108e057600492831c92015b600283901c156108f257600292831c92015b600183901c156105585760010192915050565b60008183106109145781610476565b5090919050565b600061092a6002848418610a1d565b61047690848416610a3f565b60006020828403121561094857600080fd5b5035919050565b6000806040838503121561096257600080fd5b82359150602083013565ffffffffffff8116811461097f57600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105585761055861098a565b634e487b7160e01b600052603260045260246000fd5b918252602082015260400190565b6000602082840312156109e957600080fd5b5051919050565b80820281158282048414176105585761055861098a565b634e487b7160e01b600052601260045260246000fd5b600082610a3a57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105585761055861098a56fe0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997a2646970667358221220624d0d5490f0cf00bca421e360dcf499bf7fbe2123d0d5e1130e3945f3eaf39c64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }