[
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      }
    ],
    "name": "CommitmentMismatch",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "oracle",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "FundingFailed",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "required",
        "type": "uint256"
      }
    ],
    "name": "InsufficientGasLimit",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "required",
        "type": "uint256"
      }
    ],
    "name": "InsufficientGasPayment",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "oracle",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      }
    ],
    "name": "InsufficientOracleBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "window",
        "type": "uint256"
      }
    ],
    "name": "InvalidGasPriceHistoryWindow",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numWords",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "max",
        "type": "uint256"
      }
    ],
    "name": "InvalidNumWords",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      }
    ],
    "name": "InvalidProof",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "proofSigner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "vrfSigner",
        "type": "address"
      }
    ],
    "name": "InvalidPublicKey",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "invalid",
        "type": "address"
      }
    ],
    "name": "NotOracle",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "oracle",
        "type": "address"
      }
    ],
    "name": "OracleAlreadyRegistered",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sent",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "max",
        "type": "uint256"
      }
    ],
    "name": "OverConsumerGasLimit",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "WithdrawFailed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAddress",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint8",
        "name": "reason",
        "type": "uint8"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "target",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "gasLeft",
        "type": "uint256"
      }
    ],
    "name": "ConsumerCallbackFailed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "refundee",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "gasRefunded",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "refundedSuccessfully",
        "type": "bool"
      }
    ],
    "name": "FulfillmentGasRefunded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newWindow",
        "type": "uint256"
      }
    ],
    "name": "GasPriceHistoryWindowUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oracle",
        "type": "address"
      }
    ],
    "name": "OracleRegistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "minimumGasLimit",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "maximumGasLimit",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "maxNumWords",
        "type": "uint16"
      }
    ],
    "name": "RandomRequestLimitsUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "randomWords",
        "type": "uint256[]"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "oracle",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "callSuccess",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "fulfilledAt",
        "type": "uint256"
      }
    ],
    "name": "RandomWordsFulfilled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "callbackGasLimit",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "numWords",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "origin",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "consumer",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "nonce",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "refundee",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "gasPricePaid",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "requestedAt",
        "type": "uint256"
      }
    ],
    "name": "RandomWordsRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "signerAddress",
        "type": "address"
      }
    ],
    "name": "SignerAddressUpdated",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "callbackGasLimit",
        "type": "uint256"
      }
    ],
    "name": "calculateRequestPriceNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "payment",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "consumer",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "callbackGasLimit",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "numWords",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "refundee",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "gasPricePaid",
        "type": "uint256"
      },
      {
        "internalType": "uint256[2]",
        "name": "publicKey",
        "type": "uint256[2]"
      },
      {
        "internalType": "uint256[4]",
        "name": "proof",
        "type": "uint256[4]"
      },
      {
        "internalType": "uint256[2]",
        "name": "uPoint",
        "type": "uint256[2]"
      },
      {
        "internalType": "uint256[4]",
        "name": "vComponents",
        "type": "uint256[4]"
      },
      {
        "internalType": "uint8",
        "name": "proofCtr",
        "type": "uint8"
      }
    ],
    "name": "fulfillRandomWords",
    "outputs": [
      {
        "internalType": "bool",
        "name": "callSuccess",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      }
    ],
    "name": "isRequestPending",
    "outputs": [
      {
        "internalType": "bool",
        "name": "isPending",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "callbackGasLimit",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "numWords",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "refundee",
        "type": "address"
      }
    ],
    "name": "requestRandomnessPayInNative",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "requestId",
        "type": "uint256"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  }
]
