@ampersend_ai/ampersend-sdk 0.0.16 → 0.0.21

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 (128) hide show
  1. package/dist/ampersend/approval.d.ts +8 -8
  2. package/dist/ampersend/approval.d.ts.map +1 -1
  3. package/dist/ampersend/approval.js +10 -15
  4. package/dist/ampersend/approval.js.map +1 -1
  5. package/dist/ampersend/client.d.ts +4 -9
  6. package/dist/ampersend/client.d.ts.map +1 -1
  7. package/dist/ampersend/client.js +25 -21
  8. package/dist/ampersend/client.js.map +1 -1
  9. package/dist/ampersend/treasurer.d.ts +14 -79
  10. package/dist/ampersend/treasurer.d.ts.map +1 -1
  11. package/dist/ampersend/treasurer.js +34 -102
  12. package/dist/ampersend/treasurer.js.map +1 -1
  13. package/dist/ampersend/types.d.ts +356 -338
  14. package/dist/ampersend/types.d.ts.map +1 -1
  15. package/dist/ampersend/types.js +120 -150
  16. package/dist/ampersend/types.js.map +1 -1
  17. package/dist/ampersend/zod-bridge.d.ts +15 -0
  18. package/dist/ampersend/zod-bridge.d.ts.map +1 -0
  19. package/dist/ampersend/zod-bridge.js +29 -0
  20. package/dist/ampersend/zod-bridge.js.map +1 -0
  21. package/dist/cli/commands/fetch.d.ts.map +1 -1
  22. package/dist/cli/commands/fetch.js.map +1 -1
  23. package/dist/cli/commands/setup.d.ts +4 -0
  24. package/dist/cli/commands/setup.d.ts.map +1 -1
  25. package/dist/cli/commands/setup.js +52 -7
  26. package/dist/cli/commands/setup.js.map +1 -1
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/client/client.d.ts +0 -3
  32. package/dist/mcp/client/client.d.ts.map +1 -1
  33. package/dist/mcp/client/client.js +10 -14
  34. package/dist/mcp/client/client.js.map +1 -1
  35. package/dist/mcp/client/factory.d.ts +0 -2
  36. package/dist/mcp/client/factory.d.ts.map +1 -1
  37. package/dist/mcp/client/factory.js +0 -3
  38. package/dist/mcp/client/factory.js.map +1 -1
  39. package/dist/mcp/client/middleware.d.ts +0 -3
  40. package/dist/mcp/client/middleware.d.ts.map +1 -1
  41. package/dist/mcp/client/middleware.js +9 -12
  42. package/dist/mcp/client/middleware.js.map +1 -1
  43. package/dist/mcp/client/protocol.d.ts +81 -85
  44. package/dist/mcp/client/protocol.d.ts.map +1 -1
  45. package/dist/mcp/client/protocol.js +17 -15
  46. package/dist/mcp/client/protocol.js.map +1 -1
  47. package/dist/mcp/client/types.d.ts +6 -19
  48. package/dist/mcp/client/types.d.ts.map +1 -1
  49. package/dist/mcp/proxy/cli.d.ts.map +1 -1
  50. package/dist/mcp/proxy/cli.js +0 -1
  51. package/dist/mcp/proxy/cli.js.map +1 -1
  52. package/dist/mcp/proxy/env.d.ts +0 -9
  53. package/dist/mcp/proxy/env.d.ts.map +1 -1
  54. package/dist/mcp/proxy/env.js +0 -2
  55. package/dist/mcp/proxy/env.js.map +1 -1
  56. package/dist/mcp/proxy/factory.d.ts +0 -2
  57. package/dist/mcp/proxy/factory.d.ts.map +1 -1
  58. package/dist/mcp/proxy/factory.js +0 -3
  59. package/dist/mcp/proxy/factory.js.map +1 -1
  60. package/dist/mcp/server/fastmcp/middleware.d.ts +9 -29
  61. package/dist/mcp/server/fastmcp/middleware.d.ts.map +1 -1
  62. package/dist/mcp/server/fastmcp/middleware.js +10 -42
  63. package/dist/mcp/server/fastmcp/middleware.js.map +1 -1
  64. package/dist/version.d.ts +1 -1
  65. package/dist/version.js +1 -1
  66. package/dist/x402/envelopes.d.ts +62 -0
  67. package/dist/x402/envelopes.d.ts.map +1 -0
  68. package/dist/x402/envelopes.js +73 -0
  69. package/dist/x402/envelopes.js.map +1 -0
  70. package/dist/x402/http/client.d.ts +37 -0
  71. package/dist/x402/http/client.d.ts.map +1 -0
  72. package/dist/x402/http/client.js +159 -0
  73. package/dist/x402/http/client.js.map +1 -0
  74. package/dist/x402/http/factory.d.ts +11 -25
  75. package/dist/x402/http/factory.d.ts.map +1 -1
  76. package/dist/x402/http/factory.js +11 -22
  77. package/dist/x402/http/factory.js.map +1 -1
  78. package/dist/x402/http/index.d.ts +4 -1
  79. package/dist/x402/http/index.d.ts.map +1 -1
  80. package/dist/x402/http/index.js +2 -1
  81. package/dist/x402/http/index.js.map +1 -1
  82. package/dist/x402/index.d.ts +4 -1
  83. package/dist/x402/index.d.ts.map +1 -1
  84. package/dist/x402/index.js +3 -2
  85. package/dist/x402/index.js.map +1 -1
  86. package/dist/x402/treasurer.d.ts +22 -47
  87. package/dist/x402/treasurer.d.ts.map +1 -1
  88. package/dist/x402/treasurers/naive.d.ts +4 -40
  89. package/dist/x402/treasurers/naive.d.ts.map +1 -1
  90. package/dist/x402/treasurers/naive.js +7 -44
  91. package/dist/x402/treasurers/naive.js.map +1 -1
  92. package/dist/x402/wallet.d.ts +7 -32
  93. package/dist/x402/wallet.d.ts.map +1 -1
  94. package/dist/x402/wallet.js +0 -3
  95. package/dist/x402/wallet.js.map +1 -1
  96. package/dist/x402/wallets/account/wallet.d.ts +9 -30
  97. package/dist/x402/wallets/account/wallet.d.ts.map +1 -1
  98. package/dist/x402/wallets/account/wallet.js +30 -37
  99. package/dist/x402/wallets/account/wallet.js.map +1 -1
  100. package/dist/x402/wallets/index.d.ts +0 -1
  101. package/dist/x402/wallets/index.d.ts.map +1 -1
  102. package/dist/x402/wallets/index.js +0 -1
  103. package/dist/x402/wallets/index.js.map +1 -1
  104. package/dist/x402/wallets/smart-account/chain.d.ts +4 -0
  105. package/dist/x402/wallets/smart-account/chain.d.ts.map +1 -0
  106. package/dist/x402/wallets/smart-account/chain.js +12 -0
  107. package/dist/x402/wallets/smart-account/chain.js.map +1 -0
  108. package/dist/x402/wallets/smart-account/cosigned.d.ts +7 -33
  109. package/dist/x402/wallets/smart-account/cosigned.d.ts.map +1 -1
  110. package/dist/x402/wallets/smart-account/cosigned.js +28 -51
  111. package/dist/x402/wallets/smart-account/cosigned.js.map +1 -1
  112. package/dist/x402/wallets/smart-account/exact.d.ts +6 -20
  113. package/dist/x402/wallets/smart-account/exact.d.ts.map +1 -1
  114. package/dist/x402/wallets/smart-account/exact.js +33 -43
  115. package/dist/x402/wallets/smart-account/exact.js.map +1 -1
  116. package/dist/x402/wallets/smart-account/wallet.d.ts +6 -39
  117. package/dist/x402/wallets/smart-account/wallet.d.ts.map +1 -1
  118. package/dist/x402/wallets/smart-account/wallet.js +9 -36
  119. package/dist/x402/wallets/smart-account/wallet.js.map +1 -1
  120. package/package.json +8 -6
  121. package/dist/x402/http/adapter.d.ts +0 -38
  122. package/dist/x402/http/adapter.d.ts.map +0 -1
  123. package/dist/x402/http/adapter.js +0 -199
  124. package/dist/x402/http/adapter.js.map +0 -1
  125. package/dist/x402/http/v2-adapter.d.ts +0 -56
  126. package/dist/x402/http/v2-adapter.d.ts.map +0 -1
  127. package/dist/x402/http/v2-adapter.js +0 -94
  128. package/dist/x402/http/v2-adapter.js.map +0 -1
