[
  {
    "inputs": [],
    "name": "getDONPublicKey",
    "outputs": [
      {
        "internalType": "bytes",
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getThresholdPublicKey",
    "outputs": [
      {
        "internalType": "bytes",
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes",
        "name": "donPublicKey",
        "type": "bytes"
      }
    ],
    "name": "setDONPublicKey",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes",
        "name": "thresholdPublicKey",
        "type": "bytes"
      }
    ],
    "name": "setThresholdPublicKey",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          },
          {
            "internalType": "bytes32",
            "name": "flags",
            "type": "bytes32"
          },
          {
            "internalType": "address",
            "name": "requestingContract",
            "type": "address"
          },
          {
            "internalType": "uint96",
            "name": "availableBalance",
            "type": "uint96"
          },
          {
            "internalType": "uint72",
            "name": "adminFee",
            "type": "uint72"
          },
          {
            "internalType": "uint64",
            "name": "subscriptionId",
            "type": "uint64"
          },
          {
            "internalType": "uint64",
            "name": "initiatedRequests",
            "type": "uint64"
          },
          {
            "internalType": "uint32",
            "name": "callbackGasLimit",
            "type": "uint32"
          },
          {
            "internalType": "uint16",
            "name": "dataVersion",
            "type": "uint16"
          },
          {
            "internalType": "uint64",
            "name": "completedRequests",
            "type": "uint64"
          },
          {
            "internalType": "address",
            "name": "subscriptionOwner",
            "type": "address"
          }
        ],
        "internalType": "struct FunctionsResponse.RequestMeta",
        "name": "request",
        "type": "tuple"
      }
    ],
    "name": "startRequest",
    "outputs": [
      {
        "components": [
          {
            "internalType": "bytes32",
            "name": "requestId",
            "type": "bytes32"
          },
          {
            "internalType": "address",
            "name": "coordinator",
            "type": "address"
          },
          {
            "internalType": "uint96",
            "name": "estimatedTotalCostJuels",
            "type": "uint96"
          },
          {
            "internalType": "address",
            "name": "client",
            "type": "address"
          },
          {
            "internalType": "uint64",
            "name": "subscriptionId",
            "type": "uint64"
          },
          {
            "internalType": "uint32",
            "name": "callbackGasLimit",
            "type": "uint32"
          },
          {
            "internalType": "uint72",
            "name": "adminFee",
            "type": "uint72"
          },
          {
            "internalType": "uint72",
            "name": "donFee",
            "type": "uint72"
          },
          {
            "internalType": "uint40",
            "name": "gasOverheadBeforeCallback",
            "type": "uint40"
          },
          {
            "internalType": "uint40",
            "name": "gasOverheadAfterCallback",
            "type": "uint40"
          },
          {
            "internalType": "uint32",
            "name": "timeoutTimestamp",
            "type": "uint32"
          }
        ],
        "internalType": "struct FunctionsResponse.Commitment",
        "name": "commitment",
        "type": "tuple"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]
