[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "FastUpdateFeedRemoved",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "votingRoundId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "bytes21",
        "name": "id",
        "type": "bytes21"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "int8",
        "name": "decimals",
        "type": "int8"
      }
    ],
    "name": "FastUpdateFeedReset",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "votingEpochId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "feeds",
        "type": "uint256[]"
      },
      {
        "indexed": false,
        "internalType": "int8[]",
        "name": "decimals",
        "type": "int8[]"
      }
    ],
    "name": "FastUpdateFeeds",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "votingRoundId",
        "type": "uint32"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "signingPolicyAddress",
        "type": "address"
      }
    ],
    "name": "FastUpdateFeedsSubmitted",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_blockNum",
        "type": "uint256"
      }
    ],
    "name": "blockScoreCutoff",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_cutoff",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "currentRewardEpochId",
    "outputs": [
      {
        "internalType": "uint24",
        "name": "",
        "type": "uint24"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "currentScoreCutoff",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_cutoff",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_signingPolicyAddress",
        "type": "address"
      }
    ],
    "name": "currentSortitionWeight",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_weight",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "fetchAllCurrentFeeds",
    "outputs": [
      {
        "internalType": "bytes21[]",
        "name": "_feedIds",
        "type": "bytes21[]"
      },
      {
        "internalType": "uint256[]",
        "name": "_feeds",
        "type": "uint256[]"
      },
      {
        "internalType": "int8[]",
        "name": "_decimals",
        "type": "int8[]"
      },
      {
        "internalType": "uint64",
        "name": "_timestamp",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "_indices",
        "type": "uint256[]"
      }
    ],
    "name": "fetchCurrentFeeds",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_feeds",
        "type": "uint256[]"
      },
      {
        "internalType": "int8[]",
        "name": "_decimals",
        "type": "int8[]"
      },
      {
        "internalType": "uint64",
        "name": "_timestamp",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_historySize",
        "type": "uint256"
      }
    ],
    "name": "numberOfUpdates",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "_noOfUpdates",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_blockNumber",
        "type": "uint256"
      }
    ],
    "name": "numberOfUpdatesInBlock",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "_noOfUpdates",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "submissionWindow",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "sortitionBlock",
            "type": "uint256"
          },
          {
            "components": [
              {
                "internalType": "uint256",
                "name": "replicate",
                "type": "uint256"
              },
              {
                "components": [
                  {
                    "internalType": "uint256",
                    "name": "x",
                    "type": "uint256"
                  },
                  {
                    "internalType": "uint256",
                    "name": "y",
                    "type": "uint256"
                  }
                ],
                "internalType": "struct G1Point",
                "name": "gamma",
                "type": "tuple"
              },
              {
                "internalType": "uint256",
                "name": "c",
                "type": "uint256"
              },
              {
                "internalType": "uint256",
                "name": "s",
                "type": "uint256"
              }
            ],
            "internalType": "struct SortitionCredential",
            "name": "sortitionCredential",
            "type": "tuple"
          },
          {
            "internalType": "bytes",
            "name": "deltas",
            "type": "bytes"
          },
          {
            "components": [
              {
                "internalType": "uint8",
                "name": "v",
                "type": "uint8"
              },
              {
                "internalType": "bytes32",
                "name": "r",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "s",
                "type": "bytes32"
              }
            ],
            "internalType": "struct IFastUpdater.Signature",
            "name": "signature",
            "type": "tuple"
          }
        ],
        "internalType": "struct IFastUpdater.FastUpdates",
        "name": "_updates",
        "type": "tuple"
      }
    ],
    "name": "submitUpdates",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
