[
  {
    "inputs": [],
    "name": "CosignersThresholdInvalid",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "DefaultNumberOfTeesZero",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "teeId",
        "type": "address"
      }
    ],
    "name": "DuplicatedTeeId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "FeeTooLow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MinThresholdInvalid",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MultipleResponsesPossible",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NumberOfTeesAndTeeIdsInvalid",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "teeId",
        "type": "address"
      }
    ],
    "name": "OnlySystemExtensionId",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TeeMachineNotAvailable",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ThresholdInvalid",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "instructionId",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "attestationType",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "sourceId",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "proofOwner",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "claimBackAddress",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "fee",
        "type": "uint256"
      }
    ],
    "name": "AttestationRequested",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "defaultNumberOfTees",
        "type": "uint8"
      }
    ],
    "name": "DefaultNumberOfTeesSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint16",
        "name": "minThresholdBIPS",
        "type": "uint16"
      }
    ],
    "name": "MinThresholdBIPSSet",
    "type": "event"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "components": [
              {
                "internalType": "bytes32",
                "name": "attestationType",
                "type": "bytes32"
              },
              {
                "internalType": "bytes32",
                "name": "sourceId",
                "type": "bytes32"
              },
              {
                "internalType": "uint16",
                "name": "thresholdBIPS",
                "type": "uint16"
              },
              {
                "internalType": "address",
                "name": "proofOwner",
                "type": "address"
              }
            ],
            "internalType": "struct IFdc2Hub.Fdc2RequestHeader",
            "name": "header",
            "type": "tuple"
          },
          {
            "internalType": "bytes",
            "name": "requestBody",
            "type": "bytes"
          }
        ],
        "internalType": "struct IFdc2Hub.Fdc2AttestationRequest",
        "name": "_attestationRequest",
        "type": "tuple"
      },
      {
        "internalType": "uint256",
        "name": "_numberOfTees",
        "type": "uint256"
      },
      {
        "internalType": "address[]",
        "name": "_teeIds",
        "type": "address[]"
      },
      {
        "internalType": "address[]",
        "name": "_cosigners",
        "type": "address[]"
      },
      {
        "internalType": "uint64",
        "name": "_cosignersThreshold",
        "type": "uint64"
      },
      {
        "internalType": "address",
        "name": "_claimBackAddress",
        "type": "address"
      }
    ],
    "name": "requestAttestation",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  }
]
