@zkproofport-ai/sdk 0.3.0 → 0.4.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.
Files changed (60) hide show
  1. package/README.md +52 -134
  2. package/dist/actionApproval.js +1 -1
  3. package/dist/actionApproval.js.map +1 -1
  4. package/dist/attestation.d.ts +6 -1
  5. package/dist/attestation.d.ts.map +1 -1
  6. package/dist/attestation.js +41 -4
  7. package/dist/attestation.js.map +1 -1
  8. package/dist/cdp.d.ts +3 -3
  9. package/dist/circuits.d.ts +1 -3
  10. package/dist/circuits.d.ts.map +1 -1
  11. package/dist/circuits.js +0 -4
  12. package/dist/circuits.js.map +1 -1
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +0 -10
  15. package/dist/constants.js.map +1 -1
  16. package/dist/extract.d.ts.map +1 -1
  17. package/dist/extract.js +5 -7
  18. package/dist/extract.js.map +1 -1
  19. package/dist/flow.d.ts.map +1 -1
  20. package/dist/flow.js +13 -14
  21. package/dist/flow.js.map +1 -1
  22. package/dist/index.d.ts +1 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -12
  25. package/dist/index.js.map +1 -1
  26. package/dist/inputs.d.ts +4 -3
  27. package/dist/inputs.d.ts.map +1 -1
  28. package/dist/inputs.js +4 -7
  29. package/dist/inputs.js.map +1 -1
  30. package/dist/payment.d.ts +7 -9
  31. package/dist/payment.d.ts.map +1 -1
  32. package/dist/payment.js +20 -43
  33. package/dist/payment.js.map +1 -1
  34. package/dist/typedAction.js +1 -1
  35. package/dist/typedAction.js.map +1 -1
  36. package/dist/types.d.ts +5 -9
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +0 -2
  39. package/dist/types.js.map +1 -1
  40. package/dist/usdc.d.ts +6 -10
  41. package/dist/usdc.d.ts.map +1 -1
  42. package/dist/usdc.js +6 -11
  43. package/dist/usdc.js.map +1 -1
  44. package/dist/wallets.d.ts +8 -34
  45. package/dist/wallets.d.ts.map +1 -1
  46. package/dist/wallets.js +10 -87
  47. package/dist/wallets.js.map +1 -1
  48. package/package.json +2 -12
  49. package/dist/arcWallet.d.ts +0 -50
  50. package/dist/arcWallet.d.ts.map +0 -1
  51. package/dist/arcWallet.js +0 -161
  52. package/dist/arcWallet.js.map +0 -1
  53. package/dist/delegation.d.ts +0 -107
  54. package/dist/delegation.d.ts.map +0 -1
  55. package/dist/delegation.js +0 -126
  56. package/dist/delegation.js.map +0 -1
  57. package/dist/nanopayment.d.ts +0 -71
  58. package/dist/nanopayment.d.ts.map +0 -1
  59. package/dist/nanopayment.js +0 -77
  60. package/dist/nanopayment.js.map +0 -1
package/dist/payment.js CHANGED
@@ -10,8 +10,8 @@
10
10
  * 3. The service settles the authorization and returns the proof.
11
11
  *
12
12
  * The buyer signs. It never submits a transaction, so it needs no gas and no
13
- * native balance on the chain it pays on -- only USDC. That holds on Base, on
14
- * Ethereum and on Arc alike.
13
+ * native balance on the chain it pays on -- only USDC. That holds on Base and
14
+ * on Ethereum alike.
15
15
  *
16
16
  * ## Why this file is short
17
17
  *
@@ -31,17 +31,14 @@
31
31
  * ## Which chains
32
32
  *
33
33
  * Any EVM chain the service offers. The v2 scheme registers as an `eip155:*`
34
- * wildcard, so nothing here holds a chain list -- Arc included, which is the
35
- * reason the offer is CAIP-2 (`eip155:5042002`) rather than a bare name. The
36
- * bare names are a fixed 24-chain table inside `@x402/evm` and Arc is not in
37
- * it.
34
+ * wildcard, so nothing here holds a chain list, and the offer is CAIP-2
35
+ * (`eip155:84532`) rather than a bare name.
38
36
  */
39
- import { supportsBatching } from '@circle-fin/x402-batching';
40
37
  import { usdcSpendControls, isKnownUsdc, knownUsdc, DEFAULT_MAX_PAYMENT } from './usdc.js';
41
38
  /**
42
39
  * The chains a 402 answer will take payment on, in the order offered.
43
40
  *
44
- * Reading this before paying is what lets a caller choose -- "pay on Arc" is a
41
+ * Reading this before paying is what lets a caller choose -- "pay on Base" is a
45
42
  * filter over this list, not a separate code path.
46
43
  */
