/**
 * This file is autogenerated by Scaffold-ETH.
 * You should not edit it manually or your changes might be overwritten.
 */
import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract";

const deployedContracts = {
  31337: {
    Decider: {
      address: "0x4b6aB5F819A515382B0dEB6935D793817bB4af28",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "_oracle",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "resolvedValue",
              type: "bool",
            },
          ],
          name: "DisputeSettled",
          type: "event",
        },
        {
          inputs: [],
          name: "oracle",
          outputs: [
            {
              internalType: "contract IOptimisticOracle",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "newOracle",
              type: "address",
            },
          ],
          name: "setOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "resolvedValue",
              type: "bool",
            },
          ],
          name: "settleDispute",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          stateMutability: "payable",
          type: "receive",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 31385,
    },
    ORA: {
      address: "0x720472c8ce72c2A2D711333e064ABD3E6BbEAdd3",
      abi: [
        {
          inputs: [],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "allowance",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "needed",
              type: "uint256",
            },
          ],
          name: "ERC20InsufficientAllowance",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "sender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "balance",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "needed",
              type: "uint256",
            },
          ],
          name: "ERC20InsufficientBalance",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "approver",
              type: "address",
            },
          ],
          name: "ERC20InvalidApprover",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "receiver",
              type: "address",
            },
          ],
          name: "ERC20InvalidReceiver",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "sender",
              type: "address",
            },
          ],
          name: "ERC20InvalidSender",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
          ],
          name: "ERC20InvalidSpender",
          type: "error",
        },
        {
          inputs: [],
          name: "EthTransferFailed",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "owner",
              type: "address",
            },
          ],
          name: "OwnableInvalidOwner",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "account",
              type: "address",
            },
          ],
          name: "OwnableUnauthorizedAccount",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "owner",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "Approval",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "EthWithdrawn",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "buyer",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "ethIn",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "oraOut",
              type: "uint256",
            },
          ],
          name: "OraPurchased",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "previousOwner",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "newOwner",
              type: "address",
            },
          ],
          name: "OwnershipTransferred",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "from",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "Transfer",
          type: "event",
        },
        {
          inputs: [],
          name: "ORA_PER_ETH",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "owner",
              type: "address",
            },
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
          ],
          name: "allowance",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "approve",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "account",
              type: "address",
            },
          ],
          name: "balanceOf",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "burn",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "buy",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [],
          name: "decimals",
          outputs: [
            {
              internalType: "uint8",
              name: "",
              type: "uint8",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "mint",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "name",
          outputs: [
            {
              internalType: "string",
              name: "",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "ethAmountWei",
              type: "uint256",
            },
          ],
          name: "quoteOra",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "pure",
          type: "function",
        },
        {
          inputs: [],
          name: "renounceOwnership",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "symbol",
          outputs: [
            {
              internalType: "string",
              name: "",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "totalSupply",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "transfer",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "from",
              type: "address",
            },
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "transferFrom",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "newOwner",
              type: "address",
            },
          ],
          name: "transferOwnership",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          stateMutability: "payable",
          type: "receive",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 31372,
    },
    OptimisticOracle: {
      address: "0x18E317A7D70d8fBf8e6E893616b52390EbBdb629",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "_decider",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "AlreadyClaimed",
          type: "error",
        },
        {
          inputs: [],
          name: "AlreadySettled",
          type: "error",
        },
        {
          inputs: [],
          name: "AssertionNotFound",
          type: "error",
        },
        {
          inputs: [],
          name: "AssertionProposed",
          type: "error",
        },
        {
          inputs: [],
          name: "AwaitingDecider",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidTime",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidValue",
          type: "error",
        },
        {
          inputs: [],
          name: "NotDisputedAssertion",
          type: "error",
        },
        {
          inputs: [],
          name: "NotProposedAssertion",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyDecider",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyOwner",
          type: "error",
        },
        {
          inputs: [],
          name: "ProposalDisputed",
          type: "error",
        },
        {
          inputs: [],
          name: "TransferFailed",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
            {
              indexed: false,
              internalType: "address",
              name: "winner",
              type: "address",
            },
          ],
          name: "AssertionSettled",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oldDecider",
              type: "address",
            },
            {
              indexed: false,
              internalType: "address",
              name: "newDecider",
              type: "address",
            },
          ],
          name: "DeciderUpdated",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              indexed: false,
              internalType: "string",
              name: "description",
              type: "string",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "reward",
              type: "uint256",
            },
          ],
          name: "EventAsserted",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "disputer",
              type: "address",
            },
          ],
          name: "OutcomeDisputed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "proposer",
              type: "address",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
          ],
          name: "OutcomeProposed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "RefundClaimed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "winner",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "RewardClaimed",
          type: "event",
        },
        {
          inputs: [],
          name: "DISPUTE_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MINIMUM_ASSERTION_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "string",
              name: "description",
              type: "string",
            },
            {
              internalType: "uint256",
              name: "startTime",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "endTime",
              type: "uint256",
            },
          ],
          name: "assertEvent",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "assertions",
          outputs: [
            {
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              internalType: "address",
              name: "proposer",
              type: "address",
            },
            {
              internalType: "address",
              name: "disputer",
              type: "address",
            },
            {
              internalType: "bool",
              name: "proposedOutcome",
              type: "bool",
            },
            {
              internalType: "bool",
              name: "resolvedOutcome",
              type: "bool",
            },
            {
              internalType: "uint256",
              name: "reward",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "bond",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "startTime",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "endTime",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "claimed",
              type: "bool",
            },
            {
              internalType: "address",
              name: "winner",
              type: "address",
            },
            {
              internalType: "string",
              name: "description",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimDisputedReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimRefund",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimUndisputedReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "decider",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "disputeOutcome",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getAssertion",
          outputs: [
            {
              components: [
                {
                  internalType: "address",
                  name: "asserter",
                  type: "address",
                },
                {
                  internalType: "address",
                  name: "proposer",
                  type: "address",
                },
                {
                  internalType: "address",
                  name: "disputer",
                  type: "address",
                },
                {
                  internalType: "bool",
                  name: "proposedOutcome",
                  type: "bool",
                },
                {
                  internalType: "bool",
                  name: "resolvedOutcome",
                  type: "bool",
                },
                {
                  internalType: "uint256",
                  name: "reward",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "bond",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "startTime",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "endTime",
                  type: "uint256",
                },
                {
                  internalType: "bool",
                  name: "claimed",
                  type: "bool",
                },
                {
                  internalType: "address",
                  name: "winner",
                  type: "address",
                },
                {
                  internalType: "string",
                  name: "description",
                  type: "string",
                },
              ],
              internalType: "struct OptimisticOracle.EventAssertion",
              name: "",
              type: "tuple",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getResolution",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getState",
          outputs: [
            {
              internalType: "enum OptimisticOracle.State",
              name: "",
              type: "uint8",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "nextAssertionId",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
          ],
          name: "proposeOutcome",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "_decider",
              type: "address",
            },
          ],
          name: "setDecider",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "resolvedOutcome",
              type: "bool",
            },
          ],
          name: "settleAssertion",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 31381,
    },
    StakingOracle: {
      address: "0xe8D2A1E88c91DCd5433208d4152Cc4F399a7e91d",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "oraTokenAddress",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "AlreadyReportedInCurrentBucket",
          type: "error",
        },
        {
          inputs: [],
          name: "BucketMedianAlreadyRecorded",
          type: "error",
        },
        {
          inputs: [],
          name: "EmptyArray",
          type: "error",
        },
        {
          inputs: [],
          name: "IndexOutOfBounds",
          type: "error",
        },
        {
          inputs: [],
          name: "InsufficientStake",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidPrice",
          type: "error",
        },
        {
          inputs: [],
          name: "MedianNotRecorded",
          type: "error",
        },
        {
          inputs: [],
          name: "NoRewardsAvailable",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeAlreadyRegistered",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeAlreadySlashed",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeDidNotReport",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeNotAtGivenIndex",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeNotRegistered",
          type: "error",
        },
        {
          inputs: [],
          name: "NotDeviated",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyPastBucketsAllowed",
          type: "error",
        },
        {
          inputs: [],
          name: "TransferFailed",
          type: "error",
        },
        {
          inputs: [],
          name: "WaitingPeriodNotOver",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "medianPrice",
              type: "uint256",
            },
          ],
          name: "BucketMedianRecorded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeExited",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "stakedAmount",
              type: "uint256",
            },
          ],
          name: "NodeRegistered",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeRewarded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeSlashed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "PriceReported",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "StakeAdded",
          type: "event",
        },
        {
          inputs: [],
          name: "BUCKET_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "INACTIVITY_PENALTY",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MAX_DEVIATION_BPS",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MINIMUM_STAKE",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MISREPORT_PENALTY",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "REWARD_PER_REPORT",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "SLASHER_REWARD_PERCENTAGE",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "WAITING_PERIOD",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "addStake",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "blockBuckets",
          outputs: [
            {
              internalType: "uint256",
              name: "medianPrice",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "claimReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "index",
              type: "uint256",
            },
          ],
          name: "exitNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "getCurrentBucketNumber",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeAddress",
              type: "address",
            },
          ],
          name: "getEffectiveStake",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getLatestPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getNodeAddresses",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getOutlierNodes",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getPastPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeAddress",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getSlashedStatus",
          outputs: [
            {
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "slashed",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "nodeAddresses",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          name: "nodes",
          outputs: [
            {
              internalType: "uint256",
              name: "stakedAmount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "lastReportedBucket",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "reportCount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "claimedReportCount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "firstBucket",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "active",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "oracleToken",
          outputs: [
            {
              internalType: "contract ORA",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "recordBucketMedian",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "registerNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
          ],
          name: "reportPrice",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeToSlash",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "reportIndex",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "nodeAddressesIndex",
              type: "uint256",
            },
          ],
          name: "slashNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 31376,
    },
    WhitelistOracle: {
      address: "0xC9a43158891282A2B1475592D5719c001986Aaec",
      abi: [
        {
          inputs: [],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "EmptyArray",
          type: "error",
        },
        {
          inputs: [],
          name: "IndexOutOfBounds",
          type: "error",
        },
        {
          inputs: [],
          name: "NoOraclesAvailable",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyOwner",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oracleAddress",
              type: "address",
            },
            {
              indexed: false,
              internalType: "address",
              name: "oracleOwner",
              type: "address",
            },
          ],
          name: "OracleAdded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oracleAddress",
              type: "address",
            },
          ],
          name: "OracleRemoved",
          type: "event",
        },
        {
          inputs: [],
          name: "STALE_DATA_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "_owner",
              type: "address",
            },
          ],
          name: "addOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "getActiveOracleNodes",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "oracles",
          outputs: [
            {
              internalType: "contract SimpleOracle",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "index",
              type: "uint256",
            },
          ],
          name: "removeOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 31357,
    },
  },
  11155111: {
    Decider: {
      address: "0x0e59BE27d04248289DE58287473E5096F5B0487C",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "_oracle",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "resolvedValue",
              type: "bool",
            },
          ],
          name: "DisputeSettled",
          type: "event",
        },
        {
          inputs: [],
          name: "oracle",
          outputs: [
            {
              internalType: "contract IOptimisticOracle",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "newOracle",
              type: "address",
            },
          ],
          name: "setOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "resolvedValue",
              type: "bool",
            },
          ],
          name: "settleDispute",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          stateMutability: "payable",
          type: "receive",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 10119863,
    },
    ORA: {
      address: "0xFdc0726E0A1b8aE6a49a37B0D7dFb443dd271c6e",
      abi: [
        {
          inputs: [],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "allowance",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "needed",
              type: "uint256",
            },
          ],
          name: "ERC20InsufficientAllowance",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "sender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "balance",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "needed",
              type: "uint256",
            },
          ],
          name: "ERC20InsufficientBalance",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "approver",
              type: "address",
            },
          ],
          name: "ERC20InvalidApprover",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "receiver",
              type: "address",
            },
          ],
          name: "ERC20InvalidReceiver",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "sender",
              type: "address",
            },
          ],
          name: "ERC20InvalidSender",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
          ],
          name: "ERC20InvalidSpender",
          type: "error",
        },
        {
          inputs: [],
          name: "EthTransferFailed",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "owner",
              type: "address",
            },
          ],
          name: "OwnableInvalidOwner",
          type: "error",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "account",
              type: "address",
            },
          ],
          name: "OwnableUnauthorizedAccount",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "owner",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "Approval",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "EthWithdrawn",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "buyer",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "ethIn",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "oraOut",
              type: "uint256",
            },
          ],
          name: "OraPurchased",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "previousOwner",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "newOwner",
              type: "address",
            },
          ],
          name: "OwnershipTransferred",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "from",
              type: "address",
            },
            {
              indexed: true,
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "Transfer",
          type: "event",
        },
        {
          inputs: [],
          name: "ORA_PER_ETH",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "owner",
              type: "address",
            },
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
          ],
          name: "allowance",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "spender",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "approve",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "account",
              type: "address",
            },
          ],
          name: "balanceOf",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "burn",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "buy",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [],
          name: "decimals",
          outputs: [
            {
              internalType: "uint8",
              name: "",
              type: "uint8",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "mint",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "name",
          outputs: [
            {
              internalType: "string",
              name: "",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "ethAmountWei",
              type: "uint256",
            },
          ],
          name: "quoteOra",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "pure",
          type: "function",
        },
        {
          inputs: [],
          name: "renounceOwnership",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "symbol",
          outputs: [
            {
              internalType: "string",
              name: "",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "totalSupply",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "transfer",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "from",
              type: "address",
            },
            {
              internalType: "address",
              name: "to",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "value",
              type: "uint256",
            },
          ],
          name: "transferFrom",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "newOwner",
              type: "address",
            },
          ],
          name: "transferOwnership",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          stateMutability: "payable",
          type: "receive",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 10119859,
    },
    OptimisticOracle: {
      address: "0x4E23664C19a80Bc8Cc12EF03d0286B9A6C88874E",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "_decider",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "AlreadyClaimed",
          type: "error",
        },
        {
          inputs: [],
          name: "AlreadySettled",
          type: "error",
        },
        {
          inputs: [],
          name: "AssertionNotFound",
          type: "error",
        },
        {
          inputs: [],
          name: "AssertionProposed",
          type: "error",
        },
        {
          inputs: [],
          name: "AwaitingDecider",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidTime",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidValue",
          type: "error",
        },
        {
          inputs: [],
          name: "NotDisputedAssertion",
          type: "error",
        },
        {
          inputs: [],
          name: "NotProposedAssertion",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyDecider",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyOwner",
          type: "error",
        },
        {
          inputs: [],
          name: "ProposalDisputed",
          type: "error",
        },
        {
          inputs: [],
          name: "TransferFailed",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
            {
              indexed: false,
              internalType: "address",
              name: "winner",
              type: "address",
            },
          ],
          name: "AssertionSettled",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oldDecider",
              type: "address",
            },
            {
              indexed: false,
              internalType: "address",
              name: "newDecider",
              type: "address",
            },
          ],
          name: "DeciderUpdated",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              indexed: false,
              internalType: "string",
              name: "description",
              type: "string",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "reward",
              type: "uint256",
            },
          ],
          name: "EventAsserted",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "disputer",
              type: "address",
            },
          ],
          name: "OutcomeDisputed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "proposer",
              type: "address",
            },
            {
              indexed: false,
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
          ],
          name: "OutcomeProposed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "RefundClaimed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "address",
              name: "winner",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "RewardClaimed",
          type: "event",
        },
        {
          inputs: [],
          name: "DISPUTE_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MINIMUM_ASSERTION_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "string",
              name: "description",
              type: "string",
            },
            {
              internalType: "uint256",
              name: "startTime",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "endTime",
              type: "uint256",
            },
          ],
          name: "assertEvent",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "assertions",
          outputs: [
            {
              internalType: "address",
              name: "asserter",
              type: "address",
            },
            {
              internalType: "address",
              name: "proposer",
              type: "address",
            },
            {
              internalType: "address",
              name: "disputer",
              type: "address",
            },
            {
              internalType: "bool",
              name: "proposedOutcome",
              type: "bool",
            },
            {
              internalType: "bool",
              name: "resolvedOutcome",
              type: "bool",
            },
            {
              internalType: "uint256",
              name: "reward",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "bond",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "startTime",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "endTime",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "claimed",
              type: "bool",
            },
            {
              internalType: "address",
              name: "winner",
              type: "address",
            },
            {
              internalType: "string",
              name: "description",
              type: "string",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimDisputedReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimRefund",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "claimUndisputedReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "decider",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "disputeOutcome",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getAssertion",
          outputs: [
            {
              components: [
                {
                  internalType: "address",
                  name: "asserter",
                  type: "address",
                },
                {
                  internalType: "address",
                  name: "proposer",
                  type: "address",
                },
                {
                  internalType: "address",
                  name: "disputer",
                  type: "address",
                },
                {
                  internalType: "bool",
                  name: "proposedOutcome",
                  type: "bool",
                },
                {
                  internalType: "bool",
                  name: "resolvedOutcome",
                  type: "bool",
                },
                {
                  internalType: "uint256",
                  name: "reward",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "bond",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "startTime",
                  type: "uint256",
                },
                {
                  internalType: "uint256",
                  name: "endTime",
                  type: "uint256",
                },
                {
                  internalType: "bool",
                  name: "claimed",
                  type: "bool",
                },
                {
                  internalType: "address",
                  name: "winner",
                  type: "address",
                },
                {
                  internalType: "string",
                  name: "description",
                  type: "string",
                },
              ],
              internalType: "struct OptimisticOracle.EventAssertion",
              name: "",
              type: "tuple",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getResolution",
          outputs: [
            {
              internalType: "bool",
              name: "",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
          ],
          name: "getState",
          outputs: [
            {
              internalType: "enum OptimisticOracle.State",
              name: "",
              type: "uint8",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "nextAssertionId",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "outcome",
              type: "bool",
            },
          ],
          name: "proposeOutcome",
          outputs: [],
          stateMutability: "payable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "_decider",
              type: "address",
            },
          ],
          name: "setDecider",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "assertionId",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "resolvedOutcome",
              type: "bool",
            },
          ],
          name: "settleAssertion",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 10119862,
    },
    StakingOracle: {
      address: "0x5221f81C7ec4937cEb44753Ec6A6d180893515B4",
      abi: [
        {
          inputs: [
            {
              internalType: "address",
              name: "oraTokenAddress",
              type: "address",
            },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "AlreadyReportedInCurrentBucket",
          type: "error",
        },
        {
          inputs: [],
          name: "BucketMedianAlreadyRecorded",
          type: "error",
        },
        {
          inputs: [],
          name: "EmptyArray",
          type: "error",
        },
        {
          inputs: [],
          name: "IndexOutOfBounds",
          type: "error",
        },
        {
          inputs: [],
          name: "InsufficientStake",
          type: "error",
        },
        {
          inputs: [],
          name: "InvalidPrice",
          type: "error",
        },
        {
          inputs: [],
          name: "MedianNotRecorded",
          type: "error",
        },
        {
          inputs: [],
          name: "NoRewardsAvailable",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeAlreadyRegistered",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeAlreadySlashed",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeDidNotReport",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeNotAtGivenIndex",
          type: "error",
        },
        {
          inputs: [],
          name: "NodeNotRegistered",
          type: "error",
        },
        {
          inputs: [],
          name: "NotDeviated",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyPastBucketsAllowed",
          type: "error",
        },
        {
          inputs: [],
          name: "TransferFailed",
          type: "error",
        },
        {
          inputs: [],
          name: "WaitingPeriodNotOver",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "medianPrice",
              type: "uint256",
            },
          ],
          name: "BucketMedianRecorded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeExited",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "stakedAmount",
              type: "uint256",
            },
          ],
          name: "NodeRegistered",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeRewarded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "NodeSlashed",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "PriceReported",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: true,
              internalType: "address",
              name: "node",
              type: "address",
            },
            {
              indexed: false,
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "StakeAdded",
          type: "event",
        },
        {
          inputs: [],
          name: "BUCKET_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "INACTIVITY_PENALTY",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MAX_DEVIATION_BPS",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MINIMUM_STAKE",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "MISREPORT_PENALTY",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "REWARD_PER_REPORT",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "SLASHER_REWARD_PERCENTAGE",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "WAITING_PERIOD",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "addStake",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "blockBuckets",
          outputs: [
            {
              internalType: "uint256",
              name: "medianPrice",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "claimReward",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "index",
              type: "uint256",
            },
          ],
          name: "exitNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "getCurrentBucketNumber",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeAddress",
              type: "address",
            },
          ],
          name: "getEffectiveStake",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getLatestPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getNodeAddresses",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getOutlierNodes",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getPastPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeAddress",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "getSlashedStatus",
          outputs: [
            {
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "slashed",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "nodeAddresses",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          name: "nodes",
          outputs: [
            {
              internalType: "uint256",
              name: "stakedAmount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "lastReportedBucket",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "reportCount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "claimedReportCount",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "firstBucket",
              type: "uint256",
            },
            {
              internalType: "bool",
              name: "active",
              type: "bool",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "oracleToken",
          outputs: [
            {
              internalType: "contract ORA",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
          ],
          name: "recordBucketMedian",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "amount",
              type: "uint256",
            },
          ],
          name: "registerNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "price",
              type: "uint256",
            },
          ],
          name: "reportPrice",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "nodeToSlash",
              type: "address",
            },
            {
              internalType: "uint256",
              name: "bucketNumber",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "reportIndex",
              type: "uint256",
            },
            {
              internalType: "uint256",
              name: "nodeAddressesIndex",
              type: "uint256",
            },
          ],
          name: "slashNode",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 10119860,
    },
    WhitelistOracle: {
      address: "0x7ac886207F1fea709117b73B8c1e97c40f46ad9c",
      abi: [
        {
          inputs: [],
          stateMutability: "nonpayable",
          type: "constructor",
        },
        {
          inputs: [],
          name: "EmptyArray",
          type: "error",
        },
        {
          inputs: [],
          name: "IndexOutOfBounds",
          type: "error",
        },
        {
          inputs: [],
          name: "NoOraclesAvailable",
          type: "error",
        },
        {
          inputs: [],
          name: "OnlyOwner",
          type: "error",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oracleAddress",
              type: "address",
            },
            {
              indexed: false,
              internalType: "address",
              name: "oracleOwner",
              type: "address",
            },
          ],
          name: "OracleAdded",
          type: "event",
        },
        {
          anonymous: false,
          inputs: [
            {
              indexed: false,
              internalType: "address",
              name: "oracleAddress",
              type: "address",
            },
          ],
          name: "OracleRemoved",
          type: "event",
        },
        {
          inputs: [],
          name: "STALE_DATA_WINDOW",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "address",
              name: "_owner",
              type: "address",
            },
          ],
          name: "addOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
        {
          inputs: [],
          name: "getActiveOracleNodes",
          outputs: [
            {
              internalType: "address[]",
              name: "",
              type: "address[]",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "getPrice",
          outputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "",
              type: "uint256",
            },
          ],
          name: "oracles",
          outputs: [
            {
              internalType: "contract SimpleOracle",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [],
          name: "owner",
          outputs: [
            {
              internalType: "address",
              name: "",
              type: "address",
            },
          ],
          stateMutability: "view",
          type: "function",
        },
        {
          inputs: [
            {
              internalType: "uint256",
              name: "index",
              type: "uint256",
            },
          ],
          name: "removeOracle",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
        },
      ],
      inheritedFunctions: {},
      deployedOnBlock: 10119858,
    },
  },
} as const;

export default deployedContracts satisfies GenericContractsDeclaration;
