@zkproofport-ai/sdk 0.2.17 → 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 (63) hide show
  1. package/README.md +120 -154
  2. package/dist/actionApproval.d.ts +51 -0
  3. package/dist/actionApproval.d.ts.map +1 -0
  4. package/dist/actionApproval.js +216 -0
  5. package/dist/actionApproval.js.map +1 -0
  6. package/dist/attestation.d.ts +6 -1
  7. package/dist/attestation.d.ts.map +1 -1
  8. package/dist/attestation.js +41 -4
  9. package/dist/attestation.js.map +1 -1
  10. package/dist/cdp.d.ts +3 -3
  11. package/dist/circuits.d.ts +1 -3
  12. package/dist/circuits.d.ts.map +1 -1
  13. package/dist/circuits.js +0 -4
  14. package/dist/circuits.js.map +1 -1
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +0 -10
  17. package/dist/constants.js.map +1 -1
  18. package/dist/extract.d.ts.map +1 -1
  19. package/dist/extract.js +5 -7
  20. package/dist/extract.js.map +1 -1
  21. package/dist/flow.d.ts +2 -2
  22. package/dist/flow.d.ts.map +1 -1
  23. package/dist/flow.js +42 -30
  24. package/dist/flow.js.map +1 -1
  25. package/dist/index.d.ts +3 -4
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -12
  28. package/dist/index.js.map +1 -1
  29. package/dist/inputs.d.ts +4 -3
  30. package/dist/inputs.d.ts.map +1 -1
  31. package/dist/inputs.js +4 -7
  32. package/dist/inputs.js.map +1 -1
  33. package/dist/payment.d.ts +7 -9
  34. package/dist/payment.d.ts.map +1 -1
  35. package/dist/payment.js +20 -43
  36. package/dist/payment.js.map +1 -1
  37. package/dist/typedAction.js +1 -1
  38. package/dist/typedAction.js.map +1 -1
  39. package/dist/types.d.ts +12 -11
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js +0 -2
  42. package/dist/types.js.map +1 -1
  43. package/dist/usdc.d.ts +6 -10
  44. package/dist/usdc.d.ts.map +1 -1
  45. package/dist/usdc.js +6 -11
  46. package/dist/usdc.js.map +1 -1
  47. package/dist/wallets.d.ts +8 -34
  48. package/dist/wallets.d.ts.map +1 -1
  49. package/dist/wallets.js +10 -87
  50. package/dist/wallets.js.map +1 -1
  51. package/package.json +2 -12
  52. package/dist/arcWallet.d.ts +0 -50
  53. package/dist/arcWallet.d.ts.map +0 -1
  54. package/dist/arcWallet.js +0 -155
  55. package/dist/arcWallet.js.map +0 -1
  56. package/dist/delegation.d.ts +0 -107
  57. package/dist/delegation.d.ts.map +0 -1
  58. package/dist/delegation.js +0 -126
  59. package/dist/delegation.js.map +0 -1
  60. package/dist/nanopayment.d.ts +0 -71
  61. package/dist/nanopayment.d.ts.map +0 -1
  62. package/dist/nanopayment.js +0 -77
  63. package/dist/nanopayment.js.map +0 -1
@@ -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
@@ -1,8 +1,7 @@
1
1
  import { PROVABLE_CIRCUIT_IDS } from './circuits.js';
2
+ import type { ActionApproval } from './actionApproval.js';
2
3
  /** Client-friendly circuit aliases. */
3
4
  export type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain'
4
- /** Coinbase KYC, optionally binding the signature to one EIP-712 action. */
5
- | 'arc_eligibility'
6
5
  /** GIWA account attestation, optionally binding one EIP-712 action. */
7
6
  | 'giwa_attestation';