@@ -1,59 +1,52 @@
1
+ import { ExactEvmScheme, toClientEvmSigner } from "@x402/evm";
2
+ import { ExactEvmSchemeV1 } from "@x402/evm/v1";
1
3
  import { privateKeyToAccount } from "viem/accounts";
2
- import { createPaymentHeader } from "x402/client";
4
+ import { acceptedOf, buildAuthorization } from "../../envelopes.js";
3
5
  import { WalletError } from "../../wallet.js";
4
6
  /**
5
- * AccountWallet - EOA (Externally Owned Account) wallet implementation
6
- *
7
- * Creates payment payloads signed by an EOA private key.
8
- * Supports the "exact" payment scheme.
9
- *
10
- * @example
11
- * ```typescript
12
- * import { privateKeyToAccount } from "viem/accounts"
13
- *
14
- * // From viem Account
15
- * const account = privateKeyToAccount("0x...")
16
- * const wallet = new AccountWallet(account)
17
- *
18
- * // From private key directly
19
- * const wallet = AccountWallet.fromPrivateKey("0x...")
20
- * ```
7
+ * EOA wallet for x402 `exact` on EVM. A `LocalAccount` is sufficient for
8
+ * EIP-3009 and base Permit2; EIP-2612 permit enrichment is skipped because it
9
+ * needs `readContract`, which `LocalAccount` lacks.
21
10
  */
