UNPKG

@bitriel/governance

Version:

On-chain DAO governance for Bitriel Protocol

1,472 lines 35.5 kB
{ "compiler": { "version": "0.8.4+commit.c7e474f2" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "contract IVotes", "name": "_token", "type": "address" }, { "internalType": "contract TimelockController", "name": "_timelock", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "ProposalCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "proposer", "type": "address" }, { "indexed": false, "internalType": "address[]", "name": "targets", "type": "address[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "indexed": false, "internalType": "string[]", "name": "signatures", "type": "string[]" }, { "indexed": false, "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "indexed": false, "internalType": "uint256", "name": "startBlock", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endBlock", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "description", "type": "string" } ], "name": "ProposalCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "eta", "type": "uint256" } ], "name": "ProposalQueued", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldProposalThreshold", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newProposalThreshold", "type": "uint256" } ], "name": "ProposalThresholdSet", "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": false, "internalType": "address", "name": "oldTimelock", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newTimelock", "type": "address" } ], "name": "TimelockChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "voter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "support", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "weight", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "reason", "type": "string" } ], "name": "VoteCast", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldVotingDelay", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotingDelay", "type": "uint256" } ], "name": "VotingDelaySet", "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" }, { "inputs": [], "name": "BALLOT_TYPEHASH", "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": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "uint8", "name": "support", "type": "uint8" } ], "name": "castVote", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "uint8", "name": "support", "type": "uint8" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "castVoteBySig", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "uint8", "name": "support", "type": "uint8" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "castVoteWithReason", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "internalType": "bytes32", "name": "descriptionHash", "type": "bytes32" } ], "name": "execute", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "execute", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "getActions", "outputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "string[]", "name": "signatures", "type": "string[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "address", "name": "voter", "type": "address" } ], "name": "getReceipt", "outputs": [ { "components": [ { "internalType": "bool", "name": "hasVoted", "type": "bool" }, { "internalType": "uint8", "name": "support", "type": "uint8" }, { "internalType": "uint96", "name": "votes", "type": "uint96" } ], "internalType": "struct IGovernorCompatibilityBravo.Receipt", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasVoted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "internalType": "bytes32", "name": "descriptionHash", "type": "bytes32" } ], "name": "hashProposal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "latestProposalIds", "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": "proposalCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "proposalDeadline", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "proposalEta", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "proposalSnapshot", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposalThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "proposals", "outputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address", "name": "proposer", "type": "address" }, { "internalType": "uint256", "name": "eta", "type": "uint256" }, { "internalType": "uint256", "name": "startBlock", "type": "uint256" }, { "internalType": "uint256", "name": "endBlock", "type": "uint256" }, { "internalType": "uint256", "name": "forVotes", "type": "uint256" }, { "internalType": "uint256", "name": "againstVotes", "type": "uint256" }, { "internalType": "uint256", "name": "abstainVotes", "type": "uint256" }, { "internalType": "bool", "name": "canceled", "type": "bool" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "internalType": "string", "name": "description", "type": "string" } ], "name": "propose", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "string[]", "name": "signatures", "type": "string[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "internalType": "string", "name": "description", "type": "string" } ], "name": "propose", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "calldatas", "type": "bytes[]" }, { "internalType": "bytes32", "name": "descriptionHash", "type": "bytes32" } ], "name": "queue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "queue", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "quorumNumerator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "quorumVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "relay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newProposalThreshold", "type": "uint256" } ], "name": "setProposalThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVotingDelay", "type": "uint256" } ], "name": "setVotingDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newVotingPeriod", "type": "uint256" } ], "name": "setVotingPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "proposalId", "type": "uint256" } ], "name": "state", "outputs": [ { "internalType": "enum IGovernor.ProposalState", "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": "timelock", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IVotes", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256" } ], "name": "updateQuorumNumerator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract TimelockController", "name": "newTimelock", "type": "address" } ], "name": "updateTimelock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingDelay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "devdoc": { "kind": "dev", "methods": { "COUNTING_MODE()": { "details": "A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class." }, "cancel(uint256)": { "details": "Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold." }, "castVote(uint256,uint8)": { "details": "See {IGovernor-castVote}." }, "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)": { "details": "See {IGovernor-castVoteBySig}." }, "castVoteWithReason(uint256,uint8,string)": { "details": "See {IGovernor-castVoteWithReason}." }, "execute(address[],uint256[],bytes[],bytes32)": { "details": "See {IGovernor-execute}." }, "execute(uint256)": { "details": "See {IGovernorCompatibilityBravo-execute}." }, "getActions(uint256)": { "details": "See {IGovernorCompatibilityBravo-getActions}." }, "getReceipt(uint256,address)": { "details": "See {IGovernorCompatibilityBravo-getReceipt}." }, "hasVoted(uint256,address)": { "details": "See {IGovernor-hasVoted}." }, "hashProposal(address[],uint256[],bytes[],bytes32)": { "details": "See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors accross multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts." }, "name()": { "details": "See {IGovernor-name}." }, "proposalDeadline(uint256)": { "details": "See {IGovernor-proposalDeadline}." }, "proposalEta(uint256)": { "details": "Public accessor to check the eta of a queued proposal" }, "proposalSnapshot(uint256)": { "details": "See {IGovernor-proposalSnapshot}." }, "proposals(uint256)": { "details": "See {IGovernorCompatibilityBravo-proposals}." }, "propose(address[],uint256[],string[],bytes[],string)": { "details": "See {IGovernorCompatibilityBravo-propose}." }, "queue(address[],uint256[],bytes[],bytes32)": { "details": "Function to queue a proposal to the timelock." }, "queue(uint256)": { "details": "See {IGovernorCompatibilityBravo-queue}." }, "quorumDenominator()": { "details": "Returns the quorum denominator. Defaults to 100, but may be overridden." }, "quorumNumerator()": { "details": "Returns the current quorum numerator. See {quorumDenominator}." }, "quorumVotes()": { "details": "See {IGovernorCompatibilityBravo-quorumVotes}." }, "relay(address,uint256,bytes)": { "details": "Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant." }, "setProposalThreshold(uint256)": { "details": "Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event." }, "setVotingDelay(uint256)": { "details": "Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event." }, "setVotingPeriod(uint256)": { "details": "Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event." }, "timelock()": { "details": "Public accessor to check the address of the timelock" }, "updateQuorumNumerator(uint256)": { "details": "Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator." }, "updateTimelock(address)": { "details": "Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals." }, "version()": { "details": "See {IGovernor-version}." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "COUNTING_MODE()": { "notice": "module:voting" }, "latestProposalIds(address)": { "notice": "The latest proposal for each proposer" }, "proposalCount()": { "notice": "The total number of proposals" } }, "version": 1 } }, "settings": { "compilationTarget": { "contracts/BitrielGovernance.sol": "BitrielGovernor" }, "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs" }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "@openzeppelin/contracts/access/AccessControl.sol": { "keccak256": "0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84", "license": "MIT", "urls": [ "bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a", "dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK" ] }, "@openzeppelin/contracts/access/IAccessControl.sol": { "keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57", "license": "MIT", "urls": [ "bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a", "dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh" ] }, "@openzeppelin/contracts/governance/Governor.sol": { "keccak256": "0xfaf7663a441cf4161aeceda4907949d537d409b4348e6b242b2a74b4a2d56ce2", "license": "MIT", "urls": [ "bzz-raw://8f8449e1799d6f469b7512fd004add19cf06aeca4ca56209b210eadbdd45b4ec", "dweb:/ipfs/QmbCrDbU15EbfwPVKBwMDqMouPLE4o7eofFCzTg3MLRsLz" ] }, "@openzeppelin/contracts/governance/IGovernor.sol": { "keccak256": "0x4a3702e2556bc04120a353119d50cb5edbc6f5c9c5504b04e598b9195b0e5471", "license": "MIT", "urls": [ "bzz-raw://4b635d424a6bfb9a7b0c41dd1bef569cbc35784746900dc59f96a93f4e5aec07", "dweb:/ipfs/QmZikwbT5GzxHA71ExAEnsRC2DHKDg1hdoRLkjJ1XndDM8" ] }, "@openzeppelin/contracts/governance/TimelockController.sol": { "keccak256": "0x61357e3fe6a0a93c779bc75f730d219458b268ffd19c0c0a6f31c7eb0f435466", "license": "MIT", "urls": [ "bzz-raw://510ed36606d4602eb167a9c66c3ccfcc863061ed64c7cd778729cd866b02e88e", "dweb:/ipfs/QmTCu2EYrP5jRhwK7zSdGyezANdb1xfP55zyLnfe8MAYCL" ] }, "@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol": { "keccak256": "0xb97830bc09c7b328e4134528069a2ce6f9b3800af2a83e8d676bcb02ffcd3fd6", "license": "MIT", "urls": [ "bzz-raw://55e9377e3aa292c5ccdac1b798083903f563e32452644db93ef47a47b34490f4", "dweb:/ipfs/QmbEa9RDcxGUPUztGaN5rn4wvuoEiJ3cB3ekEDngyc2u5M" ] }, "@openzeppelin/contracts/governance/compatibility/IGovernorCompatibilityBravo.sol": { "keccak256": "0xdea65ff0ab861d22fd79938e8c101243c073e20b4842cb80809d5ff8fd4fa605", "license": "MIT", "urls": [ "bzz-raw://8bae74fe80dd57f46765355849a82ffd1ebc3e95516943d2b60271bcbb678d3e", "dweb:/ipfs/QmSVin53Fot6tF6iSb2Vx3mrFEMZ3WPKjzyvgL1vVwyX8y" ] }, "@openzeppelin/contracts/governance/extensions/GovernorSettings.sol": { "keccak256": "0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9", "license": "MIT", "urls": [ "bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd", "dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4" ] }, "@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol": { "keccak256": "0x027e928dff85e88a4c24d5530f61fd6db43052e1430f3f3c7469b6d54ed87f87", "license": "MIT", "urls": [ "bzz-raw://60ddacd61e801ca58ffb97dfe82af44c92b09148f936254405e2721e8b8c2070", "dweb:/ipfs/QmPHkpauTUa8UrPYCjFwKYiar1AzT2tmX7T1XjczwdcD33" ] }, "@openzeppelin/contracts/governance/extensions/GovernorVotes.sol": { "keccak256": "0x8f181616d38bc85021c06f1b3acce5ee05339864416b2d328948fb46a378c77f", "license": "MIT", "urls": [ "bzz-raw://e67f3acc42fc19f8c7ed2f56c3d881bfa771b1ce2854e1100a086dc0b6cb5b30", "dweb:/ipfs/QmPAd8sy6t5Ck3wC7WyzECbVGYPfV6WNius4UoH2rzc7yp" ] }, "@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol": { "keccak256": "0xc3dee116eda4152b8e6ff4b51cc9cce35bc9ce27b1ea91e95f7f381315bcb78d", "license": "MIT", "urls": [ "bzz-raw://b42a49c70f50b2fc56a2fe58ee9e9a4b0d4250223e3b3001d5c047fa9293f65b", "dweb:/ipfs/QmdadAsLSAYFingn2khRfh5NFUvmETRTyig9Fh3i4skrPY" ] }, "@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol": { "keccak256": "0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974", "license": "MIT", "urls": [ "bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614", "dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4" ] }, "@openzeppelin/contracts/governance/utils/IVotes.sol": { "keccak256": "0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0", "license": "MIT", "urls": [ "bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86", "dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY" ] }, "@openzeppelin/contracts/utils/Address.sol": { "keccak256": "0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87", "license": "MIT", "urls": [ "bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58", "dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV" ] }, "@openzeppelin/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "license": "MIT", "urls": [ "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" ] }, "@openzeppelin/contracts/utils/Counters.sol": { "keccak256": "0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1", "license": "MIT", "urls": [ "bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee", "dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu" ] }, "@openzeppelin/contracts/utils/Strings.sol": { "keccak256": "0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45", "license": "MIT", "urls": [ "bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30", "dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2" ] }, "@openzeppelin/contracts/utils/Timers.sol": { "keccak256": "0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14", "license": "MIT", "urls": [ "bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118", "dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G" ] }, "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { "keccak256": "0x3c07f43e60e099b3b157243b3152722e73b80eeb7985c2cd73712828d7f7da29", "license": "MIT", "urls": [ "bzz-raw://466ffb5a6e3bd65fffd996f9287ffd240ea21588a338c6efe143d94eaed014a7", "dweb:/ipfs/Qmans3vvPJZcvxe9KLAPc9Xwe4TFVTJdzaQGpi62Vrhoe2" ] }, "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol": { "keccak256": "0x6688fad58b9ec0286d40fa957152e575d5d8bd4c3aa80985efdb11b44f776ae7", "license": "MIT", "urls": [ "bzz-raw://8bc00ab7f133cdaafd212a5cc6a16c8d37319721105d130c8e5af0c4e8f170ba", "dweb:/ipfs/QmVmf6LVMfFiEkvKYLzSv3bGHzymEW93AcUuFrNUdY3NtT" ] }, "@openzeppelin/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "license": "MIT", "urls": [ "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" ] }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "license": "MIT", "urls": [ "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" ] }, "@openzeppelin/contracts/utils/math/SafeCast.sol": { "keccak256": "0x5c6caab697d302ad7eb59c234a4d2dbc965c1bae87709bd2850060b7695b28c7", "license": "MIT", "urls": [ "bzz-raw://fb62abcee612c175f1b9bc70e5dfe5bd23473c99987ade6e80e291f68dc60ff1", "dweb:/ipfs/QmZCMajhG7FtRYNDwBchXN89mXR6HLPVzr9732qfUdNf9E" ] }, "contracts/BitrielGovernance.sol": { "keccak256": "0x5d51769d5f1e983a5c65ac5b36c6d435cc699a0a8b9d2da8cc0c3404152c41f3", "license": "MIT", "urls": [ "bzz-raw://2602262d126fd2dabff426f9a0d2ce2f64b446a6175170f9a1b9c79ffc0d3eff", "dweb:/ipfs/QmYWFWCwyd8wtefhWmt819DrhbDsfSBVK4D89eJg8YXrZG" ] } }, "version": 1 }