inamprotocol 0.16.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/erc8004.d.ts +53 -0
- package/dist/erc8004.js +95 -0
- package/dist/erc8004.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/x402.js +5 -0
- package/dist/x402.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,6 +86,20 @@ const d = await checkTrust(did, client, {
|
|
|
86
86
|
|
|
87
87
|
A revoked ID or one the registry doesn't know is `deny`. Warning flags (`in_dispute`, `attestation_rejected`, `nonperformance_reported`, `concentrated_counterparty`) cap the decision at `escrow`; pass `escrowFlags` to change that list. Use it to fill a wallet's merchant allow list, or to choose between paying upfront and paying on delivery.
|
|
88
88
|
|
|
89
|
+
### Publishing a receipt as ERC-8004 feedback
|
|
90
|
+
|
|
91
|
+
The receipt's requester can post it to ERC-8004's Reputation Registry (SPEC.md §11.1). The feedback file carries the signed receipt, so readers can tell it from a bare score:
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
import { buildErc8004Feedback, verifyErc8004Feedback } from "inamprotocol";
|
|
95
|
+
|
|
96
|
+
const fb = buildErc8004Feedback(receipt, requesterRecord, { agentRegistry: "eip155:8453:0x...", agentId: 42 });
|
|
97
|
+
// host fb.fileText at feedbackURI, then send giveFeedback(...fb.args, feedbackURI) from the requester's linked erc8004_id
|
|
98
|
+
|
|
99
|
+
const check = await verifyErc8004Feedback(fileText, { feedbackHash, clientAddress, value }, client);
|
|
100
|
+
// { valid, reasons, receiptId, providerDid, providerAddress }
|
|
101
|
+
```
|
|
102
|
+
|
|
89
103
|
## What's exported
|
|
90
104
|
|
|
91
105
|
`InamClient`, `generateKeypair`/`keypairFromPrivateKey`/`publicKeyToDid`/`didToPublicKey`/`sign`/`verify`/`verifyRawEd25519`/`sha256Hex`, `generateP256Keypair`/`p256Sign`/`p256Verify` (used for external-identity link-challenge proofs, SPEC.md §2.1), `canonicalize` (the canonical-JSON serializer every INAM signature is computed over), `computeReceiptId`/`buildSignableContent`, `computeVerificationId`/`buildSignableVerificationContent`, and the full set of wire-format types (`AgentRecord`, `ExecutionReceipt`, `JobRecord`, `JobOffer`, `ReputationResult`, `LinkChallenge`, `VerificationRecord`, ...).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { InamClient } from "./client.js";
|
|
2
|
+
import type { AgentRecord, ExecutionReceipt } from "./types.js";
|
|
3
|
+
/** INAM receipts as ERC-8004 feedback (SPEC.md §11.1).
|
|
4
|
+
*
|
|
5
|
+
* The receipt's requester gives the feedback from the EVM address its INAM ID
|
|
6
|
+
* proved control of (`linked.erc8004_id`). The off-chain feedback file carries
|
|
7
|
+
* the whole signed receipt, and `feedbackHash` commits to that file, so anyone
|
|
8
|
+
* reading the on-chain feedback can check it is backed by work both parties
|
|
9
|
+
* signed rather than a bare score. */
|
|
10
|
+
export declare const INAM_FEEDBACK_TAG = "inam-receipt";
|
|
11
|
+
export interface Erc8004Target {
|
|
12
|
+
/** `{namespace}:{chainId}:{identityRegistry}`, e.g. `eip155:8453:0x...`. */
|
|
13
|
+
agentRegistry: string;
|
|
14
|
+
/** The provider's ERC-721 agentId in that Identity Registry. */
|
|
15
|
+
agentId: number;
|
|
16
|
+
/** The provider's service endpoint the work was done on (optional). */
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface Erc8004Feedback {
|
|
20
|
+
/** The exact bytes to host at `feedbackURI`; `feedbackHash` is their keccak256. */
|
|
21
|
+
fileText: string;
|
|
22
|
+
feedbackHash: string;
|
|
23
|
+
/** Arguments for `giveFeedback(agentId, value, valueDecimals, tag1, tag2, endpoint, feedbackURI, feedbackHash)`, minus `feedbackURI`. */
|
|
24
|
+
args: {
|
|
25
|
+
agentId: number;
|
|
26
|
+
value: number;
|
|
27
|
+
valueDecimals: 0;
|
|
28
|
+
tag1: string;
|
|
29
|
+
tag2: string;
|
|
30
|
+
endpoint: string;
|
|
31
|
+
feedbackHash: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Builds the feedback for a finalized, public receipt. `requester` is the receipt's agentA record, whose
|
|
35
|
+
* `linked.erc8004_id` becomes `clientAddress`: the wallet that must send `giveFeedback`. */
|
|
36
|
+
export declare function buildErc8004Feedback(receipt: ExecutionReceipt, requester: AgentRecord, target: Erc8004Target, createdAt?: string): Erc8004Feedback;
|
|
37
|
+
export interface Erc8004FeedbackCheck {
|
|
38
|
+
valid: boolean;
|
|
39
|
+
/** Every check that failed; empty when valid. */
|
|
40
|
+
reasons: string[];
|
|
41
|
+
receiptId?: string;
|
|
42
|
+
/** The provider's INAM ID and its proven EVM address. Compare the address with the on-chain agent's owner or agentWallet yourself. */
|
|
43
|
+
providerDid?: string;
|
|
44
|
+
providerAddress?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Checks feedback read from ERC-8004 against the INAM receipt it carries. Pass the `feedbackHash` and
|
|
47
|
+
* `clientAddress` from the on-chain `NewFeedback` event. The registry `inam` points at supplies the parties'
|
|
48
|
+
* linked addresses and the receipt's current status; the signatures are checked locally. */
|
|
49
|
+
export declare function verifyErc8004Feedback(fileText: string, onchain: {
|
|
50
|
+
feedbackHash: string;
|
|
51
|
+
clientAddress: string;
|
|
52
|
+
value?: number;
|
|
53
|
+
}, inam: InamClient): Promise<Erc8004FeedbackCheck>;
|
package/dist/erc8004.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { keccak_256 } from "@noble/hashes/sha3.js";
|
|
2
|
+
import { canonicalize } from "./crypto/canonical.js";
|
|
3
|
+
import { fromBase64, toHex, verify } from "./crypto/keys.js";
|
|
4
|
+
import { computeReceiptId } from "./core/receiptContent.js";
|
|
5
|
+
/** INAM receipts as ERC-8004 feedback (SPEC.md §11.1).
|
|
6
|
+
*
|
|
7
|
+
* The receipt's requester gives the feedback from the EVM address its INAM ID
|
|
8
|
+
* proved control of (`linked.erc8004_id`). The off-chain feedback file carries
|
|
9
|
+
* the whole signed receipt, and `feedbackHash` commits to that file, so anyone
|
|
10
|
+
* reading the on-chain feedback can check it is backed by work both parties
|
|
11
|
+
* signed rather than a bare score. */
|
|
12
|
+
export const INAM_FEEDBACK_TAG = "inam-receipt";
|
|
13
|
+
const OUTCOME_VALUE = { success: 100, partial: 50, failed: 0 };
|
|
14
|
+
/** The receipt fields both parties signed (SPEC.md §4.2-4.3), plus the signatures. */
|
|
15
|
+
function signedPart(r) {
|
|
16
|
+
const { status: _s, dispute: _d, visibility: _v, ...rest } = r;
|
|
17
|
+
return rest;
|
|
18
|
+
}
|
|
19
|
+
const keccakHex = (text) => `0x${toHex(keccak_256(new TextEncoder().encode(text)))}`;
|
|
20
|
+
/** Builds the feedback for a finalized, public receipt. `requester` is the receipt's agentA record, whose
|
|
21
|
+
* `linked.erc8004_id` becomes `clientAddress`: the wallet that must send `giveFeedback`. */
|
|
22
|
+
export function buildErc8004Feedback(receipt, requester, target, createdAt = new Date().toISOString()) {
|
|
23
|
+
if (receipt.status !== "finalized")
|
|
24
|
+
throw new Error("only a finalized receipt can back feedback");
|
|
25
|
+
if (receipt.visibility === "participants_only")
|
|
26
|
+
throw new Error("a participants_only receipt would become public in the feedback file");
|
|
27
|
+
if (requester.id !== receipt.agentA.id)
|
|
28
|
+
throw new Error("requester must be the receipt's agentA");
|
|
29
|
+
const address = requester.linked.erc8004_id;
|
|
30
|
+
if (!address)
|
|
31
|
+
throw new Error("the requester's INAM ID has no linked erc8004_id to give feedback from");
|
|
32
|
+
const chain = target.agentRegistry.split(":").slice(0, 2).join(":");
|
|
33
|
+
const value = OUTCOME_VALUE[receipt.verification.outcome];
|
|
34
|
+
const tag2 = receipt.task.capability;
|
|
35
|
+
const endpoint = target.endpoint ?? "";
|
|
36
|
+
const file = {
|
|
37
|
+
agentRegistry: target.agentRegistry,
|
|
38
|
+
agentId: target.agentId,
|
|
39
|
+
clientAddress: `${chain}:${address}`,
|
|
40
|
+
createdAt,
|
|
41
|
+
value,
|
|
42
|
+
valueDecimals: 0,
|
|
43
|
+
tag1: INAM_FEEDBACK_TAG,
|
|
44
|
+
tag2,
|
|
45
|
+
...(endpoint ? { endpoint } : {}),
|
|
46
|
+
inam: { receipt: signedPart(receipt) },
|
|
47
|
+
};
|
|
48
|
+
const fileText = canonicalize(file);
|
|
49
|
+
const feedbackHash = keccakHex(fileText);
|
|
50
|
+
return { fileText, feedbackHash, args: { agentId: target.agentId, value, valueDecimals: 0, tag1: INAM_FEEDBACK_TAG, tag2, endpoint, feedbackHash } };
|
|
51
|
+
}
|
|
52
|
+
/** Checks feedback read from ERC-8004 against the INAM receipt it carries. Pass the `feedbackHash` and
|
|
53
|
+
* `clientAddress` from the on-chain `NewFeedback` event. The registry `inam` points at supplies the parties'
|
|
54
|
+
* linked addresses and the receipt's current status; the signatures are checked locally. */
|
|
55
|
+
export async function verifyErc8004Feedback(fileText, onchain, inam) {
|
|
56
|
+
const reasons = [];
|
|
57
|
+
if (keccakHex(fileText).toLowerCase() !== onchain.feedbackHash.toLowerCase())
|
|
58
|
+
reasons.push("feedbackHash does not match the file");
|
|
59
|
+
let file;
|
|
60
|
+
try {
|
|
61
|
+
file = JSON.parse(fileText);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return { valid: false, reasons: [...reasons, "file is not JSON"] };
|
|
65
|
+
}
|
|
66
|
+
const r = file.inam?.receipt;
|
|
67
|
+
if (!r?.signatures?.agentA || !r.signatures.agentB)
|
|
68
|
+
return { valid: false, reasons: [...reasons, "file carries no signed INAM receipt"] };
|
|
69
|
+
if (computeReceiptId(r.agentA.id, r.agentB.id, r) !== r.receiptId)
|
|
70
|
+
reasons.push("receiptId does not match the receipt content");
|
|
71
|
+
const bytes = new TextEncoder().encode(canonicalize({ ...r, signatures: undefined }));
|
|
72
|
+
if (!verify(fromBase64(r.signatures.agentB), bytes, r.agentB.id))
|
|
73
|
+
reasons.push("provider (agentB) signature is invalid");
|
|
74
|
+
if (!verify(fromBase64(r.signatures.agentA), bytes, r.agentA.id))
|
|
75
|
+
reasons.push("requester (agentA) signature is invalid");
|
|
76
|
+
const value = onchain.value ?? file.value;
|
|
77
|
+
if (value !== OUTCOME_VALUE[r.verification.outcome])
|
|
78
|
+
reasons.push(`value ${value} does not match receipt outcome ${r.verification.outcome}`);
|
|
79
|
+
const sender = onchain.clientAddress.toLowerCase();
|
|
80
|
+
if (file.clientAddress && file.clientAddress.split(":").pop().toLowerCase() !== sender)
|
|
81
|
+
reasons.push("file clientAddress differs from the on-chain sender");
|
|
82
|
+
let requester, provider, stored;
|
|
83
|
+
try {
|
|
84
|
+
[requester, provider, stored] = await Promise.all([inam.getAgent(r.agentA.id), inam.getAgent(r.agentB.id), inam.getReceipt(r.receiptId)]);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
reasons.push("receipt or its parties not found in the registry");
|
|
88
|
+
}
|
|
89
|
+
if (requester && requester.linked.erc8004_id?.toLowerCase() !== sender)
|
|
90
|
+
reasons.push("feedback was not sent from the requester's proven erc8004_id");
|
|
91
|
+
if (stored && stored.status !== "finalized")
|
|
92
|
+
reasons.push(`receipt is ${stored.status} in the registry`);
|
|
93
|
+
return { valid: reasons.length === 0, reasons, receiptId: r.receiptId, providerDid: r.agentB.id, providerAddress: provider?.linked.erc8004_id };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=erc8004.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erc8004.js","sourceRoot":"","sources":["../src/erc8004.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,3 +17,5 @@ export { INAM_A2A_EXTENSION_URI, inamA2AExtension, decideA2A, verifyA2ACard, car
|
|
|
17
17
|
export type { A2APolicy, A2ADecision, A2AAgentCardLike } from "./a2a.js";
|
|
18
18
|
export { decideTrust, checkTrust, DEFAULT_ESCROW_FLAGS } from "./trust.js";
|
|
19
19
|
export type { TrustPolicy, TrustDecision, TrustDecisionKind } from "./trust.js";
|
|
20
|
+
export { INAM_FEEDBACK_TAG, buildErc8004Feedback, verifyErc8004Feedback } from "./erc8004.js";
|
|
21
|
+
export type { Erc8004Target, Erc8004Feedback, Erc8004FeedbackCheck } from "./erc8004.js";
|
package/dist/index.js
CHANGED
|
@@ -23,4 +23,5 @@ export { registerAgentSchema, linkChallengeSchema, linkSchema, postJobSchema, of
|
|
|
23
23
|
export { INAM_X402_EXTENSION, inamX402Extension, decideX402, withInamX402Gate, X402PaymentBlocked } from "./x402.js";
|
|
24
24
|
export { INAM_A2A_EXTENSION_URI, inamA2AExtension, decideA2A, verifyA2ACard, cardEndpoints } from "./a2a.js";
|
|
25
25
|
export { decideTrust, checkTrust, DEFAULT_ESCROW_FLAGS } from "./trust.js";
|
|
26
|
+
export { INAM_FEEDBACK_TAG, buildErc8004Feedback, verifyErc8004Feedback } from "./erc8004.js";
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,OAAO,GAER,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,mCAAmC,EACnC,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAA4B,MAAM,0BAA0B,CAAC;AAE5G,qEAAqE;AACrE,yEAAyE;AACzE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAiC,MAAM,+BAA+B,CAAC;AAEvI,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGpF,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAuB3B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAErH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7G,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,OAAO,GAER,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,mCAAmC,EACnC,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAA4B,MAAM,0BAA0B,CAAC;AAE5G,qEAAqE;AACrE,yEAAyE;AACzE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAiC,MAAM,+BAA+B,CAAC;AAEvI,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,0CAA0C;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAA8B,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGpF,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAuB3B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAErH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7G,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/x402.js
CHANGED
|
@@ -66,6 +66,11 @@ export function withInamX402Gate(inner, inam, policy = {}) {
|
|
|
66
66
|
const res = await inner(input, init);
|
|
67
67
|
if (res.status !== 402)
|
|
68
68
|
return res;
|
|
69
|
+
// A 402 to a request that already carries a payment is the payee rejecting it; the payee was gated before
|
|
70
|
+
// signing, so pass it through and let the payment wrapper report the real error.
|
|
71
|
+
const sent = new Headers(init?.headers ?? (input instanceof Request ? input.headers : undefined));
|
|
72
|
+
if (sent.has("payment-signature") || sent.has("x-payment"))
|
|
73
|
+
return res;
|
|
69
74
|
const header = res.headers.get("payment-required");
|
|
70
75
|
let required;
|
|
71
76
|
try {
|
package/dist/x402.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAIA;;;;;;uEAMuE;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAgB1C,MAAM,aAAa,GAAkC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC;AAE9G,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO;QACL,CAAC,mBAAmB,CAAC,EAAE;YACrB,IAAI,EAAE,EAAE,GAAG,EAAE;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,8CAA8C;gBACvD,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;gBAC7D,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB;SACF;KACF,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CAAC,KAAkB,EAAE,UAA4B,EAAE,KAAe,EAAE,SAAqB,EAAE;IACnH,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wDAAwD,EAAE,CAAC;IACrG,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACrG,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,UAA4B,EAAE,SAAqB,EAAE;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,eAAe,CAAC;IAC1D,IAAI,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;QAAE,OAAO,YAAY,UAAU,CAAC,aAAa,aAAa,WAAW,EAAE,CAAC;IAChJ,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;QAAE,OAAO,cAAc,UAAU,CAAC,UAAU,aAAa,MAAM,CAAC,aAAa,EAAE,CAAC;IACvI,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACtB;IAArB,YAAqB,QAAsB;QACzC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QADvC,aAAQ,GAAR,QAAQ,CAAc;QAEzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAOD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3F;;;;;;;2DAO2D;AAC3D,qGAAqG;AACrG,MAAM,UAAU,gBAAgB,CAAC,KAAmB,EAAE,IAAgB,EAAE,SAAqB,EAAE;IAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,GAAG,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC;QAClE,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAE9G,IAAI,KAAkB,EAAE,UAA4B,CAAC;QACrD,IAAI,CAAC;YACH,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAW,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7I,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED