@rubicon-caliga/core 0.1.1 → 0.1.2
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/networks.d.ts +10 -0
- package/dist/networks.d.ts.map +1 -0
- package/dist/networks.js +33 -0
- package/dist/networks.js.map +1 -0
- package/dist/protocol.d.ts +38 -0
- package/dist/protocol.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/networks.ts +47 -0
- package/src/protocol.ts +35 -0
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SettlementNetworkInfo {
|
|
2
|
+
network: string;
|
|
3
|
+
networkLabel: string;
|
|
4
|
+
circleChain?: string;
|
|
5
|
+
environment: "testnet" | "mainnet" | "unknown";
|
|
6
|
+
fundingMethod: string;
|
|
7
|
+
buyerWalletExplanation?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function settlementNetworkInfo(network: string | undefined): SettlementNetworkInfo;
|
|
10
|
+
//# sourceMappingURL=networks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAeD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,CAwBxF"}
|
package/dist/networks.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const ARC_TESTNET = {
|
|
2
|
+
network: "eip155:5042002",
|
|
3
|
+
networkLabel: "Arc Testnet",
|
|
4
|
+
circleChain: "ARC-TESTNET",
|
|
5
|
+
environment: "testnet",
|
|
6
|
+
fundingMethod: "Circle testnet funds on ARC-TESTNET. Use Circle's testnet faucet / Gateway testnet funding flow; do not send mainnet fiat or crypto.",
|
|
7
|
+
buyerWalletExplanation: "Circle CLI signs with the Agent Wallet, while x402/Gateway receipts may show the Gateway backing EOA that actually authorizes settlement.",
|
|
8
|
+
};
|
|
9
|
+
const NETWORKS = [ARC_TESTNET];
|
|
10
|
+
export function settlementNetworkInfo(network) {
|
|
11
|
+
if (!network) {
|
|
12
|
+
return {
|
|
13
|
+
network: "",
|
|
14
|
+
networkLabel: "Unknown",
|
|
15
|
+
environment: "unknown",
|
|
16
|
+
fundingMethod: "Funding method unknown. Inspect the article paymentTerms.network before funding.",
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const normalized = network.trim().toLowerCase();
|
|
20
|
+
const found = NETWORKS.find((candidate) => candidate.network.toLowerCase() === normalized ||
|
|
21
|
+
candidate.networkLabel.toLowerCase() === normalized ||
|
|
22
|
+
candidate.circleChain?.toLowerCase() === normalized ||
|
|
23
|
+
normalized === "arc-testnet");
|
|
24
|
+
if (found)
|
|
25
|
+
return found;
|
|
26
|
+
return {
|
|
27
|
+
network,
|
|
28
|
+
networkLabel: network,
|
|
29
|
+
environment: network.toLowerCase().includes("test") ? "testnet" : "unknown",
|
|
30
|
+
fundingMethod: "Funding method unknown. Confirm the mapped Circle chain before funding.",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=networks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"networks.js","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAA0B;IACzC,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,SAAS;IACtB,aAAa,EACX,sIAAsI;IACxI,sBAAsB,EACpB,2IAA2I;CAC9I,CAAC;AAEF,MAAM,QAAQ,GAA4B,CAAC,WAAW,CAAC,CAAC;AAExD,MAAM,UAAU,qBAAqB,CAAC,OAA2B;IAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,kFAAkF;SAClG,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU;QAC9C,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,UAAU;QACnD,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,UAAU;QACnD,UAAU,KAAK,aAAa,CAC/B,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO;QACL,OAAO;QACP,YAAY,EAAE,OAAO;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC3E,aAAa,EAAE,yEAAyE;KACzF,CAAC;AACJ,CAAC"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface Budget {
|
|
|
7
7
|
maxAmountAtomic: AtomicAmount;
|
|
8
8
|
}
|
|
9
9
|
export type AuthorizationMode = "session" | "chunk" | "word";
|
|
10
|
+
export type StreamMode = "bundled" | "word";
|
|
10
11
|
/** Safe public article metadata. Never includes unpaid body text. */
|
|
11
12
|
export interface ArticleSummary {
|
|
12
13
|
articleId: string;
|
|
@@ -27,6 +28,9 @@ export interface SellerPaymentTerms {
|
|
|
27
28
|
asset: "USDC";
|
|
28
29
|
network: string;
|
|
29
30
|
networkLabel?: string;
|
|
31
|
+
circleChain?: string;
|
|
32
|
+
environment?: "testnet" | "mainnet" | "unknown";
|
|
33
|
+
fundingMethod?: string;
|
|
30
34
|
payTo: `0x${string}`;
|
|
31
35
|
pricePerWordAtomic: AtomicAmount;
|
|
32
36
|
meteringUnit: "word";
|
|
@@ -184,6 +188,7 @@ export interface StreamChunkResponse {
|
|
|
184
188
|
sequence: number;
|
|
185
189
|
word: string;
|
|
186
190
|
priceAtomic: AtomicAmount;
|
|
191
|
+
/** @deprecated Bundled reads now report one payment on the chunk response. */
|
|
187
192
|
payment?: WordPaymentReceipt;
|
|
188
193
|
}>;
|
|
189
194
|
text: string;
|
|
@@ -192,6 +197,8 @@ export interface StreamChunkResponse {
|
|
|
192
197
|
paidAtomic: AtomicAmount;
|
|
193
198
|
completed: boolean;
|
|
194
199
|
authorizationMode?: AuthorizationMode;
|
|
200
|
+
/** Canonical receipt for the bundled authorization that released these words. */
|
|
201
|
+
payment?: WordPaymentReceipt;
|
|
195
202
|
transactionHash?: string;
|
|
196
203
|
transactionHashes?: string[];
|
|
197
204
|
settlementId?: string;
|
|
@@ -206,6 +213,18 @@ export interface WordPaymentReceipt {
|
|
|
206
213
|
sequence: number;
|
|
207
214
|
meteringUnit: "word";
|
|
208
215
|
amountAtomic: AtomicAmount;
|
|
216
|
+
/** Present when one payment authorized more than one delivered word. */
|
|
217
|
+
bundleSequence?: number;
|
|
218
|
+
/** Present for bundle receipts; first delivered word sequence in the bundle. */
|
|
219
|
+
startSequence?: number;
|
|
220
|
+
/** Present for bundle receipts; last delivered word sequence in the bundle. */
|
|
221
|
+
endSequence?: number;
|
|
222
|
+
/** Number of words released by this payment. Defaults to 1 for legacy receipts. */
|
|
223
|
+
wordsDelivered?: number;
|
|
224
|
+
/** Creator price for each delivered word before bundle multiplication. */
|
|
225
|
+
pricePerWordAtomic?: AtomicAmount;
|
|
226
|
+
/** Text released by this payment. */
|
|
227
|
+
text?: string;
|
|
209
228
|
currency: "USDC";
|
|
210
229
|
network?: string;
|
|
211
230
|
payTo?: `0x${string}`;
|
|
@@ -278,6 +297,25 @@ export type GatewayEvent = {
|
|
|
278
297
|
priceAtomic: AtomicAmount;
|
|
279
298
|
totalWordsStreamed: number;
|
|
280
299
|
totalPaidAtomic: AtomicAmount;
|
|
300
|
+
} | {
|
|
301
|
+
type: "article.bundle";
|
|
302
|
+
sessionId: string;
|
|
303
|
+
articleId: string;
|
|
304
|
+
bundleSequence: number;
|
|
305
|
+
startSequence: number;
|
|
306
|
+
endSequence: number;
|
|
307
|
+
words: Array<{
|
|
308
|
+
sequence: number;
|
|
309
|
+
word: string;
|
|
310
|
+
priceAtomic: AtomicAmount;
|
|
311
|
+
}>;
|
|
312
|
+
text: string;
|
|
313
|
+
wordCount: number;
|
|
314
|
+
pricePerWordAtomic: AtomicAmount;
|
|
315
|
+
amountAtomic: AtomicAmount;
|
|
316
|
+
paymentId?: string;
|
|
317
|
+
totalWordsStreamed: number;
|
|
318
|
+
totalPaidAtomic: AtomicAmount;
|
|
281
319
|
} | {
|
|
282
320
|
type: "article.usage";
|
|
283
321
|
sessionId: string;
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,YAAY,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,YAAY,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5C,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,YAAY,CAAC;IACjC,8DAA8D;IAC9D,qBAAqB,EAAE,YAAY,CAAC;IACpC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,YAAY,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,6EAA6E;IAC7E,WAAW,EAAE,uBAAuB,CAAC;IACrC,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,WAAW,GACX,cAAc,GACd,kBAAkB,GAClB,wBAAwB,GACxB,mBAAmB,GACnB,kBAAkB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,YAAY,CAAC;IACjC,6EAA6E;IAC7E,mBAAmB,EAAE,YAAY,CAAC;IAClC,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,uBAAuB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,4CAA4C;IAC5C,kBAAkB,EAAE,YAAY,CAAC;IACjC,0DAA0D;IAC1D,qBAAqB,EAAE,YAAY,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,iBAAiB,EAAE,YAAY,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;IACrD,4EAA4E;IAC5E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,yBAAyB,CAAC,EAAE,YAAY,CAAC;IACzC,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,YAAY,CAAC;QAC1B,8EAA8E;QAC9E,OAAO,CAAC,EAAE,kBAAkB,CAAC;KAC9B,CAAC,CAAC;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iFAAiF;IACjF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,kBAAkB,EAAE,YAAY,CAAC;IACjC,iBAAiB,EAAE,YAAY,CAAC;CACjC,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,YAAY,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACvB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,YAAY,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,YAAY,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,YAAY,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,YAAY,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,YAAY,CAAC;CAC/B,GACD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/networks.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface SettlementNetworkInfo {
|
|
2
|
+
network: string;
|
|
3
|
+
networkLabel: string;
|
|
4
|
+
circleChain?: string;
|
|
5
|
+
environment: "testnet" | "mainnet" | "unknown";
|
|
6
|
+
fundingMethod: string;
|
|
7
|
+
buyerWalletExplanation?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ARC_TESTNET: SettlementNetworkInfo = {
|
|
11
|
+
network: "eip155:5042002",
|
|
12
|
+
networkLabel: "Arc Testnet",
|
|
13
|
+
circleChain: "ARC-TESTNET",
|
|
14
|
+
environment: "testnet",
|
|
15
|
+
fundingMethod:
|
|
16
|
+
"Circle testnet funds on ARC-TESTNET. Use Circle's testnet faucet / Gateway testnet funding flow; do not send mainnet fiat or crypto.",
|
|
17
|
+
buyerWalletExplanation:
|
|
18
|
+
"Circle CLI signs with the Agent Wallet, while x402/Gateway receipts may show the Gateway backing EOA that actually authorizes settlement.",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const NETWORKS: SettlementNetworkInfo[] = [ARC_TESTNET];
|
|
22
|
+
|
|
23
|
+
export function settlementNetworkInfo(network: string | undefined): SettlementNetworkInfo {
|
|
24
|
+
if (!network) {
|
|
25
|
+
return {
|
|
26
|
+
network: "",
|
|
27
|
+
networkLabel: "Unknown",
|
|
28
|
+
environment: "unknown",
|
|
29
|
+
fundingMethod: "Funding method unknown. Inspect the article paymentTerms.network before funding.",
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const normalized = network.trim().toLowerCase();
|
|
33
|
+
const found = NETWORKS.find(
|
|
34
|
+
(candidate) =>
|
|
35
|
+
candidate.network.toLowerCase() === normalized ||
|
|
36
|
+
candidate.networkLabel.toLowerCase() === normalized ||
|
|
37
|
+
candidate.circleChain?.toLowerCase() === normalized ||
|
|
38
|
+
normalized === "arc-testnet",
|
|
39
|
+
);
|
|
40
|
+
if (found) return found;
|
|
41
|
+
return {
|
|
42
|
+
network,
|
|
43
|
+
networkLabel: network,
|
|
44
|
+
environment: network.toLowerCase().includes("test") ? "testnet" : "unknown",
|
|
45
|
+
fundingMethod: "Funding method unknown. Confirm the mapped Circle chain before funding.",
|
|
46
|
+
};
|
|
47
|
+
}
|
package/src/protocol.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface Budget {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export type AuthorizationMode = "session" | "chunk" | "word";
|
|
12
|
+
export type StreamMode = "bundled" | "word";
|
|
12
13
|
|
|
13
14
|
/** Safe public article metadata. Never includes unpaid body text. */
|
|
14
15
|
export interface ArticleSummary {
|
|
@@ -31,6 +32,9 @@ export interface SellerPaymentTerms {
|
|
|
31
32
|
asset: "USDC";
|
|
32
33
|
network: string;
|
|
33
34
|
networkLabel?: string;
|
|
35
|
+
circleChain?: string;
|
|
36
|
+
environment?: "testnet" | "mainnet" | "unknown";
|
|
37
|
+
fundingMethod?: string;
|
|
34
38
|
payTo: `0x${string}`;
|
|
35
39
|
pricePerWordAtomic: AtomicAmount;
|
|
36
40
|
meteringUnit: "word";
|
|
@@ -218,6 +222,7 @@ export interface StreamChunkResponse {
|
|
|
218
222
|
sequence: number;
|
|
219
223
|
word: string;
|
|
220
224
|
priceAtomic: AtomicAmount;
|
|
225
|
+
/** @deprecated Bundled reads now report one payment on the chunk response. */
|
|
221
226
|
payment?: WordPaymentReceipt;
|
|
222
227
|
}>;
|
|
223
228
|
text: string;
|
|
@@ -226,6 +231,8 @@ export interface StreamChunkResponse {
|
|
|
226
231
|
paidAtomic: AtomicAmount;
|
|
227
232
|
completed: boolean;
|
|
228
233
|
authorizationMode?: AuthorizationMode;
|
|
234
|
+
/** Canonical receipt for the bundled authorization that released these words. */
|
|
235
|
+
payment?: WordPaymentReceipt;
|
|
229
236
|
transactionHash?: string;
|
|
230
237
|
transactionHashes?: string[];
|
|
231
238
|
settlementId?: string;
|
|
@@ -241,6 +248,18 @@ export interface WordPaymentReceipt {
|
|
|
241
248
|
sequence: number;
|
|
242
249
|
meteringUnit: "word";
|
|
243
250
|
amountAtomic: AtomicAmount;
|
|
251
|
+
/** Present when one payment authorized more than one delivered word. */
|
|
252
|
+
bundleSequence?: number;
|
|
253
|
+
/** Present for bundle receipts; first delivered word sequence in the bundle. */
|
|
254
|
+
startSequence?: number;
|
|
255
|
+
/** Present for bundle receipts; last delivered word sequence in the bundle. */
|
|
256
|
+
endSequence?: number;
|
|
257
|
+
/** Number of words released by this payment. Defaults to 1 for legacy receipts. */
|
|
258
|
+
wordsDelivered?: number;
|
|
259
|
+
/** Creator price for each delivered word before bundle multiplication. */
|
|
260
|
+
pricePerWordAtomic?: AtomicAmount;
|
|
261
|
+
/** Text released by this payment. */
|
|
262
|
+
text?: string;
|
|
244
263
|
currency: "USDC";
|
|
245
264
|
network?: string;
|
|
246
265
|
payTo?: `0x${string}`;
|
|
@@ -325,6 +344,22 @@ export type GatewayEvent =
|
|
|
325
344
|
totalWordsStreamed: number;
|
|
326
345
|
totalPaidAtomic: AtomicAmount;
|
|
327
346
|
}
|
|
347
|
+
| {
|
|
348
|
+
type: "article.bundle";
|
|
349
|
+
sessionId: string;
|
|
350
|
+
articleId: string;
|
|
351
|
+
bundleSequence: number;
|
|
352
|
+
startSequence: number;
|
|
353
|
+
endSequence: number;
|
|
354
|
+
words: Array<{ sequence: number; word: string; priceAtomic: AtomicAmount }>;
|
|
355
|
+
text: string;
|
|
356
|
+
wordCount: number;
|
|
357
|
+
pricePerWordAtomic: AtomicAmount;
|
|
358
|
+
amountAtomic: AtomicAmount;
|
|
359
|
+
paymentId?: string;
|
|
360
|
+
totalWordsStreamed: number;
|
|
361
|
+
totalPaidAtomic: AtomicAmount;
|
|
362
|
+
}
|
|
328
363
|
| {
|
|
329
364
|
type: "article.usage";
|
|
330
365
|
sessionId: string;
|