{
  "_format": "hh-sol-artifact-1",
  "contractName": "WTTPForwarder",
  "sourceName": "contracts/extensions/WTTPForwarder.sol",
  "abi": [
    {
      "inputs": [],
      "name": "EmptyBaseURL",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "code",
          "type": "uint16"
        }
      ],
      "name": "InvalidRedirect",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "baseURL",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "redirectCode",
          "type": "uint16"
        }
      ],
      "name": "RedirectConfigUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ALLOWED_METHODS",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "string",
                  "name": "path",
                  "type": "string"
                },
                {
                  "internalType": "uint256",
                  "name": "ifModifiedSince",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "ifNoneMatch",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct HEADRequest",
              "name": "head",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "int256",
                  "name": "start",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "end",
                  "type": "int256"
                }
              ],
              "internalType": "struct Range",
              "name": "rangeChunks",
              "type": "tuple"
            }
          ],
          "internalType": "struct LOCATERequest",
          "name": "getRequest",
          "type": "tuple"
        }
      ],
      "name": "GET",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "status",
                  "type": "uint16"
                },
                {
                  "components": [
                    {
                      "components": [
                        {
                          "internalType": "bool",
                          "name": "immutableFlag",
                          "type": "bool"
                        },
                        {
                          "internalType": "enum CachePreset",
                          "name": "preset",
                          "type": "uint8"
                        },
                        {
                          "internalType": "string",
                          "name": "custom",
                          "type": "string"
                        }
                      ],
                      "internalType": "struct CacheControl",
                      "name": "cache",
                      "type": "tuple"
                    },
                    {
                      "components": [
                        {
                          "internalType": "uint16",
                          "name": "methods",
                          "type": "uint16"
                        },
                        {
                          "internalType": "bytes32[]",
                          "name": "origins",
                          "type": "bytes32[]"
                        },
                        {
                          "internalType": "enum CORSPreset",
                          "name": "preset",
                          "type": "uint8"
                        },
                        {
                          "internalType": "string",
                          "name": "custom",
                          "type": "string"
                        }
                      ],
                      "internalType": "struct CORSPolicy",
                      "name": "cors",
                      "type": "tuple"
                    },
                    {
                      "components": [
                        {
                          "internalType": "uint16",
                          "name": "code",
                          "type": "uint16"
                        },
                        {
                          "internalType": "string",
                          "name": "location",
                          "type": "string"
                        }
                      ],
                      "internalType": "struct Redirect",
                      "name": "redirect",
                      "type": "tuple"
                    }
                  ],
                  "internalType": "struct HeaderInfo",
                  "name": "headerInfo",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "components": [
                        {
                          "internalType": "bytes2",
                          "name": "mimeType",
                          "type": "bytes2"
                        },
                        {
                          "internalType": "bytes2",
                          "name": "charset",
                          "type": "bytes2"
                        },
                        {
                          "internalType": "bytes2",
                          "name": "encoding",
                          "type": "bytes2"
                        },
                        {
                          "internalType": "bytes2",
                          "name": "language",
                          "type": "bytes2"
                        }
                      ],
                      "internalType": "struct ResourceProperties",
                      "name": "properties",
                      "type": "tuple"
                    },
                    {
                      "internalType": "uint256",
                      "name": "size",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "version",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastModified",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bytes32",
                      "name": "header",
                      "type": "bytes32"
                    }
                  ],
                  "internalType": "struct ResourceMetadata",
                  "name": "metadata",
                  "type": "tuple"
                },
                {
                  "internalType": "bytes32",
                  "name": "etag",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct HEADResponse",
              "name": "head",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bytes32[]",
                  "name": "dataPoints",
                  "type": "bytes32[]"
                },
                {
                  "internalType": "uint256",
                  "name": "totalChunks",
                  "type": "uint256"
                }
              ],
              "internalType": "struct ResourceResponse",
              "name": "resource",
              "type": "tuple"
            }
          ],
          "internalType": "struct LOCATEResponse",
          "name": "getResponse",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "path",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "ifModifiedSince",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "ifNoneMatch",
              "type": "bytes32"
            }
          ],
          "internalType": "struct HEADRequest",
          "name": "headRequest",
          "type": "tuple"
        }
      ],
      "name": "HEAD",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "status",
              "type": "uint16"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bool",
                      "name": "immutableFlag",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum CachePreset",
                      "name": "preset",
                      "type": "uint8"
                    },
                    {
                      "internalType": "string",
                      "name": "custom",
                      "type": "string"
                    }
                  ],
                  "internalType": "struct CacheControl",
                  "name": "cache",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "uint16",
                      "name": "methods",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "origins",
                      "type": "bytes32[]"
                    },
                    {
                      "internalType": "enum CORSPreset",
                      "name": "preset",
                      "type": "uint8"
                    },
                    {
                      "internalType": "string",
                      "name": "custom",
                      "type": "string"
                    }
                  ],
                  "internalType": "struct CORSPolicy",
                  "name": "cors",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "uint16",
                      "name": "code",
                      "type": "uint16"
                    },
                    {
                      "internalType": "string",
                      "name": "location",
                      "type": "string"
                    }
                  ],
                  "internalType": "struct Redirect",
                  "name": "redirect",
                  "type": "tuple"
                }
              ],
              "internalType": "struct HeaderInfo",
              "name": "headerInfo",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes2",
                      "name": "mimeType",
                      "type": "bytes2"
                    },
                    {
                      "internalType": "bytes2",
                      "name": "charset",
                      "type": "bytes2"
                    },
                    {
                      "internalType": "bytes2",
                      "name": "encoding",
                      "type": "bytes2"
                    },
                    {
                      "internalType": "bytes2",
                      "name": "language",
                      "type": "bytes2"
                    }
                  ],
                  "internalType": "struct ResourceProperties",
                  "name": "properties",
                  "type": "tuple"
                },
                {
                  "internalType": "uint256",
                  "name": "size",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "version",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastModified",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "header",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct ResourceMetadata",
              "name": "metadata",
              "type": "tuple"
            },
            {
              "internalType": "bytes32",
              "name": "etag",
              "type": "bytes32"
            }
          ],
          "internalType": "struct HEADResponse",
          "name": "head",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "name": "OPTIONS",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "status",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "allow",
              "type": "uint16"
            }
          ],
          "internalType": "struct OPTIONSResponse",
          "name": "optionsResponse",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "baseURL",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "redirectCode",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