8
7
  /**
@@ -169,7 +168,7 @@ export interface ApprovedPayment {
169
168
  amount: string;
170
169
  asset: string;
171
170
  payTo: string;
172
- /** Exact EIP-3009: verifyingContract = asset. Gateway: use offer.extra.verifyingContract. */
171
+ /** Exact EIP-3009: verifyingContract = asset. */
173
172
  extra: {
174
173
  name: string;
175
174
  version: string;
@@ -180,7 +179,7 @@ export interface ProofParams {
180
179
  circuit: CircuitName;
181
180
  /**
182
181
  * Which chain to pay on, when the service charges. Either the CAIP-2 id
183
- * (`eip155:5042002`) or the plain name (`arc-testnet`).
182
+ * (`eip155:84532`) or the plain name (`base-sepolia`).
184
183
  *
185
184
  * Omitting it takes the first chain the service offers. Naming a chain it
186
185
  * does not offer is an error listing what it does -- never a quiet fall
@@ -201,14 +200,18 @@ export interface ProofParams {
201
200
  /** OIDC provider: 'google' (default) or 'microsoft' for Microsoft 365 */
202
201
  provider?: 'google' | 'microsoft';
203
202
  /**
204
- * Optional for arc_eligibility and giwa_attestation; rejected for every
203
+ * Optional for giwa_attestation; rejected for every
205
204
  * other circuit, including OIDC.
206
- * The local wallet signs these exact EIP-712 fields after shape, root-type and
207
- * value validation. The relying contract must compare the domain/action hashes
205
+ * A human wallet must approve these exact EIP-712 fields. generateProof throws
206
+ * ActionApprovalRequiredError with a resumable handle until approval is ready.
207
+ * The supplied attestation signer is never used for actions.
208
+ * The relying contract must compare the domain/action hashes
208
209
  * and enforce the approved actor, amount, nonce and deadline.
209
210
  * Coinbase circuits without an action use personal_sign; OIDC does not sign.
210
211
  */
211
212
  action?: TypedAction;
213
+ /** Private handle returned by ActionApprovalRequiredError; resume the same action with it. */
214
+ actionApproval?: ActionApproval;
212
215
  }
213
216
  export interface ProofResult {
214
217
  circuit: string;
@@ -237,8 +240,6 @@ export interface StepResult<T = unknown> {
237
240
  export interface PaymentWallet {
238
241
  /** On-chain USDC owner (an EOA or an ERC-1271 smart wallet). */
239
242
  address: `0x${string}`;
240
- /** Separate Circle Gateway depositor, when it differs from the on-chain owner. */
241
- gatewayAddress?: `0x${string}`;
242
243
  signTypedData(message: {
243
244
  domain: Record<string, unknown>;
244
245
  types: Record<string, unknown>;
@@ -250,9 +251,9 @@ export interface PaymentWallet {
250
251
  }
251
252
  /** One chain a service will take payment on, from its 402 answer. */
252
253
  export interface PaymentOffer {
253
- /** CAIP-2, e.g. `eip155:5042002`. */
254
+ /** CAIP-2, e.g. `eip155:84532`. */
254
255
  network: string;
255
- /** The plain name, e.g. `arc-testnet`. */
256
+ /** The plain name, e.g. `base-sepolia`. */
256
257
  networkName: string;
257
258
  /** Price in that chain's USDC, in the token's own units. */
258
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;AAuBlE,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
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../src/wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../src/wallets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zkproofport-ai/sdk",
3
- "version": "0.2.17",
4
- "description": "TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.",
3
+ "version": "0.4.0",
4
+ "description": "TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC and GIWA attestation proofs. Optional EIP-712 action binding for GIWA; x402 USDC payments.",
5
5
  "keywords": [
6
6
  "sdk",
7
7
  "typescript",
@@ -18,11 +18,6 @@
18
18
  "noir-lang",
19
19
  "base-chain",
20
20
  "ethers",
21
- "arc-testnet",
22
- "experimental-arc",
23
- "circle-agent-wallet",
24
- "circle-gateway",
25
- "gateway-nanopayments",
26
21
  "action-authorization",
27
22
  "eip-712"
28
23
  ],
@@ -40,7 +35,6 @@
40
35
  "typecheck": "tsc --noEmit"
41
36
  },
42
37
  "dependencies": {
43
- "@circle-fin/x402-batching": "^3.4.0",
44
38
  "@x402/core": "^2.25.0",
45
39
  "@x402/evm": "^2.25.0",
46
40
  "ethers": "^6.13.0",
@@ -60,7 +54,6 @@
60
54
  "directory": "packages/sdk"
61
55
  },
62
56
  "peerDependencies": {
63
- "@circle-fin/developer-controlled-wallets": ">=10.0.0",
64
57
  "@coinbase/cdp-sdk": ">=1.55.0",
65
58
  "@x402/extensions": ">=2.25.0"
66
59
  },
@@ -68,9 +61,6 @@
68
61
  "@coinbase/cdp-sdk": {
69
62
  "optional": true
70
63
  },
71
- "@circle-fin/developer-controlled-wallets": {
72
- "optional": true
73
- },
74
64
  "@x402/extensions": {
75
65
  "optional": true
76
66
  }
@@ -1,50 +0,0 @@
1
- /**
2
- * Paying from an Arc agent wallet, through Circle's CLI.
3
- *
4
- * ## Why the CLI and not an API
5
- *
6
- * An Arc agent wallet is not a key this process can hold. Circle keeps it, and
7
- * everything that touches it — creating it, reading its balance, signing with
8
- * it — goes through `@circle-fin/cli`, which authenticates with a login that a
9
- * person does once. So the integration is a wrapper around that command, and
10
- * the alternative would be reimplementing Circle's auth, which is both work and
11
- * a second thing to get wrong.
12
- *
13
- * ## What this buys over a private key
14
- *
15
- * The wallet carries policies Circle enforces: spending limits per period,
16
- * recipient allowlists, contract blocklists. A raw key has none of that — it
17
- * signs whatever it is handed. That is the whole point of an agent holding
18
- * money: the agent acts on its own, and the limits are not the agent's to
19
- * ignore.
20
- *
21
- * ## What it costs
22
- *
23
- * A subprocess per signature, and the CLI must be installed and logged in. Both
24
- * are checked before signing rather than discovered as a cryptic failure, and
25
- * the errors here say which of the two is missing and what command fixes it.
26
- */
27
- import type { PaymentWallet } from './types.js';
28
- /** How Circle names Arc's chains. Not ours to choose. */
29
- export declare const ARC_CLI_CHAINS: {
30
- readonly testnet: "ARC-TESTNET";
31
- readonly mainnet: "ARC";
32
- };
33
- export type ArcCliChain = (typeof ARC_CLI_CHAINS)[keyof typeof ARC_CLI_CHAINS];
34
- /** The agent wallets Circle holds for this login on one chain. */
35
- export declare function listArcAgentWallets(chain?: ArcCliChain): Promise<string[]>;
36
- /** Create one. Circle caps an account at five. */
37
- export declare function createArcAgentWallet(): Promise<string>;
38
- /**
39
- * A payment wallet backed by an Arc agent wallet.
40
- *
41
- * `address` may be omitted, in which case the single agent wallet on that chain
42
- * is used — and having none, or several, is an error rather than a guess:
43
- * paying from a wallet the caller did not name spends somebody's money
44
- * somewhere they did not choose.
45
- */
46
- export declare function walletFromArcAgent(opts?: {
47
- address?: string;
48
- chain?: ArcCliChain;
49
- }): Promise<PaymentWallet>;
50
- //# sourceMappingURL=arcWallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arcWallet.d.ts","sourceRoot":"","sources":["../src/arcWallet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,yDAAyD;AACzD,eAAO,MAAM,cAAc;;;CAAsD,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAuC/E,kEAAkE;AAClE,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,WAAoC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKxG;AAED,kDAAkD;AAClD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK5D;AAiBD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkE9B"}