[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "oldDefaultGasLimit",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "newDefaultGasLimit",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "ProviderDefaultGasLimitUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "oldFeeManager",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "newFeeManager",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "ProviderFeeManagerUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "oldFee",
        "type": "uint128"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "newFee",
        "type": "uint128"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "ProviderFeeUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "oldMaxNumHashes",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "newMaxNumHashes",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "ProviderMaxNumHashesAdvanced",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "oldUri",
        "type": "bytes"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "newUri",
        "type": "bytes"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "ProviderUriUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "Registered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "caller",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint64",
        "name": "sequenceNumber",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "userContribution",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "Requested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "caller",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint64",
        "name": "sequenceNumber",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "randomNumber",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "userContribution",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "providerContribution",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "callbackFailed",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "callbackReturnValue",
        "type": "bytes"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "callbackGasUsed",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "Revealed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint128",
        "name": "withdrawnAmount",
        "type": "uint128"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "extraArgs",
        "type": "bytes"
      }
    ],
    "name": "Withdrawal",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "getDefaultProvider",
    "outputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      }
    ],
    "name": "getFeeV2",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "feeAmount",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getFeeV2",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "feeAmount",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      }
    ],
    "name": "getFeeV2",
    "outputs": [
      {
        "internalType": "uint128",
        "name": "feeAmount",
        "type": "uint128"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      }
    ],
    "name": "getProviderInfoV2",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint128",
            "name": "feeInWei",
            "type": "uint128"
          },
          {
            "internalType": "uint128",
            "name": "accruedFeesInWei",
            "type": "uint128"
          },
          {
            "internalType": "bytes32",
            "name": "originalCommitment",
            "type": "bytes32"
          },
          {
            "internalType": "uint64",
            "name": "originalCommitmentSequenceNumber",
            "type": "uint64"
          },
          {
            "internalType": "bytes",
            "name": "commitmentMetadata",
            "type": "bytes"
          },
          {
            "internalType": "bytes",
            "name": "uri",
            "type": "bytes"
          },
          {
            "internalType": "uint64",
            "name": "endSequenceNumber",
            "type": "uint64"
          },
          {
            "internalType": "uint64",
            "name": "sequenceNumber",
            "type": "uint64"
          },
          {
            "internalType": "bytes32",
            "name": "currentCommitment",
            "type": "bytes32"
          },
          {
            "internalType": "uint64",
            "name": "currentCommitmentSequenceNumber",
            "type": "uint64"
          },
          {
            "internalType": "address",
            "name": "feeManager",
            "type": "address"
          },
          {
            "internalType": "uint32",
            "name": "maxNumHashes",
            "type": "uint32"
          },
          {
            "internalType": "uint32",
            "name": "defaultGasLimit",
            "type": "uint32"
          }
        ],
        "internalType": "struct EntropyStructsV2.ProviderInfo",
        "name": "info",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "internalType": "uint64",
        "name": "sequenceNumber",
        "type": "uint64"
      }
    ],
    "name": "getRequestV2",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "provider",
            "type": "address"
          },
          {
            "internalType": "uint64",
            "name": "sequenceNumber",
            "type": "uint64"
          },
          {
            "internalType": "uint32",
            "name": "numHashes",
            "type": "uint32"
          },
          {
            "internalType": "bytes32",
            "name": "commitment",
            "type": "bytes32"
          },
          {
            "internalType": "uint64",
            "name": "blockNumber",
            "type": "uint64"
          },
          {
            "internalType": "address",
            "name": "requester",
            "type": "address"
          },
          {
            "internalType": "bool",
            "name": "useBlockhash",
            "type": "bool"
          },
          {
            "internalType": "uint8",
            "name": "callbackStatus",
            "type": "uint8"
          },
          {
            "internalType": "uint16",
            "name": "gasLimit10k",
            "type": "uint16"
          }
        ],
        "internalType": "struct EntropyStructsV2.Request",
        "name": "req",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      }
    ],
    "name": "requestV2",
    "outputs": [
      {
        "internalType": "uint64",
        "name": "assignedSequenceNumber",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      }
    ],
    "name": "requestV2",
    "outputs": [
      {
        "internalType": "uint64",
        "name": "assignedSequenceNumber",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "requestV2",
    "outputs": [
      {
        "internalType": "uint64",
        "name": "assignedSequenceNumber",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "provider",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "userRandomNumber",
        "type": "bytes32"
      },
      {
        "internalType": "uint32",
        "name": "gasLimit",
        "type": "uint32"
      }
    ],
    "name": "requestV2",
    "outputs": [
      {
        "internalType": "uint64",
        "name": "assignedSequenceNumber",
        "type": "uint64"
      }
    ],
    "stateMutability": "payable",
    "type": "function"
  }
]
