@bitriel/governance
Version:
On-chain DAO governance for Bitriel Protocol
1,472 lines • 35.5 kB
JSON
{
"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
}