[
  {
    "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": []
  }
]