{
  "abi": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "ajnaToken_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "_voterInfo",
      "inputs": [
        {
          "name": "distributionId",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "voter",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "fundingVotingPower",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "fundingRemainingVotingPower",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "screeningVotesCast",
          "type": "uint248",
          "internalType": "uint248"
        },
        {
          "name": "hasClaimedReward",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "ajnaTokenAddress",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "claimDelegateReward",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [
        {
          "name": "rewardClaimed_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "execute",
      "inputs": [
        {
          "name": "targets_",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "values_",
          "type": "uint256[]",
          "internalType": "uint256[]"
        },
        {
          "name": "calldatas_",
          "type": "bytes[]",
          "internalType": "bytes[]"
        },
        {
          "name": "descriptionHash_",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [
        {
          "name": "proposalId_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "fundTreasury",
      "inputs": [
        {
          "name": "fundingAmount_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "fundingVote",
      "inputs": [
        {
          "name": "voteParams_",
          "type": "tuple[]",
          "internalType": "struct IGrantFundState.FundingVoteParams[]",
          "components": [
            {
              "name": "proposalId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "votesUsed",
              "type": "int256",
              "internalType": "int256"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "votesCast_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "getChallengeStageStartBlock",
      "inputs": [
        {
          "name": "endBlock_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "getDelegateReward",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "voter_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "rewards_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getDescriptionHash",
      "inputs": [
        {
          "name": "description_",
          "type": "string",
          "internalType": "string"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "getDistributionId",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getDistributionPeriodInfo",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "",
          "type": "uint48",
          "internalType": "uint48"
        },
        {
          "name": "",
          "type": "uint48",
          "internalType": "uint48"
        },
        {
          "name": "",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getFundedProposalSlate",
      "inputs": [
        {
          "name": "slateHash_",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256[]",
          "internalType": "uint256[]"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getFundingStageEndBlock",
      "inputs": [
        {
          "name": "startBlock_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "getFundingVotesCast",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "tuple[]",
          "internalType": "struct IGrantFundState.FundingVoteParams[]",
          "components": [
            {
              "name": "proposalId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "votesUsed",
              "type": "int256",
              "internalType": "int256"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getHasClaimedRewards",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getProposalInfo",
      "inputs": [
        {
          "name": "proposalId_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "",
          "type": "int128",
          "internalType": "int128"
        },
        {
          "name": "",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getScreeningStageEndBlock",
      "inputs": [
        {
          "name": "startBlock_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "getScreeningVotesCast",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getSlateHash",
      "inputs": [
        {
          "name": "proposalIds_",
          "type": "uint256[]",
          "internalType": "uint256[]"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "getStage",
      "inputs": [],
      "outputs": [
        {
          "name": "stage_",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getTopTenProposals",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint256[]",
          "internalType": "uint256[]"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getVoterInfo",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "",
          "type": "uint128",
          "internalType": "uint128"
        },
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getVotesFunding",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "votes_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getVotesScreening",
      "inputs": [
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        },
        {
          "name": "account_",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [
        {
          "name": "votes_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "hashProposal",
      "inputs": [
        {
          "name": "targets_",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "values_",
          "type": "uint256[]",
          "internalType": "uint256[]"
        },
        {
          "name": "calldatas_",
          "type": "bytes[]",
          "internalType": "bytes[]"
        },
        {
          "name": "descriptionHash_",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [
        {
          "name": "proposalId_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "pure"
    },
    {
      "type": "function",
      "name": "propose",
      "inputs": [
        {
          "name": "targets_",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "values_",
          "type": "uint256[]",
          "internalType": "uint256[]"
        },
        {
          "name": "calldatas_",
          "type": "bytes[]",
          "internalType": "bytes[]"
        },
        {
          "name": "description_",
          "type": "string",
          "internalType": "string"
        }
      ],
      "outputs": [
        {
          "name": "proposalId_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "screeningVote",
      "inputs": [
        {
          "name": "voteParams_",
          "type": "tuple[]",
          "internalType": "struct IGrantFundState.ScreeningVoteParams[]",
          "components": [
            {
              "name": "proposalId",
              "type": "uint256",
              "internalType": "uint256"
            },
            {
              "name": "votes",
              "type": "uint256",
              "internalType": "uint256"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "votesCast_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "startNewDistributionPeriod",
      "inputs": [],
      "outputs": [
        {
          "name": "newDistributionId_",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "state",
      "inputs": [
        {
          "name": "proposalId_",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint8",
          "internalType": "enum IGrantFundState.ProposalState"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "treasury",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "updateSlate",
      "inputs": [
        {
          "name": "proposalIds_",
          "type": "uint256[]",
          "internalType": "uint256[]"
        },
        {
          "name": "distributionId_",
          "type": "uint24",
          "internalType": "uint24"
        }
      ],
      "outputs": [
        {
          "name": "newTopSlate_",
          "type": "bool",
          "internalType": "bool"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "DelegateRewardClaimed",
      "inputs": [
        {
          "name": "delegateeAddress",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "distributionId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "rewardClaimed",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "DistributionPeriodStarted",
      "inputs": [
        {
          "name": "distributionId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "startBlock",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "endBlock",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FundTreasury",
      "inputs": [
        {
          "name": "amount",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "treasuryBalance",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "FundedSlateUpdated",
      "inputs": [
        {
          "name": "distributionId",
          "type": "uint256",
          "indexed": true,
          "internalType": "uint256"
        },
        {
          "name": "fundedSlateHash",
          "type": "bytes32",
          "indexed": true,
          "internalType": "bytes32"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProposalCreated",
      "inputs": [
        {
          "name": "proposalId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "proposer",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "targets",
          "type": "address[]",
          "indexed": false,
          "internalType": "address[]"
        },
        {
          "name": "values",
          "type": "uint256[]",
          "indexed": false,
          "internalType": "uint256[]"
        },
        {
          "name": "signatures",
          "type": "string[]",
          "indexed": false,
          "internalType": "string[]"
        },
        {
          "name": "calldatas",
          "type": "bytes[]",
          "indexed": false,
          "internalType": "bytes[]"
        },
        {
          "name": "startBlock",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "endBlock",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "description",
          "type": "string",
          "indexed": false,
          "internalType": "string"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ProposalExecuted",
      "inputs": [
        {
          "name": "proposalId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "VoteCast",
      "inputs": [
        {
          "name": "voter",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "proposalId",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "support",
          "type": "uint8",
          "indexed": false,
          "internalType": "uint8"
        },
        {
          "name": "weight",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "reason",
          "type": "string",
          "indexed": false,
          "internalType": "string"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "DelegateRewardInvalid",
      "inputs": []
    },
    {
      "type": "error",
      "name": "DistributionPeriodStillActive",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ExecuteProposalInvalid",
      "inputs": []
    },
    {
      "type": "error",
      "name": "FundingVoteWrongDirection",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientRemainingVotingPower",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientVotingPower",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidProposal",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidProposalSlate",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidVote",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ProposalAlreadyExists",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ProposalNotSuccessful",
      "inputs": []
    },
    {
      "type": "error",
      "name": "RewardAlreadyClaimed",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ScreeningPeriodEnded",
      "inputs": []
    }
  ]
}