@ic402/client 2.16.1 → 2.17.0

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 CHANGED
@@ -41,21 +41,23 @@ const results = await client.call('search', ['what is x402?', []]);
41
41
  import { Ed25519KeyIdentity } from '@icp-sdk/core/identity';
42
42
 
43
43
  const voucherKey = Ed25519KeyIdentity.generate();
44
+ const sessionAgent = await HttpAgent.create({ host: 'https://icp-api.io', identity: voucherKey });
44
45
  const session = await client.openSession(
45
46
  {},
46
47
  {
47
48
  sign: (payload) => voucherKey.sign(payload),
48
49
  getPublicKey: async () => voucherKey.getPublicKey().toRaw(),
50
+ actorFactory: (id) => Actor.createActor(exampleIdlFactory, { agent: sessionAgent, canisterId: id }),
49
51
  },
50
52
  );
51
53
 
52
- const answer = await session.call('sessionQuery', ['question']); // voucher-signed, no on-chain tx
54
+ const answer = await session.call('sessionQuery', ['question']); // sent as the session key, no on-chain tx
53
55
  console.log(session.consumed, session.remaining);
54
56
 
55
57
  const receipt = await session.close(); // settle consumed + refund remainder
56
58
  ```
57
59
 
58
- One escrow deposit on open, settle + refund on close — every call in between is an Ed25519 voucher the canister verifies in-canister, with no ledger call and no gas (the check costs the canister ~420M cycles; see [costs-and-rails.md](https://github.com/vhew/ic402/blob/master/docs/costs-and-rails.md)).
60
+ One escrow deposit on open, settle + refund on close — every call in between is a cumulative voucher, with no ledger call and no gas. Two modes (2.17.0): with `actorFactory` on the signer, each call is made **as the session key**, the IC authenticates it, and the canister (`consumeVoucherFrom`) runs no signature check (~8M cycles); without it, calls go through the client's actor and the canister verifies the voucher's Ed25519 signature (~420M cycles; see [costs-and-rails.md](https://github.com/vhew/ic402/blob/master/docs/costs-and-rails.md)) — only while its signed-voucher fallback is on (the library default; the example turns it off). Vouchers are signed either way, so a new client also works against older canisters. A session-paid endpoint that issues a content grant binds it to `msg.caller`, i.e. the session key: redeem it through the session agent (`fetchContent(delivery, { canisterId, actorFactory: (id) => Actor.createActor(exampleIdlFactory, { agent: sessionAgent, canisterId: id }) })`). `open`/`close` stay on the payer's actor.
59
61
 
60
62
  ### EIP-3009 EVM payment
61
63
 
@@ -99,14 +101,16 @@ Submit the signed authorization either in an x402 `X-PAYMENT` header (HTTP rail)
99
101
  | `ledger?` | `string` | Ledger canister id for ICRC-2 auto-approval. |
100
102
  | `ledgerActorFactory?` | `(ledgerCanisterId: string) => any` | Required for ICP auto-payment. |
101
103
  | `evmRpcUrl?` | `string` | Custom EVM RPC; defaults to a public RPC per chain. |
102
- | `approvalFeeBuffer?` | `bigint` | Added to ICRC-2 approvals (default `100_000n`). |
104
+ | `approvalFeeBuffer?` | `bigint` | When set, used as the ledger fee instead of querying `icrc1_fee()`. ICRC-2 approvals are exactly `amount + fee` and expire after 5 minutes (a ledger actor without `icrc1_fee` uses `100_000n`). |
105
+
106
+ Approvals replace the allowance, so two payments from one identity in flight at once may fail with `InsufficientAllowance` — never a double payment; retry the one that failed. The payment `sender` must be the principal the `actorFactory`'s agent calls with: Candid paths refuse a mismatch (`Gateway.settleFrom`).
103
107
 
104
108
  ### `Ic402Client` methods
105
109
 
106
110
  | Method | Description |
107
111
  |--------|-------------|
108
112
  | `call(method: string, args: unknown[], canisterId?: string): Promise<unknown>` | Call a paid method with auto-402 handling. The method's **last argument must be the `opt PaymentSignature`** — pass `[]` and the client retries with the signature in that slot. Unwraps `{ ok }` variants. |
109
- | `openSession(sessionConfig?: Partial<SessionPreferences>, signer?: VoucherSigner, canisterId?: string): Promise<SessionHandle>` | Open a streaming session: fetch `requestSession()` intent → ICRC-2 approve the deposit (ICP, when `autoPayment`) → `openSession` on the canister. EVM sessions: pass `evmNetwork`/`evmSender`/`authorization` (and optionally `evmTxHash`/`evmToken`/`evmRecipient`) in `sessionConfig`. |
113
+ | `openSession(sessionConfig?: Partial<SessionPreferences>, signer?: VoucherSigner, canisterId?: string): Promise<SessionHandle>` | Open a streaming session (`signer` is required since 2.17.0; it throws without one): fetch `requestSession()` intent → ICRC-2 approve the deposit, `min(suggestedDeposit, maxDeposit)` + fee (ICP, when `autoPayment`) → `openSession` on the canister. EVM sessions: pass `evmNetwork`/`evmSender`/`authorization` (and optionally `evmTxHash`/`evmToken`/`evmRecipient`) in `sessionConfig`. |
110
114
  | `fetchContent(delivery: ContentDelivery, options?: { canisterId?: string; actorFactory?: (id: string) => any }): Promise<Uint8Array>` | Fetch paid content for any `DeliveryMethod`: `inline`, `httpUrl`, `assetCanister`, or chunked `canisterQuery` (needs `options`). |
111
115
  | `fetchX402(url: string, options?: { init?: RequestInit; chainId?: number }): Promise<FetchX402Result>` | Buy from an external x402 API: probe → the canister signs the EIP-3009 header (`signX402Payment`) → retry with `X-Payment`. Requires an `eip155:*` network or explicit `chainId`. |
112
116
  | `registerAgent(rpcUrl?: string, chainId?: number): Promise<{ tokenId: bigint \| null; txHash: string }>` | ERC-8004 registration: fetch nonce/fees → canister signs → broadcast → poll receipt (throws on revert). |
package/dist/client.d.ts CHANGED
@@ -54,7 +54,10 @@ export interface Ic402ClientConfig {
54
54
  ledgerActorFactory?: (ledgerCanisterId: string) => any;
55
55
  /** Custom EVM RPC URL. If omitted, uses a public RPC for the chain. */
56
56
  evmRpcUrl?: string;
57
- /** Fee buffer added to ICRC-2 approval amount (default: 100_000). */
57
+ /**
58
+ * When set, used as the ledger fee instead of querying `icrc1_fee()` (approvals are exactly
59
+ * `amount + fee`, expiring after 5 minutes). A ledger actor without `icrc1_fee` uses 100_000.
60
+ */
58
61
  approvalFeeBuffer?: bigint;
59
62
  }
60
63
  export interface SessionHandle {
@@ -75,6 +78,13 @@ export interface SessionHandle {
75
78
  export declare class Ic402Client {
76
79
  private config;
77
80
  constructor(config: Ic402ClientConfig);
81
+ /**
82
+ * 2.17.0: approve exactly `amount` + the ledger fee (what `icrc2_transfer_from` deducts on top),
83
+ * expiring in 5 minutes (the canister's default nonce expiry), so no allowance stands afterwards
84
+ * — ICP settlement over HTTP is allowance-authenticated. Approvals REPLACE the allowance, so two
85
+ * overlapping payments from one identity may fail with InsufficientAllowance (never double-pay).
86
+ */
87
+ private approvalFor;
78
88
  /**
79
89
  * Call a canister method, auto-handling 402 payment if needed.
80
90
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -31,6 +31,19 @@ export class Ic402Client {
31
31
  constructor(config) {
32
32
  this.config = config;
33
33
  }
34
+ /**
35
+ * 2.17.0: approve exactly `amount` + the ledger fee (what `icrc2_transfer_from` deducts on top),
36
+ * expiring in 5 minutes (the canister's default nonce expiry), so no allowance stands afterwards
37
+ * — ICP settlement over HTTP is allowance-authenticated. Approvals REPLACE the allowance, so two
38
+ * overlapping payments from one identity may fail with InsufficientAllowance (never double-pay).
39
+ */
40
+ async approvalFor(ledgerActor, amount) {
41
+ const fee = this.config.approvalFeeBuffer ??
42
+ (typeof ledgerActor.icrc1_fee === 'function'
43
+ ? BigInt(await ledgerActor.icrc1_fee())
44
+ : 100000n);
45
+ return { amount: amount + fee, expires_at: [BigInt(Date.now() + 300_000) * 1000000n] };
46
+ }
34
47
  /**
35
48
  * Call a canister method, auto-handling 402 payment if needed.
36
49
  *
@@ -58,22 +71,24 @@ export class Ic402Client {
58
71
  if (!this.config.ledger || !this.config.ledgerActorFactory) {
59
72
  throw new Error('Auto-approval requires ledger and ledgerActorFactory in config');
60
73
  }
61
- // ICRC-2 approve: allow the target canister to spend amount + fee buffer
74
+ // ICRC-2 approve: allow the target canister to spend exactly amount + fee (approvalFor)
62
75
  const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
76
+ const approval = await this.approvalFor(ledgerActor, requirement.amount);
63
77
  const approveResult = await ledgerActor.icrc2_approve({
64
78
  spender: { owner: Principal.fromText(cid), subaccount: [] },
65
- amount: requirement.amount + (this.config.approvalFeeBuffer ?? 100000n),
79
+ amount: approval.amount,
66
80
  fee: [],
67
81
  memo: [],
68
82
  from_subaccount: [],
69
83
  created_at_time: [],
70
84
  expected_allowance: [],
71
- expires_at: [],
85
+ expires_at: approval.expires_at,
72
86
  });
73
87
  if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
74
88
  throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
75
89
  }
76
- // Construct PaymentSignature from the requirement's nonce and retry.
90
+ // Construct PaymentSignature from the requirement's nonce and retry. `sender` MUST be the
91
+ // principal the actor calls with: Candid paths refuse a mismatch (Gateway.settleFrom).
77
92
  const nonce = toByteArray(requirement.nonce ?? new Uint8Array(32));
78
93
  const sender = this.config.identity?.getPrincipal().toText() ?? '';
79
94
  const sig = {
@@ -106,9 +121,16 @@ export class Ic402Client {
106
121
  * Flow: requestSession → calculate deposit → icrc2_approve → openSession → SessionHandle
107
122
  */
108
123
  async openSession(sessionConfig, signer, canisterId) {
124
+ // 2.17.0: no signer used to register an all-zero key, a small-order key anyone can sign as
125
+ // (the IC's ingress check is cofactored); canisters now refuse one, so fail before approving.
126
+ if (!signer)
127
+ throw new Error('openSession requires a VoucherSigner (the session key)');
109
128
  const cid = canisterId ?? this.config.canisterId;
110
129
  const config = sessionConfig;
111
130
  const actor = this.config.actorFactory(cid);
131
+ // 2.17.0: session calls go out AS the session key when the signer supplies a factory (the
132
+ // canister then skips the signature check); open/close stay on the payer's actor.
133
+ const sessionActor = signer.actorFactory ? signer.actorFactory(cid) : actor;
112
134
  let intent = await actor.requestSession();
113
135
  // For EVM sessions, override the intent's network, token, and recipient
114
136
  if (config?.evmNetwork) {
@@ -127,15 +149,19 @@ export class Ic402Client {
127
149
  // ICRC-2 approve deposit amount (ICP sessions only)
128
150
  if (!isEvm && this.config.autoPayment && this.config.ledger && this.config.ledgerActorFactory) {
129
151
  const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
152
+ // Approve what the canister pulls, min(suggestedDeposit, maxDeposit) (Sessions.openSession),
153
+ // not the cap: any excess would stand as an allowance an HTTP settle could spend.
154
+ const deposit = maxDeposit < intent.suggestedDeposit ? maxDeposit : intent.suggestedDeposit;
155
+ const approval = await this.approvalFor(ledgerActor, deposit);
130
156
  const approveResult = await ledgerActor.icrc2_approve({
131
157
  spender: { owner: Principal.fromText(cid), subaccount: [] },
132
- amount: maxDeposit + (this.config.approvalFeeBuffer ?? 100000n),
158
+ amount: approval.amount,
133
159
  fee: [],
134
160
  memo: [],
135
161
  from_subaccount: [],
136
162
  created_at_time: [],
137
163
  expected_allowance: [],
138
- expires_at: [],
164
+ expires_at: approval.expires_at,
139
165
  });
140
166
  if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
141
167
  throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
@@ -150,10 +176,7 @@ export class Ic402Client {
150
176
  // publicKey: Ed25519 public key for voucher verification (both ICP and EVM).
151
177
  // signature: empty for ICP, EVM tx hash bytes for EVM.
152
178
  // sender: empty for ICP (filled by identity), payer's EVM address for EVM.
153
- let pubKey = new Uint8Array(32);
154
- if (signer) {
155
- pubKey = new Uint8Array(await signer.getPublicKey());
156
- }
179
+ const pubKey = new Uint8Array(await signer.getPublicKey());
157
180
  const evmAuth = config?.authorization;
158
181
  const sig = {
159
182
  scheme: 'exact',
@@ -230,7 +253,7 @@ export class Ic402Client {
230
253
  sequence: nextSequence,
231
254
  signature,
232
255
  };
233
- const callResult = await actor[method](voucher, ...callArgs);
256
+ const callResult = await sessionActor[method](voucher, ...callArgs);
234
257
  if (callResult && typeof callResult === 'object' && 'error' in callResult) {
235
258
  throw new Error(callResult.error);
236
259
  }
@@ -261,7 +284,7 @@ export class Ic402Client {
261
284
  sequence: nextSequence,
262
285
  signature: sig,
263
286
  };
264
- const callResult = await actor[method](v, ...callArgs);
287
+ const callResult = await sessionActor[method](v, ...callArgs);
265
288
  if (callResult && typeof callResult === 'object' && 'error' in callResult) {
266
289
  throw new Error(callResult.error);
267
290
  }
@@ -529,18 +552,18 @@ export class Ic402Client {
529
552
  }
530
553
  const req0 = unwrapOpt(result.paymentRequired);
531
554
  const amount = req0?.amount ?? 0n;
532
- // Approve amount + fee buffer (ICRC-2 transfer_from deducts fee from allowance)
533
- const approveAmount = amount + (this.config.approvalFeeBuffer ?? 100000n);
555
+ // Approve exactly amount + fee (ICRC-2 transfer_from deducts the fee from the allowance)
534
556
  const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
557
+ const approval = await this.approvalFor(ledgerActor, amount);
535
558
  const approveResult = await ledgerActor.icrc2_approve({
536
559
  spender: { owner: Principal.fromText(this.config.canisterId), subaccount: [] },
537
- amount: approveAmount,
560
+ amount: approval.amount,
538
561
  fee: [],
539
562
  memo: [],
540
563
  from_subaccount: [],
541
564
  created_at_time: [],
542
565
  expected_allowance: [],
543
- expires_at: [],
566
+ expires_at: approval.expires_at,
544
567
  });
545
568
  if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
546
569
  throw new Ic402Error('sign_failed', `ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/voucher.d.ts CHANGED