22
11
  export class AccountWallet {
23
12
  account;
13
+ signer;
14
+ schemeV1;
15
+ schemeV2;
24
16
  constructor(account) {
25
17
  this.account = account;
18
+ this.signer = toClientEvmSigner({
19
+ address: account.address,
20
+ signTypedData: (msg) => account.signTypedData(msg),
21
+ });
22
+ this.schemeV1 = new ExactEvmSchemeV1(this.signer);
23
+ this.schemeV2 = new ExactEvmScheme(this.signer);
26
24
  }
27
- /**
28
- * Creates an AccountWallet from a private key
29
- */
30
25
  static fromPrivateKey(privateKey) {
31
26
  return new AccountWallet(privateKeyToAccount(privateKey));
32
27
  }
33
- /**
34
- * Creates a payment payload from requirements.
35
- * Only supports "exact" payment scheme.
36
- * Note: serverAuthorization parameter is ignored for EOA wallets (only used by SmartAccountWallet)
37
- */
38
- async createPayment(requirements, _serverAuthorization) {
39
- if (requirements.scheme !== "exact") {
40
- throw new WalletError(`Unsupported payment scheme: ${requirements.scheme}. AccountWallet only supports "exact".`);
28
+ async createPayment(instruction, serverAuthorization) {
29
+ if (serverAuthorization) {
30
+ throw new WalletError("AccountWallet received a co-signed authorization from the server, but EOA accounts " +
31
+ "cannot produce ERC-1271 co-signed payments. Use SmartAccountWallet for co-signed agent keys.");
41
32
  }
33
+ const accepted = acceptedOf(instruction);
34
+ if (accepted.scheme !== "exact") {
35
+ throw new WalletError(`Unsupported payment scheme: ${accepted.scheme}. AccountWallet only supports "exact".`);
36
+ }
37
+ // Zod-inferred shape → upstream v2-surface shape. Nominal mismatch only;
38
+ // each scheme re-narrows to the version it needs at runtime.
39
+ const requirements = accepted;
42
40
  try {
43
- // Create payment header using x402 client utility
44
- const paymentHeader = await createPaymentHeader(this.account, 1, requirements);
45
- // Decode base64 payment header to PaymentPayload
46
- const decoded = Buffer.from(paymentHeader, "base64").toString("utf-8");
47
- const payment = JSON.parse(decoded);
48
- return payment;
41
+ const result = instruction.protocol === "x402-v1"
42
+ ? await this.schemeV1.createPaymentPayload(1, requirements)
43
+ : await this.schemeV2.createPaymentPayload(2, requirements, instruction.request.extensions ? { extensions: instruction.request.extensions } : undefined);
44
+ return buildAuthorization(instruction, result.payload);
49
45
  }
50
46
  catch (error) {
51
47
  throw new WalletError(`Failed to create payment: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
52
48
  }
53
49
  }
54
- /**
55
- * Returns the account address
56
- */
57
50
  get address() {
58
51
  return this.account.address;
59
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAIjD,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAA;AAE9D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAc;IAE7B,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAe;QACnC,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CACjB,YAAiC,EACjC,oBAA8C;QAE9C,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CAAC,+BAA+B,YAAY,CAAC,MAAM,wCAAwC,CAAC,CAAA;QACnH,CAAC;QAED,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;YAE9E,iDAAiD;YACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAA;YAErD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACnB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAA;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../src/x402/wallets/account/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAsD,MAAM,oBAAoB,CAAA;AAEvH,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAA;AAE9D;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAc;IACrB,MAAM,CAAiB;IACvB,QAAQ,CAAkB;IAC1B,QAAQ,CAAgB;IAEhC,YAAY,OAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC;SACnD,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,UAAe;QACnC,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAA+B,EAC/B,mBAA6C;QAE7C,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,IAAI,WAAW,CACnB,qFAAqF;gBACnF,8FAA8F,CACjG,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,WAAW,CAAC,+BAA+B,QAAQ,CAAC,MAAM,wCAAwC,CAAC,CAAA;QAC/G,CAAC;QAED,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,YAAY,GAAG,QAAuC,CAAA;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GACV,WAAW,CAAC,QAAQ,KAAK,SAAS;gBAChC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,CAAC;gBAC3D,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CACtC,CAAC,EACD,YAAY,EACZ,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAC5F,CAAA;YACP,OAAO,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACnB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;CACF"}
@@ -16,7 +16,6 @@ export interface SmartAccountWalletConfig {
16
16
  type: "smart-account";
17
17
  smartAccountAddress: Address;
18
18
  sessionKeyPrivateKey: Hex;
19
- chainId: number;
20
19
  validatorAddress: Address;
21
20
  coSignerValidatorAddress?: Address;
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEvF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,wBAAwB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAYvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEvF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,wBAAwB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAWvE"}
@@ -16,7 +16,6 @@ export function createWalletFromConfig(config) {
16
16
  return new SmartAccountWallet({
17
17
  smartAccountAddress: config.smartAccountAddress,
18
18
  sessionKeyPrivateKey: config.sessionKeyPrivateKey,
19
- chainId: config.chainId,
20
19
  validatorAddress: config.validatorAddress,
21
20
  ...(config.coSignerValidatorAddress != null && { coSignerValidatorAddress: config.coSignerValidatorAddress }),
22
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAA;AA2BvF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAoB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,GAAG,CAAC,MAAM,CAAC,wBAAwB,IAAI,IAAI,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,CAAC;KAC9G,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402/wallets/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAA;AA0BvF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAoB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,GAAG,CAAC,MAAM,CAAC,wBAAwB,IAAI,IAAI,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE,CAAC;KAC9G,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type PaymentInstruction } from "../../envelopes.ts";
2
+ /** v1 looks up the network name; v2 parses `eip155:N`. Returns `null` for unsupported networks. */
3
+ export declare function chainIdOf(instruction: PaymentInstruction): number | null;
4
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/chain.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAExE,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAOxE"}
@@ -0,0 +1,12 @@
1
+ import { EVM_NETWORK_CHAIN_ID_MAP } from "@x402/evm/v1";
2
+ import { acceptedOf } from "../../envelopes.js";
3
+ /** v1 looks up the network name; v2 parses `eip155:N`. Returns `null` for unsupported networks. */
4
+ export function chainIdOf(instruction) {
5
+ const network = acceptedOf(instruction).network;
6
+ if (instruction.protocol === "x402-v1") {
7
+ return EVM_NETWORK_CHAIN_ID_MAP[network] ?? null;
8
+ }
9
+ const match = /^eip155:(\d+)$/.exec(network);
10
+ return match ? Number(match[1]) : null;
11
+ }
12
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,EAAE,UAAU,EAA2B,MAAM,oBAAoB,CAAA;AAExE,mGAAmG;AACnG,MAAM,UAAU,SAAS,CAAC,WAA+B;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,CAAA;IAC/C,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvC,OAAQ,wBAA6D,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACxF,CAAC;IACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACxC,CAAC"}
@@ -1,46 +1,20 @@
1
1
  import { type Address, type Hex, type TypedDataDefinition } from "viem";
2
- import type { PaymentPayload, PaymentRequirements } from "x402/types";
2
+ import { type PaymentAuthorization, type PaymentInstruction } from "../../envelopes.ts";
3
3
  import type { ServerAuthorizationData } from "../../types.ts";
4
- /**
5
- * Configuration for creating a co-signed payment
6
- */
7
4
  export interface CoSignedPaymentConfig {
8
- /** Smart account address (payment sender) */
9
5
  smartAccountAddress: Address;
10
- /** Session key private key for signing */
11
6
  sessionKeyPrivateKey: Hex;
12
- /** Chain ID for the blockchain network */
13
- chainId: number;
14
- /** CoSignerValidator address */
15
7
  coSignerValidatorAddress: Address;
16
8
  }
17
9
  /**
18
- * Encode a co-signed ERC-1271 signature
19
- *
20
- * Combines agent signature + server signature according to CoSignerValidator format:
21
- * 1. Sign typed data with agent key (raw ECDSA)
22
- * 2. Combine: abi.encode(agentSig, serverSig)
23
- * 3. Wrap for ERC-1271: encodePacked(validatorAddress, combined)
24
- *
25
- * @param agentPrivateKey - Agent's session key private key
26
- * @param typedDataParams - EIP-712 typed data to sign
27
- * @param serverSignature - Server's ECDSA signature (65 bytes as hex)
28
- * @param coSignerValidatorAddress - CoSignerValidator contract address
29
- * @returns ERC-1271 formatted signature
10
+ * CoSignerValidator ERC-1271 signature: agent signs → `abi.encode(agentSig, serverSig)`
11
+ * → `encodePacked(validator, combined)`.
30
12
  */
31
13
  export declare function encodeCoSignedERC1271Signature(agentPrivateKey: Hex, typedDataParams: TypedDataDefinition, serverSignature: Hex, coSignerValidatorAddress: Address): Promise<Hex>;
32
14
  /**
33
- * Creates a payment payload using server co-signature
34
- *
35
- * This is used for co-signed agent keys where the server provides the ERC-3009
36
- * authorization data and co-signature. The agent key adds its signature and
37
- * combines them for ERC-1271 validation via CoSignerValidator.
38
- *
39
- * @param requirements - Payment requirements from the x402 server
40
- * @param config - Configuration for the smart account wallet
41
- * @param serverAuthorization - Server-provided authorization data and co-signature
42
- * @returns Payment payload ready to send to x402 server
43
- * @throws Error if requirements are invalid or signing fails
15
+ * Sign a co-signed `exact` instruction. Server supplies ERC-3009
16
+ * authorization data + its signature; agent adds its own and the pair is
17
+ * validated via CoSignerValidator under ERC-1271.
44
18
  */
45
- export declare function createCoSignedPayment(requirements: PaymentRequirements, config: CoSignedPaymentConfig, serverAuthorization: ServerAuthorizationData): Promise<PaymentPayload>;
19
+ export declare function createCoSignedPayment(instruction: PaymentInstruction, config: CoSignedPaymentConfig, serverAuthorization: ServerAuthorizationData): Promise<PaymentAuthorization>;
46
20
  //# sourceMappingURL=cosigned.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosigned.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/cosigned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAE1G,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,0CAA0C;IAC1C,oBAAoB,EAAE,GAAG,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,wBAAwB,EAAE,OAAO,CAAA;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EACpB,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,GAAG,EACpB,wBAAwB,EAAE,OAAO,GAChC,OAAO,CAAC,GAAG,CAAC,CAad;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,qBAAqB,EAC7B,mBAAmB,EAAE,uBAAuB,GAC3C,OAAO,CAAC,cAAc,CAAC,CA4DzB"}
1
+ {"version":3,"file":"cosigned.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/cosigned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAI1G,OAAO,EAAkC,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG7D,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,wBAAwB,EAAE,OAAO,CAAA;CAClC;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,GAAG,EACpB,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,GAAG,EACpB,wBAAwB,EAAE,OAAO,GAChC,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,qBAAqB,EAC7B,mBAAmB,EAAE,uBAAuB,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAyD/B"}
@@ -1,57 +1,41 @@
1
1
  import { encodeAbiParameters, encodePacked } from "viem";
2
2
  import { privateKeyToAccount } from "viem/accounts";
3
3
  import { TRANSFER_WITH_AUTHORIZATION_TYPE } from "../../../smart-account/eip712-types.js";
4
+ import { acceptedOf, buildAuthorization } from "../../envelopes.js";
5
+ import { chainIdOf } from "./chain.js";
4
6
  /**
5
- * Encode a co-signed ERC-1271 signature
6
- *
7
- * Combines agent signature + server signature according to CoSignerValidator format:
8
- * 1. Sign typed data with agent key (raw ECDSA)
9
- * 2. Combine: abi.encode(agentSig, serverSig)
10
- * 3. Wrap for ERC-1271: encodePacked(validatorAddress, combined)
11
- *
12
- * @param agentPrivateKey - Agent's session key private key
13
- * @param typedDataParams - EIP-712 typed data to sign
14
- * @param serverSignature - Server's ECDSA signature (65 bytes as hex)
15
- * @param coSignerValidatorAddress - CoSignerValidator contract address
16
- * @returns ERC-1271 formatted signature
7
+ * CoSignerValidator ERC-1271 signature: agent signs → `abi.encode(agentSig, serverSig)`
8
+ * → `encodePacked(validator, combined)`.
17
9
  */
18
10
  export async function encodeCoSignedERC1271Signature(agentPrivateKey, typedDataParams, serverSignature, coSignerValidatorAddress) {
19
- // 1. Sign with agent key
20
11
  const agentAccount = privateKeyToAccount(agentPrivateKey);
21
12
  const agentSignature = await agentAccount.signTypedData(typedDataParams);
22
- // 2. Combine signatures: abi.encode(bytes agentSig, bytes serverSig)
23
13
  const combinedSignature = encodeAbiParameters([{ type: "bytes" }, { type: "bytes" }], [agentSignature, serverSignature]);
24
- // 3. Encode for ERC-1271: encodePacked(address validator, bytes signature)
25
14
  return encodePacked(["address", "bytes"], [coSignerValidatorAddress, combinedSignature]);
26
15
  }
27
16
  /**
28
- * Creates a payment payload using server co-signature
29
- *
30
- * This is used for co-signed agent keys where the server provides the ERC-3009
31
- * authorization data and co-signature. The agent key adds its signature and
32
- * combines them for ERC-1271 validation via CoSignerValidator.
33
- *
34
- * @param requirements - Payment requirements from the x402 server
35
- * @param config - Configuration for the smart account wallet
36
- * @param serverAuthorization - Server-provided authorization data and co-signature
37
- * @returns Payment payload ready to send to x402 server
38
- * @throws Error if requirements are invalid or signing fails
17
+ * Sign a co-signed `exact` instruction. Server supplies ERC-3009
18
+ * authorization data + its signature; agent adds its own and the pair is
19
+ * validated via CoSignerValidator under ERC-1271.
39
20
  */
40
- export async function createCoSignedPayment(requirements, config, serverAuthorization) {
21
+ export async function createCoSignedPayment(instruction, config, serverAuthorization) {
41
22
  const { authorizationData, serverSignature } = serverAuthorization;
42
- // Get domain params from requirements.extra
43
- const domainName = requirements.extra?.name;
44
- const domainVersion = requirements.extra?.version;
23
+ const accepted = acceptedOf(instruction);
24
+ const domainName = accepted.extra?.name;
25
+ const domainVersion = accepted.extra?.version;
45
26
  if (!domainName || !domainVersion) {
46
- throw new Error("requirements.extra must contain 'name' and 'version' for EIP-712 domain");
27
+ throw new Error("accepted.extra must contain 'name' and 'version' for EIP-712 domain");
28
+ }
29
+ const chainId = chainIdOf(instruction);
30
+ if (chainId === null) {
31
+ throw new Error(`Unsupported network "${accepted.network}" — use a known v1 name or CAIP-2 "eip155:N".`);
47
32
  }
48
- // Construct EIP-712 typed data from server-provided authorization data
49
33
  const typedData = {
50
34
  domain: {
51
35
  name: domainName,
52
36
  version: domainVersion,
53
- chainId: config.chainId,
54
- verifyingContract: requirements.asset,
37
+ chainId,
38
+ verifyingContract: accepted.asset,
55
39
  },
56
40
  types: {
57
41
  TransferWithAuthorization: TRANSFER_WITH_AUTHORIZATION_TYPE,
@@ -66,25 +50,18 @@ export async function createCoSignedPayment(requirements, config, serverAuthoriz
66
50
  nonce: authorizationData.nonce,
67
51
  },
68
52
  };
69
- // Encode co-signed signature
70
53
  const signature = await encodeCoSignedERC1271Signature(config.sessionKeyPrivateKey, typedData, serverSignature, config.coSignerValidatorAddress);
71
- // Construct payment payload matching x402 exact scheme format
72
- const paymentPayload = {
73
- x402Version: 1,
74
- scheme: "exact",
75
- network: requirements.network,
76
- payload: {
77
- signature: signature,
78
- authorization: {
79
- from: authorizationData.from,
80
- to: authorizationData.to,
81
- value: authorizationData.value,
82
- validAfter: authorizationData.validAfter,
83
- validBefore: authorizationData.validBefore,
84
- nonce: authorizationData.nonce,
85
- },
54
+ const signedPayload = {
55
+ signature: signature,
56
+ authorization: {
57
+ from: authorizationData.from,
58
+ to: authorizationData.to,
59
+ value: authorizationData.value,
60
+ validAfter: authorizationData.validAfter,
61
+ validBefore: authorizationData.validBefore,
62
+ nonce: authorizationData.nonce,
86
63
  },
87
64
  };
88
- return paymentPayload;
65
+ return buildAuthorization(instruction, signedPayload);
89
66
  }
90
67
  //# sourceMappingURL=cosigned.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosigned.js","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/cosigned.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosigned.js","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/cosigned.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,15 @@
1
1
  import { type Address, type Hex } from "viem";
2
- import type { PaymentPayload, PaymentRequirements } from "x402/types";
3
- /**
4
- * Configuration for creating an exact payment with ERC-3009
5
- */
2
+ import { type PaymentAuthorization, type PaymentInstruction } from "../../envelopes.ts";
6
3
  export interface ExactPaymentConfig {
7
- /** Smart account address (payment sender) */
8
4
  smartAccountAddress: Address;
9
- /** Session key private key for signing */
10
5
  sessionKeyPrivateKey: Hex;
11
- /** Chain ID for the blockchain network */
12
- chainId: number;
13
- /** OwnableValidator address for ERC-1271 validation */
6
+ /** OwnableValidator address used for ERC-1271 validation. */
14
7
  validatorAddress: Address;
15
8
  }
16
9
  /**
17
- * Creates a payment payload using the "exact" scheme with ERC-3009 USDC authorization
18
- *
19
- * This implements the x402 "exact" payment scheme, which uses USDC's transferWithAuthorization
20
- * (ERC-3009) to create signed payment authorizations. The signature is created using ERC-1271
21
- * from a smart account via the OwnableValidator module.
22
- *
23
- * @param requirements - Payment requirements from the x402 server
24
- * @param config - Configuration for the smart account wallet
25
- * @returns Payment payload ready to send to x402 server
26
- * @throws Error if payment requirements are invalid or signing fails
10
+ * Sign an `exact` instruction: ERC-3009 `transferWithAuthorization` via
11
+ * ERC-1271 with OwnableValidator. {@link buildAuthorization} packages the
12
+ * signed body for v1 or v2.
27
13
  */
28
- export declare function createExactPayment(requirements: PaymentRequirements, config: ExactPaymentConfig): Promise<PaymentPayload>;
14
+ export declare function createExactPayment(instruction: PaymentInstruction, config: ExactPaymentConfig): Promise<PaymentAuthorization>;
29
15
  //# sourceMappingURL=exact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exact.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/exact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAiBrE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,0CAA0C;IAC1C,oBAAoB,EAAE,GAAG,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,mBAAmB,EACjC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,CAAC,CAuDzB"}
1
+ {"version":3,"file":"exact.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/exact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAGpD,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAA;AAa3B,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,6DAA6D;IAC7D,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAuD/B"}
@@ -1,67 +1,57 @@
1
1
  import { toHex } from "viem";
2
2
  import { signERC3009Authorization } from "../../../smart-account/index.js";
3
- /**
4
- * Generates a random 32-byte nonce for use in authorization signatures
5
- */
3
+ import { acceptedOf, amountOf, buildAuthorization, } from "../../envelopes.js";
4
+ import { chainIdOf } from "./chain.js";
6
5
  function createNonce() {
7
6
  const cryptoObj = typeof globalThis.crypto !== "undefined" && typeof globalThis.crypto.getRandomValues === "function"
8
7
  ? globalThis.crypto
9
- : // Dynamic require is needed to support node.js
8
+ : // Dynamic require for node.js compatibility.
10
9
  // eslint-disable-next-line @typescript-eslint/no-require-imports
11
10
  require("crypto").webcrypto;
12
11
  return toHex(cryptoObj.getRandomValues(new Uint8Array(32)));
13
12
  }
14
13
  /**
15
- * Creates a payment payload using the "exact" scheme with ERC-3009 USDC authorization
16
- *
17
- * This implements the x402 "exact" payment scheme, which uses USDC's transferWithAuthorization
18
- * (ERC-3009) to create signed payment authorizations. The signature is created using ERC-1271
19
- * from a smart account via the OwnableValidator module.
20
- *
21
- * @param requirements - Payment requirements from the x402 server
22
- * @param config - Configuration for the smart account wallet
23
- * @returns Payment payload ready to send to x402 server
24
- * @throws Error if payment requirements are invalid or signing fails
14
+ * Sign an `exact` instruction: ERC-3009 `transferWithAuthorization` via
15
+ * ERC-1271 with OwnableValidator. {@link buildAuthorization} packages the
16
+ * signed body for v1 or v2.
25
17
  */
26
- export async function createExactPayment(requirements, config) {
27
- // Generate nonce and validity timestamps
18
+ export async function createExactPayment(instruction, config) {
19
+ const accepted = acceptedOf(instruction);
20
+ const payTo = accepted.payTo;
21
+ const asset = accepted.asset;
28
22
  const nonce = createNonce();
29
- const validAfter = BigInt(Math.floor(Date.now() / 1000) - 600); // 10 minutes before
30
- const validBefore = BigInt(Math.floor(Date.now() / 1000) + requirements.maxTimeoutSeconds);
31
- // Prepare authorization data for ERC-3009 signing
23
+ const now = Math.floor(Date.now() / 1000);
24
+ const validAfter = BigInt(now - 600); // 10 minutes of clock-skew tolerance
25
+ const validBefore = BigInt(now + accepted.maxTimeoutSeconds);
32
26
  const authData = {
33
27
  from: config.smartAccountAddress,
34
- to: requirements.payTo,
35
- value: BigInt(requirements.maxAmountRequired),
28
+ to: payTo,
29
+ value: BigInt(amountOf(instruction)),
36
30
  validAfter,
37
31
  validBefore,
38
32
  nonce,
39
33
  };
40
- // Get domain params from requirements.extra (provided by server)
41
- const domainName = requirements.extra?.name;
42
- const domainVersion = requirements.extra?.version;
34
+ const domainName = accepted.extra?.name;
35
+ const domainVersion = accepted.extra?.version;
43
36
  if (!domainName || !domainVersion) {
44
- throw new Error("requirements.extra must contain 'name' and 'version' for EIP-712 domain");
37
+ throw new Error("accepted.extra must contain 'name' and 'version' for EIP-712 domain");
38
+ }
39
+ const chainId = chainIdOf(instruction);
40
+ if (chainId === null) {
41
+ throw new Error(`Unsupported network "${accepted.network}" — use a known v1 name or CAIP-2 "eip155:N".`);
45
42
  }
46
- // Sign using ERC-1271 with OwnableValidator
47
- const signature = await signERC3009Authorization(config.sessionKeyPrivateKey, config.smartAccountAddress, authData, requirements.asset, config.chainId, config.validatorAddress, domainName, domainVersion);
48
- // Construct payment payload matching x402 exact scheme format
49
- const paymentPayload = {
50
- x402Version: 1,
51
- scheme: "exact",
52
- network: requirements.network,
53
- payload: {
54
- signature: signature,
55
- authorization: {
56
- from: config.smartAccountAddress,
57
- to: requirements.payTo,
58
- value: requirements.maxAmountRequired,
59
- validAfter: validAfter.toString(),
60
- validBefore: validBefore.toString(),
61
- nonce: nonce,
62
- },
43
+ const signature = await signERC3009Authorization(config.sessionKeyPrivateKey, config.smartAccountAddress, authData, asset, chainId, config.validatorAddress, domainName, domainVersion);
44
+ const signedPayload = {
45
+ signature: signature,
46
+ authorization: {
47
+ from: config.smartAccountAddress,
48
+ to: payTo,
49
+ value: amountOf(instruction),
50
+ validAfter: validAfter.toString(),
51
+ validBefore: validBefore.toString(),
52
+ nonce: nonce,
63
53
  },
64
54
  };
65
- return paymentPayload;
55
+ return buildAuthorization(instruction, signedPayload);
66
56
  }
67
57
  //# sourceMappingURL=exact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exact.js","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/exact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAA;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAE1E;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,SAAS,GACb,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU;QACjG,CAAC,CAAC,UAAU,CAAC,MAAM;QACnB,CAAC,CAAC,+CAA+C;YAC/C,iEAAiE;YACjE,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAA;IACjC,OAAO,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAgBD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAiC,EACjC,MAA0B;IAE1B,yCAAyC;IACzC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,oBAAoB;IACnF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAE1F,kDAAkD;IAClD,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,mBAAmB;QAChC,EAAE,EAAE,YAAY,CAAC,KAAgB;QACjC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC;QAC7C,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAA;IAED,iEAAiE;IACjE,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,IAA0B,CAAA;IACjE,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAA6B,CAAA;IAEvE,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;IAC5F,CAAC;IAED,4CAA4C;IAC5C,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,MAAM,CAAC,oBAAoB,EAC3B,MAAM,CAAC,mBAAmB,EAC1B,QAAQ,EACR,YAAY,CAAC,KAAgB,EAC7B,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,gBAAgB,EACvB,UAAU,EACV,aAAa,CACd,CAAA;IAED,8DAA8D;IAC9D,MAAM,cAAc,GAAmB;QACrC,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,OAAgB;QACxB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,OAAO,EAAE;YACP,SAAS,EAAE,SAAmB;YAC9B,aAAa,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,mBAA6B;gBAC1C,EAAE,EAAE,YAAY,CAAC,KAAK;gBACtB,KAAK,EAAE,YAAY,CAAC,iBAAiB;gBACrC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,KAAK,EAAE,KAAe;aACvB;SACF;KACF,CAAA;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"exact.js","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/exact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAA;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EACL,UAAU,EACV,QAAQ,EACR,kBAAkB,GAGnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,SAAS,WAAW;IAClB,MAAM,SAAS,GACb,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU;QACjG,CAAC,CAAC,UAAU,CAAC,MAAM;QACnB,CAAC,CAAC,6CAA6C;YAC7C,iEAAiE;YACjE,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAA;IACjC,OAAO,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AASD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAA+B,EAC/B,MAA0B;IAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAgB,CAAA;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAgB,CAAA;IAEvC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAA;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA,CAAC,qCAAqC;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAE5D,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,mBAAmB;QAChC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,UAAU;QACV,WAAW;QACX,KAAK;KACN,CAAA;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,IAA0B,CAAA;IAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,OAA6B,CAAA;IAEnE,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;IACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,OAAO,+CAA+C,CAAC,CAAA;IAC1G,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,MAAM,CAAC,oBAAoB,EAC3B,MAAM,CAAC,mBAAmB,EAC1B,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,CAAC,gBAAgB,EACvB,UAAU,EACV,aAAa,CACd,CAAA;IAED,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,SAAmB;QAC9B,aAAa,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,mBAA6B;YAC1C,EAAE,EAAE,KAAe;YACnB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;YAC5B,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;YACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,KAAe;SACvB;KACF,CAAA;IAED,OAAO,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;AACvD,CAAC"}
@@ -1,56 +1,23 @@
1
1
  import { type Address, type Hex } from "viem";
2
- import type { PaymentPayload, PaymentRequirements } from "x402/types";
2
+ import { type PaymentAuthorization, type PaymentInstruction } from "../../envelopes.ts";
3
3
  import type { ServerAuthorizationData } from "../../types.ts";
4
4
  import { type X402Wallet } from "../../wallet.ts";
5
- /**
6
- * Configuration for SmartAccountWallet
7
- */
8
5
  export interface SmartAccountConfig {
9
- /** Smart account address */
10
6
  smartAccountAddress: Address;
11
- /** Session key private key for signing */
12
7
  sessionKeyPrivateKey: Hex;
13
- /** Chain ID for the blockchain network */
14
- chainId: number;
15
- /** OwnableValidator address (defaults to standard OwnableValidator) */
8
+ /** OwnableValidator address. Defaults to the standard OwnableValidator. */
16
9
  validatorAddress?: Address;
17
- /** CoSignerValidator address (defaults to standard CoSignerValidator) */
10
+ /** CoSignerValidator address. Defaults to the standard CoSignerValidator. */
18
11
  coSignerValidatorAddress?: Address;
19
12
  }
20
13
  /**
21
- * SmartAccountWallet - Smart account wallet implementation using ERC-1271
22
- *
23
- * Creates payment payloads signed by a smart account using ERC-1271 standard.
24
- * Supports Safe accounts with OwnableValidator module.
25
- * Only supports the "exact" payment scheme with ERC-3009 (USDC) authorizations.
26
- *
27
- * @example
28
- * ```typescript
29
- * const wallet = new SmartAccountWallet({
30
- * smartAccountAddress: "0x...", // Smart account address
31
- * sessionKeyPrivateKey: "0x...", // Session key
32
- * chainId: 84532, // Base Sepolia
33
- * validatorAddress: "0x..." // OwnableValidator (optional, defaults to standard validator)
34
- * })
35
- *
36
- * const payment = await wallet.createPayment(requirements)
37
- * ```
14
+ * Smart account wallet using ERC-1271. Supports Safe accounts with the
15
+ * OwnableValidator module and only the `exact` scheme (ERC-3009 / USDC).
38
16
  */
39
17
  export declare class SmartAccountWallet implements X402Wallet {
40
18
  private readonly config;
41
19
  constructor(config: SmartAccountConfig);
42
- /**
43
- * Creates a payment payload from requirements.
44
- * Only supports "exact" payment scheme with ERC-3009 authorizations.
45
- *
46
- * @param requirements Payment requirements from x402
47
- * @param serverAuthorization Optional server co-signature data for co-signed keys
48
- * @returns Payment payload ready to submit
49
- */
50
- createPayment(requirements: PaymentRequirements, serverAuthorization?: ServerAuthorizationData): Promise<PaymentPayload>;
51
- /**
52
- * Returns the smart account address
53
- */
20
+ createPayment(instruction: PaymentInstruction, serverAuthorization?: ServerAuthorizationData): Promise<PaymentAuthorization>;
54
21
  get address(): Address;
55
22
  }
56
23
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,0CAA0C;IAC1C,oBAAoB,EAAE,GAAG,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuF;gBAElG,MAAM,EAAE,kBAAkB;IAStC;;;;;;;OAOG;IACG,aAAa,CACjB,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,CAAC,EAAE,uBAAuB,GAC5C,OAAO,CAAC,cAAc,CAAC;IAuB1B;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../../src/x402/wallets/smart-account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAG7C,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI9D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,GAAG,CAAA;IACzB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,6EAA6E;IAC7E,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuF;gBAElG,MAAM,EAAE,kBAAkB;IAQhC,aAAa,CACjB,WAAW,EAAE,kBAAkB,EAC/B,mBAAmB,CAAC,EAAE,uBAAuB,GAC5C,OAAO,CAAC,oBAAoB,CAAC;IAmBhC,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}