47
44
  export function paymentOffers(challenge) {
@@ -61,30 +58,30 @@ export function paymentOffers(challenge) {
61
58
  * Sign payment for one of the offers and return the headers to retry with.
62
59
  *
63
60
  * `network` names the chain to pay on, as either the CAIP-2 id
64
- * (`eip155:5042002`) or the plain name (`arc-testnet`). Omitting it takes the
61
+ * (`eip155:84532`) or the plain name (`base-sepolia`). Omitting it takes the
65
62
  * first offer, which is the order the service listed its chains in.
66
63
  *
67
64
  * An unmatched name is an error listing what was offered. It is never a
68
65
  * silent fall back to the first chain: paying on a chain the caller did not
69
66
  * ask for spends real money in the wrong place, and the caller who typed
70
- * `--network arc` would be told the payment succeeded.
67
+ * `--network base` would be told the payment succeeded.
71
68
  */
72
69
  export function assertApprovedPayment(offer, approved) {
73
70
  const extra = offer.raw.extra;
74
71
  const isAddress = (value) => typeof value === 'string' && /^0x[0-9a-fA-F]{40}$/.test(value);
75
72
  const sameAddress = (a, b) => isAddress(a) && isAddress(b) && a.toLowerCase() === b.toLowerCase();
76
- const batched = supportsBatching(offer.raw);
77
- // Match the signing libraries, not an optional hint in the 402 response:
78
- // exact EIP-3009 uses the token asset; Circle Gateway requires its own
79
- // explicit contract. Permit2 has another domain and is not approved here.
80
- const verifyingContract = batched ? extra?.verifyingContract : offer.asset;
73
+ // Match the signing library, not an optional hint in the 402 response:
74
+ // exact EIP-3009 signs against the token asset. Permit2 has another domain
75
+ // and is not approved here, and neither is a Circle Gateway batched domain
76
+ // (`GatewayWalletBatched`), which this SDK does not sign.
77
+ const verifyingContract = offer.asset;
81
78
  const supportedDomain = offer.raw.scheme === 'exact' && /^eip155:[1-9]\d*$/.test(offer.network) &&
82
79
  typeof extra?.name === 'string' && extra.name.length > 0 &&
83
80
  typeof extra?.version === 'string' && extra.version.length > 0 &&
84
81
  (extra.assetTransferMethod === undefined || extra.assetTransferMethod === 'eip3009') &&
85
- (batched || extra.name !== 'GatewayWalletBatched') &&
82
+ extra.name !== 'GatewayWalletBatched' &&
86
83
  isAddress(verifyingContract) &&
87
- (batched || extra.verifyingContract === undefined || sameAddress(extra.verifyingContract, offer.asset));
84
+ (extra.verifyingContract === undefined || sameAddress(extra.verifyingContract, offer.asset));
88
85
  if (!supportedDomain || offer.network !== approved.network || offer.raw.scheme !== approved.scheme ||
89
86
  offer.amount !== approved.amount || !sameAddress(offer.asset, approved.asset) ||
90
87
  !sameAddress(offer.payTo, approved.payTo) || extra?.name !== approved.extra.name ||
@@ -119,9 +116,9 @@ export async function signPayment(challenge, wallet, opts = {}) {
119
116
  `. Refusing to sign: a 402 answer names the token it wants, and signing whatever it names ` +
120
117
  `lets a service ask to be paid in anything.`);
121
118
  }
122
- // x402's top-level USD cap does not cover custom allowed assets such as
123
- // Arc USDC. Enforce the same six-decimal limit on the selected offer here,
124
- // before invoking any signer, whether or not exact terms were supplied.
119
+ // x402's top-level USD cap does not cover custom allowed assets. Enforce
120
+ // the same six-decimal limit on the selected offer here, before invoking
121
+ // any signer, whether or not exact terms were supplied.
125
122
  const maximum = opts.maxPayment ?? DEFAULT_MAX_PAYMENT;
126
123
  const match = /^\$?(\d+)(?:\.(\d{1,6}))?$/.exec(maximum);
127
124
  if (!match)
@@ -134,35 +131,15 @@ export async function signPayment(challenge, wallet, opts = {}) {
134
131
  }
135
132
  const { x402Client, x402HTTPClient } = await import('@x402/core/client');
136
133
  const { registerExactEvmScheme } = await import('@x402/evm/exact/client');
137
- const { registerBatchScheme } = await import('@circle-fin/x402-batching/client');
138
- // Spend controls stay ON. Arc's USDC is not among the library's default
139
- // assets, so paying there needs the assets named -- not the control
134
+ // Spend controls stay ON, with the USDC assets named -- not the control
140
135
  // disabled, which would allow any token on any chain.
141
136
  const client = new x402Client();
142
137
  client.setSpendControls(usdcSpendControls(opts.maxPayment));
143
- // How the authorization gets signed depends on the offer.
144
- //
145
- // A batched offer is signed against Circle Gateway's wallet contract, not
146
- // against USDC, and the two signatures are not interchangeable: registering
147
- // the ordinary scheme and then the batched one leaves the ordinary one
148
- // signing, which Gateway rejects as `unauthorized` -- a valid signature over
149
- // the wrong thing. Circle's own way is to hand the ordinary scheme in as the
150
- // fallback, so ONE composite scheme picks per offer.
151
- const batched = supportsBatching(offer.raw);
152
138
  const signer = {
153
- address: batched ? (wallet.gatewayAddress ?? wallet.address) : wallet.address,
139
+ address: wallet.address,
154
140
  signTypedData: wallet.signTypedData.bind(wallet),
155
141
  };
156
- if (batched) {
157
- const { ExactEvmScheme } = await import('@x402/evm/exact/client');
158
- registerBatchScheme(client, {
159
- signer: signer,
160
- fallbackScheme: new ExactEvmScheme(wallet),
161
- });
162
- }
163
- else {
164
- registerExactEvmScheme(client, { signer: signer });
165
- }
142
+ registerExactEvmScheme(client, { signer: signer });
166
143
  const http = new x402HTTPClient(client);
167
144
  const payload = await client.createPaymentPayload({
168
145
  x402Version: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ const ADDRESS = /^0x[0-9a-fA-F]{40}$/;
2
2
  /** The reason the value is not a usable action, or `null` when it is one. */
3
3
  export function validateTypedAction(value) {
4
4
  if (value === undefined || value === null) {
5
- return 'action is required for arc_eligibility. The circuit proves that a wallet authorised ONE EIP-712 action; there is nothing to prove without it.';
5
+ return 'action is required. The circuit proves that a wallet authorised ONE EIP-712 action; there is nothing to prove without it.';
6
6
  }
7
7
  if (typeof value !== 'object' || Array.isArray(value)) {
8
8
  return 'action must be an object.';
@@ -1 +1 @@
1
- {"version":3,"file":"typedAction.js","sourceRoot":"","sources":["../src/typedAction.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,+IAA+I,CAAC;IACzJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,MAAM,CAAC,GAAG,KAA6B,CAAC;IAExC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAU,EAAE,CAAC;QAClE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,iBAAiB,CAAC,8BAA8B,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,2CAA2C,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,OAAO,gEAAgE,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,uBAAuB,CAAC,CAAC,WAAW,8CAA8C,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,gBAAgB,CAAC,CAAC,WAAW,sBAAsB,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,OAAkB,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"typedAction.js","sourceRoot":"","sources":["../src/typedAction.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,2HAA2H,CAAC;IACrI,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,MAAM,CAAC,GAAG,KAA6B,CAAC;IAExC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAU,EAAE,CAAC;QAClE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,iBAAiB,CAAC,8BAA8B,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,2CAA2C,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,OAAO,gEAAgE,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,uBAAuB,CAAC,CAAC,WAAW,8CAA8C,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,gBAAgB,CAAC,CAAC,WAAW,sBAAsB,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,OAAkB,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,8 +2,6 @@ import { PROVABLE_CIRCUIT_IDS } from './circuits.js';
2
2
  import type { ActionApproval } from './actionApproval.js';
3
3
  /** Client-friendly circuit aliases. */
4
4
  export type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain'
5
- /** Coinbase KYC, optionally binding the signature to one EIP-712 action. */
6
- | 'arc_eligibility'
7
5
  /** GIWA account attestation, optionally binding one EIP-712 action. */
8
6
  | 'giwa_attestation';
9
7
  /**
@@ -170,7 +168,7 @@ export interface ApprovedPayment {
170
168
  amount: string;
171
169
  asset: string;
172
170
  payTo: string;
173
- /** Exact EIP-3009: verifyingContract = asset. Gateway: use offer.extra.verifyingContract. */
171
+ /** Exact EIP-3009: verifyingContract = asset. */
174
172
  extra: {
175
173
  name: string;
176
174
  version: string;
@@ -181,7 +179,7 @@ export interface ProofParams {
181
179
  circuit: CircuitName;
182
180
  /**
183
181
  * Which chain to pay on, when the service charges. Either the CAIP-2 id
184
- * (`eip155:5042002`) or the plain name (`arc-testnet`).
182
+ * (`eip155:84532`) or the plain name (`base-sepolia`).
185
183
  *
186
184
  * Omitting it takes the first chain the service offers. Naming a chain it
187
185
  * does not offer is an error listing what it does -- never a quiet fall
@@ -202,7 +200,7 @@ export interface ProofParams {
202
200
  /** OIDC provider: 'google' (default) or 'microsoft' for Microsoft 365 */
203
201
  provider?: 'google' | 'microsoft';
204
202
  /**
205
- * Optional for arc_eligibility and giwa_attestation; rejected for every
203
+ * Optional for giwa_attestation; rejected for every
206
204
  * other circuit, including OIDC.
207
205
  * A human wallet must approve these exact EIP-712 fields. generateProof throws
208
206
  * ActionApprovalRequiredError with a resumable handle until approval is ready.
@@ -242,8 +240,6 @@ export interface StepResult<T = unknown> {
242
240
  export interface PaymentWallet {
243
241
  /** On-chain USDC owner (an EOA or an ERC-1271 smart wallet). */
244
242
  address: `0x${string}`;
245
- /** Separate Circle Gateway depositor, when it differs from the on-chain owner. */
246
- gatewayAddress?: `0x${string}`;
247
243
  signTypedData(message: {
248
244
  domain: Record<string, unknown>;
249
245
  types: Record<string, unknown>;
@@ -255,9 +251,9 @@ export interface PaymentWallet {
255
251
  }
256
252
  /** One chain a service will take payment on, from its 402 answer. */
257
253
  export interface PaymentOffer {
258
- /** CAIP-2, e.g. `eip155:5042002`. */
254
+ /** CAIP-2, e.g. `eip155:84532`. */
259
255
  network: string;
260
- /** The plain name, e.g. `arc-testnet`. */
256
+ /** The plain name, e.g. `base-sepolia`. */
261
257
  networkName: string;
262
258
  /** Price in that chain's USDC, in the token's own units. */
263
259
  amount: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -5,7 +5,6 @@ export const CIRCUIT_NAME_MAP = {
5
5
  coinbase_kyc: CIRCUIT_IDS.COINBASE_ATTESTATION,
6
6
  coinbase_country: CIRCUIT_IDS.COINBASE_COUNTRY_ATTESTATION,
7
7
  oidc_domain: CIRCUIT_IDS.OIDC_DOMAIN_ATTESTATION,
8
- arc_eligibility: CIRCUIT_IDS.ARC_ELIGIBILITY,
9
8
  giwa_attestation: CIRCUIT_IDS.GIWA_ATTESTATION,
10
9
  };
11
10
  /** Map canonical circuit IDs back to client-friendly names. */
@@ -13,7 +12,6 @@ export const CIRCUIT_ID_MAP = {
13
12
  [CIRCUIT_IDS.COINBASE_ATTESTATION]: 'coinbase_kyc',
14
13
  [CIRCUIT_IDS.COINBASE_COUNTRY_ATTESTATION]: 'coinbase_country',
15
14
  [CIRCUIT_IDS.OIDC_DOMAIN_ATTESTATION]: 'oidc_domain',
16
- [CIRCUIT_IDS.ARC_ELIGIBILITY]: 'arc_eligibility',
17
15
  [CIRCUIT_IDS.GIWA_ATTESTATION]: 'giwa_attestation',
18
16
  };
19
17
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAwBlE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,WAAW,CAAC,oBAAoB;IAC9C,gBAAgB,EAAE,WAAW,CAAC,4BAA4B;IAC1D,WAAW,EAAE,WAAW,CAAC,uBAAuB;IAChD,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;CAC/C,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,cAAc;IAClD,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,kBAAkB;IAC9D,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,aAAa;IACpD,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB;IAChD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CACnD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAsBlE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,WAAW,CAAC,oBAAoB;IAC9C,gBAAgB,EAAE,WAAW,CAAC,4BAA4B;IAC1D,WAAW,EAAE,WAAW,CAAC,uBAAuB;IAChD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;CAC/C,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,cAAc;IAClD,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,kBAAkB;IAC9D,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,aAAa;IACpD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CACnD,CAAC"}
package/dist/usdc.d.ts CHANGED
@@ -9,11 +9,10 @@
9
9
  * exactly that: it refuses to sign for an asset outside its own default list
10
10
  * unless told otherwise, and refusing is the correct behaviour.
11
11
  *
12
- * Arc's USDC is not in that default list, so paying on Arc needs this list
13
- * rather than `spendControls: false`. The difference matters: turning the
14
- * control off allows every token on every chain, which is how an agent ends up
15
- * signing away something nobody meant to spend. This allows five specific
16
- * contracts and nothing else.
12
+ * Naming the allowed assets explicitly, rather than `spendControls: false`,
13
+ * matters: turning the control off allows every token on every chain, which is
14
+ * how an agent ends up signing away something nobody meant to spend. This
15
+ * allows four specific contracts and nothing else.
17
16
  *
18
17
  * So yes, this duplicates the server's table in `src/payment/networks.ts` --
19
18
  * deliberately. A shared table would mean the client trusting the server's
@@ -22,10 +21,7 @@
22
21
  * ## Keeping it right
23
22
  *
24
23
  * Each address was read from the chain, not from memory:
25
- * `decimals()` is 6 and `name()`/`symbol()` say USDC on all five. Arc's is the
26
- * ERC-20 view of its native balance, checked on 2026-09-09 -- name "USDC",
27
- * version "2", decimals 6, and a `DOMAIN_SEPARATOR()` that matches the hash a
28
- * client computes from those values.
24
+ * `decimals()` is 6 and `name()`/`symbol()` say USDC on all four.
29
25
  */
30
26
  /**
31
27
  * The most this SDK will sign for in one payment, unless the caller says
@@ -38,7 +34,7 @@
38
34
  */
39
35
  export declare const DEFAULT_MAX_PAYMENT = "$1";
40
36
  /**
41
- * The spend controls to sign under: these five USDC contracts, capped.
37
+ * The spend controls to sign under: these four USDC contracts, capped.
42
38
  *
43
39
  * Passing an asset the offer names that is NOT in the list produces a refusal
44
40
  * from `@x402/core` rather than a signature.
@@ -1 +1 @@
1
- {"version":3,"file":"usdc.d.ts","sourceRoot":"","sources":["../src/usdc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM;;;;;;EAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7D"}
1
+ {"version":3,"file":"usdc.d.ts","sourceRoot":"","sources":["../src/usdc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAUH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM;;;;;;EAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7D"}
package/dist/usdc.js CHANGED
@@ -9,11 +9,10 @@
9
9
  * exactly that: it refuses to sign for an asset outside its own default list
10
10
  * unless told otherwise, and refusing is the correct behaviour.
11
11
  *
12
- * Arc's USDC is not in that default list, so paying on Arc needs this list
13
- * rather than `spendControls: false`. The difference matters: turning the
14
- * control off allows every token on every chain, which is how an agent ends up
15
- * signing away something nobody meant to spend. This allows five specific
16
- * contracts and nothing else.
12
+ * Naming the allowed assets explicitly, rather than `spendControls: false`,
13
+ * matters: turning the control off allows every token on every chain, which is
14
+ * how an agent ends up signing away something nobody meant to spend. This
15
+ * allows four specific contracts and nothing else.
17
16
  *
18
17
  * So yes, this duplicates the server's table in `src/payment/networks.ts` --
19
18
  * deliberately. A shared table would mean the client trusting the server's
@@ -22,10 +21,7 @@
22
21
  * ## Keeping it right
23
22
  *
24
23
  * Each address was read from the chain, not from memory:
25
- * `decimals()` is 6 and `name()`/`symbol()` say USDC on all five. Arc's is the
26
- * ERC-20 view of its native balance, checked on 2026-09-09 -- name "USDC",
27
- * version "2", decimals 6, and a `DOMAIN_SEPARATOR()` that matches the hash a
28
- * client computes from those values.
24
+ * `decimals()` is 6 and `name()`/`symbol()` say USDC on all four.
29
25
  */
30
26
  /** CAIP-2 chain id → the USDC contract on it. */
31
27
  const USDC_BY_CHAIN = {
@@ -33,7 +29,6 @@ const USDC_BY_CHAIN = {
33
29
  'eip155:11155111': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', // Ethereum Sepolia
34
30
  'eip155:8453': '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // Base
35
31
  'eip155:84532': '0x036CbD53842c5426634e7929541eC2318f3dCF7e', // Base Sepolia
36
- 'eip155:5042002': '0x3600000000000000000000000000000000000000', // Arc, native USDC's ERC-20 view
37
32
  };
38
33
  /**
39
34
  * The most this SDK will sign for in one payment, unless the caller says
@@ -46,7 +41,7 @@ const USDC_BY_CHAIN = {
46
41
  */
47
42
  export const DEFAULT_MAX_PAYMENT = '$1';
48
43
  /**
49
- * The spend controls to sign under: these five USDC contracts, capped.
44
+ * The spend controls to sign under: these four USDC contracts, capped.
50
45
  *
51
46
  * Passing an asset the offer names that is NOT in the list produces a refusal
52
47
  * from `@x402/core` rather than a signature.
package/dist/usdc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"usdc.js","sourceRoot":"","sources":["../src/usdc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,iDAAiD;AACjD,MAAM,aAAa,GAA2B;IAC5C,UAAU,EAAE,4CAA4C,EAAa,WAAW;IAChF,iBAAiB,EAAE,4CAA4C,EAAM,mBAAmB;IACxF,aAAa,EAAE,4CAA4C,EAAU,OAAO;IAC5E,cAAc,EAAE,4CAA4C,EAAS,eAAe;IACpF,gBAAgB,EAAE,4CAA4C,EAAO,iCAAiC;CACvG,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACnD,OAAO;QACL,mBAAmB,EAAE,UAAU,IAAI,mBAAmB;QACtD,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO;YACP,KAAK;SACN,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa;IACxD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"usdc.js","sourceRoot":"","sources":["../src/usdc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iDAAiD;AACjD,MAAM,aAAa,GAA2B;IAC5C,UAAU,EAAE,4CAA4C,EAAa,WAAW;IAChF,iBAAiB,EAAE,4CAA4C,EAAM,mBAAmB;IACxF,aAAa,EAAE,4CAA4C,EAAU,OAAO;IAC5E,cAAc,EAAE,4CAA4C,EAAS,eAAe;CACrF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACnD,OAAO;QACL,mBAAmB,EAAE,UAAU,IAAI,mBAAmB;QACtD,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO;YACP,KAAK;SACN,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa;IACxD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
package/dist/wallets.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The wallet that pays for a proof.
3
3
  *
4
- * ## One interface, three wallets
4
+ * ## One interface, two wallets
5
5
  *
6
6
  * Paying for a proof means signing one EIP-712 message -- an EIP-3009
7
7
  * `TransferWithAuthorization` over USDC. Nothing else. No transaction, no gas,
@@ -17,22 +17,18 @@
17
17
  * |---|---|---|
18
18
  * | a raw private key | `walletFromPrivateKey` | the key |
19
19
  * | a Coinbase CDP server wallet | `walletFromCdp` | CDP API key id + secret + wallet secret |
20
- * | a Circle wallet, including on Arc | `walletFromCircle` | Circle API key + entity secret + wallet id |
21
20
  *
22
- * The chain is chosen separately, when paying. A CDP wallet can pay on Arc and
23
- * a Circle wallet can pay on Base; wallet and chain are independent, and the
21
+ * The chain is chosen separately, when paying. A CDP wallet can pay on
22
+ * Ethereum or on Base; wallet and chain are independent, and the
24
23
  * earlier version of this file got that wrong by baking one into the other.
25
24
  *
26
- * ## Why the CDP and Circle paths are thin
25
+ * ## Why the CDP path is thin
27
26
  *
28
- * Both vendors ship the adapter. `@coinbase/cdp-sdk/x402` exports
27
+ * Coinbase ships the adapter. `@coinbase/cdp-sdk/x402` exports
29
28
  * `fromCdpEvmAccount`, which returns exactly this interface, so the CDP path is
30
- * a call to their function rather than an EIP-712 client written here. Circle
31
- * has no x402 adapter, so `walletFromCircle` is the one adapter this file
32
- * really implements -- eleven lines around `signTypedData`, which is all Circle
33
- * needs to participate.
29
+ * a call to their function rather than an EIP-712 client written here.
34
30
  *
35
- * Both imports are lazy. Someone paying from a private key installs neither.
31
+ * The CDP import is lazy. Someone paying from a private key never installs it.
36
32
  */
37
33
  import type { PaymentWallet } from './types.js';
38
34
  /**
@@ -59,34 +55,12 @@ export declare function walletFromCdp(opts: {
59
55
  walletSecret: string;
60
56
  walletName?: string;
61
57
  }): Promise<PaymentWallet>;
62
- /**
63
- * Pay from a Circle developer-controlled wallet -- the way to pay on Arc.
64
- *
65
- * Arc is Circle's chain and USDC is its gas asset, so a Circle wallet holding
66
- * USDC there can pay without holding anything else. `ARC-TESTNET` is the
67
- * blockchain name in Circle's own SDK types; it is not needed for signing (an
68
- * authorization is chain-agnostic once the domain names the chain id) and is
69
- * only used when this wallet is asked which chain it was created for.
70
- *
71
- * Note that Arc needs no special case in the payment path itself. Asked
72
- * directly on 2026-09-09, Arc's USDC at 0x3600...0000 answers name()="USDC",
73
- * version()="2", decimals()=6, and a DOMAIN_SEPARATOR() that matches what a
74
- * client computes from those values -- so an Arc authorization is an ordinary
75
- * USDC authorization and this wallet is an ordinary signer.
76
- */
77
- export declare function walletFromCircle(opts: {
78
- apiKey: string;
79
- entitySecret: string;
80
- walletId: string;
81
- /** The wallet's address. Read from Circle when omitted. */
82
- address?: string;
83
- }): Promise<PaymentWallet>;
84
58
  /**
85
59
  * The wallet a set of environment variables describes, or an error saying
86
60
  * which variables would have been needed.
87
61
  *
88
62
  * Deliberately refuses to pick when two wallets are configured, rather than
89
- * preferring one. A machine holding both a CDP and a Circle credential has no
63
+ * preferring one. A machine holding both a private key and a CDP credential has no
90
64
  * obvious default, and silently choosing means the money leaves an account the
91
65
  * caller did not name.
92
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../src/wallets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CASrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBjH;AAED,qDAAqD;AACrD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,aAAa,CAAC,CAkCxB"}
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../src/wallets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CASrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBjH;AAED,qDAAqD;AACrD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,aAAa,CAAC,CAmBxB"}
package/dist/wallets.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The wallet that pays for a proof.
3
3
  *
4
- * ## One interface, three wallets
4
+ * ## One interface, two wallets
5
5
  *
6
6
  * Paying for a proof means signing one EIP-712 message -- an EIP-3009
7
7
  * `TransferWithAuthorization` over USDC. Nothing else. No transaction, no gas,
@@ -17,24 +17,19 @@
17
17
  * |---|---|---|
18
18
  * | a raw private key | `walletFromPrivateKey` | the key |
19
19
  * | a Coinbase CDP server wallet | `walletFromCdp` | CDP API key id + secret + wallet secret |
20
- * | a Circle wallet, including on Arc | `walletFromCircle` | Circle API key + entity secret + wallet id |
21
20
  *
22
- * The chain is chosen separately, when paying. A CDP wallet can pay on Arc and
23
- * a Circle wallet can pay on Base; wallet and chain are independent, and the
21
+ * The chain is chosen separately, when paying. A CDP wallet can pay on
22
+ * Ethereum or on Base; wallet and chain are independent, and the
24
23
  * earlier version of this file got that wrong by baking one into the other.
25
24
  *
26
- * ## Why the CDP and Circle paths are thin
25
+ * ## Why the CDP path is thin
27
26
  *
28
- * Both vendors ship the adapter. `@coinbase/cdp-sdk/x402` exports
27
+ * Coinbase ships the adapter. `@coinbase/cdp-sdk/x402` exports
29
28
  * `fromCdpEvmAccount`, which returns exactly this interface, so the CDP path is
30
- * a call to their function rather than an EIP-712 client written here. Circle
31
- * has no x402 adapter, so `walletFromCircle` is the one adapter this file
32
- * really implements -- eleven lines around `signTypedData`, which is all Circle
33
- * needs to participate.
29
+ * a call to their function rather than an EIP-712 client written here.
34
30
  *
35
- * Both imports are lazy. Someone paying from a private key installs neither.
31
+ * The CDP import is lazy. Someone paying from a private key never installs it.
36
32
  */
37
- import { walletFromArcAgent } from './arcWallet.js';
38
33
  /**
39
34
  * Pay from a raw private key.
40
35
  *
@@ -91,66 +86,12 @@ export async function walletFromCdp(opts) {
91
86
  describe: () => `CDP wallet ${opts.walletName ?? 'zkproofport-payer'} (${signer.address})`,
92
87
  };
93
88
  }
94
- /**
95
- * Pay from a Circle developer-controlled wallet -- the way to pay on Arc.
96
- *
97
- * Arc is Circle's chain and USDC is its gas asset, so a Circle wallet holding
98
- * USDC there can pay without holding anything else. `ARC-TESTNET` is the
99
- * blockchain name in Circle's own SDK types; it is not needed for signing (an
100
- * authorization is chain-agnostic once the domain names the chain id) and is
101
- * only used when this wallet is asked which chain it was created for.
102
- *
103
- * Note that Arc needs no special case in the payment path itself. Asked
104
- * directly on 2026-09-09, Arc's USDC at 0x3600...0000 answers name()="USDC",
105
- * version()="2", decimals()=6, and a DOMAIN_SEPARATOR() that matches what a
106
- * client computes from those values -- so an Arc authorization is an ordinary
107
- * USDC authorization and this wallet is an ordinary signer.
108
- */
109
- export async function walletFromCircle(opts) {
110
- let initiateDeveloperControlledWalletsClient;
111
- try {
112
- ({ initiateDeveloperControlledWalletsClient } = (await import('@circle-fin/developer-controlled-wallets')));
113
- }
114
- catch (e) {
115
- throw new Error(`Paying from a Circle wallet needs @circle-fin/developer-controlled-wallets installed: ` +
116
- `npm i @circle-fin/developer-controlled-wallets (${e.message})`);
117
- }
118
- const circle = initiateDeveloperControlledWalletsClient({
119
- apiKey: opts.apiKey,
120
- entitySecret: opts.entitySecret,
121
- });
122
- let address = opts.address;
123
- if (!address) {
124
- const got = await circle.getWallet({ id: opts.walletId });
125
- address = got.data?.wallet?.address;
126
- if (!address) {
127
- throw new Error(`Circle wallet ${opts.walletId} has no address; check the wallet id and the API key`);
128
- }
129
- }
130
- return {
131
- address: address,
132
- async signTypedData(message) {
133
- const res = await circle.signTypedData({
134
- walletId: opts.walletId,
135
- data: JSON.stringify(message),
136
- memo: 'ZKProofport proof generation fee',
137
- });
138
- const signature = res.data?.signature;
139
- if (!signature) {
140
- throw new Error(`Circle wallet ${opts.walletId} returned no signature. A wallet can only sign on a chain it was ` +
141
- `created for -- check it exists on the chain named in the payment's domain.`);
142
- }
143
- return signature;
144
- },
145
- describe: () => `Circle wallet ${opts.walletId} (${address})`,
146
- };
147
- }
148
89
  /**
149
90
  * The wallet a set of environment variables describes, or an error saying
150
91
  * which variables would have been needed.
151
92
  *
152
93
  * Deliberately refuses to pick when two wallets are configured, rather than
153
- * preferring one. A machine holding both a CDP and a Circle credential has no
94
+ * preferring one. A machine holding both a private key and a CDP credential has no
154
95
  * obvious default, and silently choosing means the money leaves an account the
155
96
  * caller did not name.
156
97
  */
@@ -160,13 +101,10 @@ export async function walletFromEnv(env = process.env) {
160
101
  configured.push('key');
161
102
  if (env.CDP_API_KEY_ID)
162
103
  configured.push('cdp');
163
- if (env.CIRCLE_API_KEY)
164
- configured.push('circle');
165
104
  if (configured.length === 0) {
166
105
  throw new Error('No payment wallet configured. Set one of:\n' +
167
106
  ' PAYMENT_PRIVATE_KEY\n' +
168
- ' CDP_API_KEY_ID + CDP_API_KEY_SECRET + CDP_WALLET_SECRET\n' +
169
- ' CIRCLE_API_KEY + CIRCLE_ENTITY_SECRET + CIRCLE_WALLET_ID');
107
+ ' CDP_API_KEY_ID + CDP_API_KEY_SECRET + CDP_WALLET_SECRET');
170
108
  }
171
109
  if (configured.length > 1) {
172
110
  throw new Error(`More than one payment wallet is configured (${configured.join(', ')}). ` +
@@ -192,23 +130,8 @@ export async function walletFor(which, env = process.env) {
192
130
  walletSecret: need('CDP_WALLET_SECRET'),
193
131
  walletName: env.CDP_WALLET_NAME,
194
132
  });
195
- case 'arc':
196
- // No credentials here: Circle's CLI holds the login, and the wallet is
197
- // whichever agent wallet that login has on Arc. `ARC_AGENT_WALLET` names
198
- // one when an account has several.
199
- return walletFromArcAgent({
200
- address: env.ARC_AGENT_WALLET,
201
- chain: env.ARC_CLI_CHAIN ?? undefined,
202
- });
203
- case 'circle':
204
- return walletFromCircle({
205
- apiKey: need('CIRCLE_API_KEY'),
206
- entitySecret: need('CIRCLE_ENTITY_SECRET'),
207
- walletId: need('CIRCLE_WALLET_ID'),
208
- address: env.CIRCLE_WALLET_ADDRESS,
209
- });
210
133
  default:
211
- throw new Error(`Unknown payment wallet '${which}'. Choose one of: key, cdp, circle, arc`);
134
+ throw new Error(`Unknown payment wallet '${which}'. Choose one of: key, cdp`);
212
135
  }
213
136
  }
214
137
  //# sourceMappingURL=wallets.js.map