@@ -11,6 +11,14 @@ declare function encodeVoucherPayload(canisterId: string, sessionId: string, cum
11
11
  export interface VoucherSigner {
12
12
  sign(payload: Uint8Array): Promise<Uint8Array>;
13
13
  getPublicKey(): Promise<Uint8Array>;
14
+ /**
15
+ * 2.17.0: an actor factory whose agent authenticates AS this key. When present, the SDK submits
16
+ * every session call through it, so the canister sees the session key as `msg.caller` and needs
17
+ * no in-canister signature check (`Gateway.consumeVoucherFrom`). When absent, calls go through
18
+ * the client's `actorFactory` and are authenticated by the voucher signature alone (legacy —
19
+ * needs the canister's signed-voucher fallback: on by default in the library, off in the example).
20
+ */
21
+ actorFactory?: (canisterId: string) => any;
14
22
  }
15
23
  /**
16
24
  * Sign a cumulative voucher for a session.
@@ -1 +1 @@
1
- {"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,UAAU,CAEZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,UAAU,CAEZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC;;;;;;OAMG;IAEH,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,GAAG,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"voucher.js","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,oDAAoD;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,MAAM,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAOD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"voucher.js","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,oDAAoD;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,MAAM,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAgBD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ic402/client",
3
- "version": "2.16.1",
3
+ "version": "2.17.0",
4
4
  "description": "TypeScript client SDK for ic402-enabled ICP canisters",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Vaughn Hew",