V1 payment requirements
Discovery info in v2 format if present and valid, or null if not discoverable
const requirements: PaymentRequirementsV1 = {
scheme: "exact",
network: "eip155:8453",
maxAmountRequired: "100000",
resource: "https://api.example.com/data",
description: "Get data",
mimeType: "application/json",
outputSchema: {
input: {
type: "http",
method: "GET",
discoverable: true,
queryParams: { query: "string" }
},
output: { type: "object" }
},
payTo: "0x...",
maxTimeoutSeconds: 300,
asset: "0x...",
extra: {}
};
const info = extractDiscoveryInfoV1(requirements);
if (info) {
console.log("Endpoint method:", info.input.method);
}
Extracts discovery info from v1 PaymentRequirements and transforms to v2 format
In v1, the discovery information is stored in the
outputSchemafield, which contains both input (endpoint shape) and output (response schema) information.This function makes smart assumptions to normalize v1 data into v2 DiscoveryInfo format: