@wtflabs/x402 0.0.1-beta.4 → 0.0.1-beta.6

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 (81) hide show
  1. package/dist/cjs/client/index.d.ts +1 -1
  2. package/dist/cjs/client/index.js +7 -2
  3. package/dist/cjs/client/index.js.map +1 -1
  4. package/dist/cjs/facilitator/index.d.ts +1 -1
  5. package/dist/cjs/facilitator/index.js +444 -87
  6. package/dist/cjs/facilitator/index.js.map +1 -1
  7. package/dist/cjs/index.d.ts +1 -1
  8. package/dist/cjs/index.js +445 -88
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/{middleware-Brgsx32F.d.ts → middleware-nzDe-TDJ.d.ts} +1 -1
  11. package/dist/cjs/paywall/index.d.ts +1 -1
  12. package/dist/cjs/schemes/index.d.ts +25 -7
  13. package/dist/cjs/schemes/index.js +477 -95
  14. package/dist/cjs/schemes/index.js.map +1 -1
  15. package/dist/cjs/shared/index.d.ts +2 -2
  16. package/dist/cjs/shared/index.js +6 -1
  17. package/dist/cjs/shared/index.js.map +1 -1
  18. package/dist/cjs/types/index.d.ts +93 -4
  19. package/dist/cjs/types/index.js +64 -1
  20. package/dist/cjs/types/index.js.map +1 -1
  21. package/dist/cjs/verify/index.d.ts +2 -2
  22. package/dist/cjs/verify/index.js +6 -1
  23. package/dist/cjs/verify/index.js.map +1 -1
  24. package/dist/{esm/x402Specs-CYq5tSY1.d.mts → cjs/x402Specs-BtRXj67U.d.ts} +43 -10
  25. package/dist/esm/{chunk-G6WN2WYX.mjs → chunk-3SCH5JL2.mjs} +433 -98
  26. package/dist/esm/chunk-3SCH5JL2.mjs.map +1 -0
  27. package/dist/esm/{chunk-2AM3S66N.mjs → chunk-7MNUQUHN.mjs} +3 -3
  28. package/dist/esm/{chunk-34YNR4LY.mjs → chunk-KABV25HJ.mjs} +3 -3
  29. package/dist/esm/{chunk-UCBE7FDY.mjs → chunk-NPWDNT2P.mjs} +67 -2
  30. package/dist/esm/chunk-NPWDNT2P.mjs.map +1 -0
  31. package/dist/esm/{chunk-RX2JKK4O.mjs → chunk-VTLJOZXM.mjs} +3 -3
  32. package/dist/esm/chunk-VTLJOZXM.mjs.map +1 -0
  33. package/dist/esm/client/index.d.mts +1 -1
  34. package/dist/esm/client/index.mjs +3 -3
  35. package/dist/esm/facilitator/index.d.mts +1 -1
  36. package/dist/esm/facilitator/index.mjs +4 -4
  37. package/dist/esm/index.d.mts +1 -1
  38. package/dist/esm/index.mjs +5 -5
  39. package/dist/esm/{middleware-BSjsPDKM.d.mts → middleware-DSDucaQ5.d.mts} +1 -1
  40. package/dist/esm/paywall/index.d.mts +1 -1
  41. package/dist/esm/schemes/index.d.mts +25 -7
  42. package/dist/esm/schemes/index.mjs +3 -3
  43. package/dist/esm/shared/index.d.mts +2 -2
  44. package/dist/esm/shared/index.mjs +1 -1
  45. package/dist/esm/types/index.d.mts +93 -4
  46. package/dist/esm/types/index.mjs +1 -1
  47. package/dist/esm/verify/index.d.mts +2 -2
  48. package/dist/esm/verify/index.mjs +1 -1
  49. package/dist/{cjs/x402Specs-CYq5tSY1.d.ts → esm/x402Specs-BtRXj67U.d.mts} +43 -10
  50. package/package.json +15 -15
  51. package/dist/cjs/middleware-6_1ApcJn.d.ts +0 -93
  52. package/dist/cjs/middleware-B_ewwsQp.d.ts +0 -93
  53. package/dist/cjs/middleware-BwfW7mAs.d.ts +0 -93
  54. package/dist/cjs/middleware-CQb61c1k.d.ts +0 -93
  55. package/dist/cjs/middleware-DB9lqy9f.d.ts +0 -93
  56. package/dist/cjs/middleware-DcHctwQV.d.ts +0 -93
  57. package/dist/cjs/middleware-De0jD3Bp.d.ts +0 -93
  58. package/dist/cjs/middleware-HoFOmpgv.d.ts +0 -93
  59. package/dist/cjs/middleware-Y8AiAfYw.d.ts +0 -93
  60. package/dist/cjs/middleware-pnres9YM.d.ts +0 -93
  61. package/dist/cjs/network-RtNddYQk.d.ts +0 -11
  62. package/dist/cjs/rpc-Ca8eHCWz.d.ts +0 -35
  63. package/dist/cjs/wallet-BRWfOM5D.d.ts +0 -153
  64. package/dist/cjs/wallet-BYRAGtOB.d.ts +0 -153
  65. package/dist/cjs/wallet-BmEtlgEf.d.ts +0 -48
  66. package/dist/cjs/wallet-CNOAmyZ6.d.ts +0 -48
  67. package/dist/cjs/wallet-D1SoxFTw.d.ts +0 -48
  68. package/dist/cjs/wallet-SJ-hbjm9.d.ts +0 -153
  69. package/dist/cjs/wallet-ecnda4Aj.d.ts +0 -48
  70. package/dist/cjs/wallet-gP8Qoi-c.d.ts +0 -74
  71. package/dist/cjs/x402Specs-B7InXo2L.d.ts +0 -1065
  72. package/dist/cjs/x402Specs-BLH3j34O.d.ts +0 -1696
  73. package/dist/cjs/x402Specs-C7LipAZg.d.ts +0 -1715
  74. package/dist/cjs/x402Specs-CeajqonG.d.ts +0 -1696
  75. package/dist/cjs/x402Specs-qMujgEV5.d.ts +0 -1715
  76. package/dist/cjs/x402Specs-qUBCpcuz.d.ts +0 -1715
  77. package/dist/esm/chunk-G6WN2WYX.mjs.map +0 -1
  78. package/dist/esm/chunk-RX2JKK4O.mjs.map +0 -1
  79. package/dist/esm/chunk-UCBE7FDY.mjs.map +0 -1
  80. /package/dist/esm/{chunk-2AM3S66N.mjs.map → chunk-7MNUQUHN.mjs.map} +0 -0
  81. /package/dist/esm/{chunk-34YNR4LY.mjs.map → chunk-KABV25HJ.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { N as Network } from './network-FrFmmiyj.js';
3
3
  import { E as EvmSigner } from './wallet-SJKJpUgQ.js';
4
- import { a as PaymentPayload, P as PaymentRequirements, J as VerifyResponse, S as SettleResponse, X as SupportedPaymentKindsResponse, M as ListDiscoveryResourcesRequest, O as ListDiscoveryResourcesResponse, z as HTTPRequestStructure } from './x402Specs-CYq5tSY1.js';
4
+ import { a as PaymentPayload, P as PaymentRequirements, J as VerifyResponse, S as SettleResponse, X as SupportedPaymentKindsResponse, M as ListDiscoveryResourcesRequest, O as ListDiscoveryResourcesResponse, z as HTTPRequestStructure } from './x402Specs-BtRXj67U.js';
5
5
 
6
6
  declare const moneySchema: z.ZodPipeline<z.ZodUnion<[z.ZodEffects<z.ZodString, string, string>, z.ZodNumber]>, z.ZodNumber>;
7
7
  type Money = z.input<typeof moneySchema>;
@@ -1,4 +1,4 @@
1
- import { P as PaymentRequirements } from '../x402Specs-CYq5tSY1.js';
1
+ import { P as PaymentRequirements } from '../x402Specs-BtRXj67U.js';
2
2
  import 'zod';
3
3
 
4
4
  interface PaywallOptions {
@@ -1,6 +1,6 @@
1
1
  import { Address, Transport, Chain, LocalAccount, Hex, Account } from 'viem';
2
2
  import { S as SignerWallet, C as ConnectedClient } from '../wallet-SJKJpUgQ.js';
3
- import { P as PaymentRequirements, p as UnsignedEip3009PaymentPayload, o as Eip3009PaymentPayload, e as ExactEvmPayloadAuthorization, J as VerifyResponse, S as SettleResponse, r as UnsignedPermitPaymentPayload, q as PermitPaymentPayload, g as PermitEvmPayloadAuthorization, u as UnsignedPermit2PaymentPayload, t as Permit2PaymentPayload, i as Permit2EvmPayloadAuthorization, a as PaymentPayload, b as ErrorReasons, E as ExactSvmPayload } from '../x402Specs-CYq5tSY1.js';
3
+ import { P as PaymentRequirements, p as UnsignedEip3009PaymentPayload, o as Eip3009PaymentPayload, e as ExactEvmPayloadAuthorization, J as VerifyResponse, S as SettleResponse, r as UnsignedPermitPaymentPayload, q as PermitPaymentPayload, g as PermitEvmPayloadAuthorization, u as UnsignedPermit2PaymentPayload, t as Permit2PaymentPayload, i as Permit2EvmPayloadAuthorization, a as PaymentPayload, b as ErrorReasons, E as ExactSvmPayload } from '../x402Specs-BtRXj67U.js';
4
4
  import { X as X402Config } from '../config-Dfuvno71.js';
5
5
  import { KeyPairSigner, signTransaction, RpcDevnet, SolanaRpcApiDevnet, RpcMainnet, SolanaRpcApiMainnet, SendTransactionApi, CompilableTransactionMessage, Instruction, AccountLookupMeta, AccountMeta } from '@solana/kit';
6
6
  import { b as getRpcSubscriptions } from '../rpc-BMvnNNHd.js';
@@ -204,17 +204,23 @@ declare namespace index$4 {
204
204
  }
205
205
 
206
206
  /**
207
- * Prepares an unsigned Permit2 payment header
207
+ * Prepares an unsigned Permit2 payment header with witness support
208
+ *
209
+ * By default, this function enables witness mode which binds the recipient address
210
+ * to the signature, preventing the facilitator from changing the payment destination.
208
211
  *
209
212
  * @param from - The token owner's address
210
213
  * @param x402Version - The version of the X402 protocol to use
211
214
  * @param paymentRequirements - The payment requirements containing scheme and network information
212
- * @returns An unsigned Permit2 payment payload containing permit2 authorization details
215
+ * @returns An unsigned Permit2 payment payload containing permit2 authorization details with witness
213
216
  */
214
217
  declare function preparePaymentHeader(from: Address, x402Version: number, paymentRequirements: PaymentRequirements): UnsignedPermit2PaymentPayload;
215
218
  /**
216
219
  * Signs a Permit2 payment header using the provided client and payment requirements.
217
220
  *
221
+ * Supports both witness and non-witness modes based on the presence of the `to` field
222
+ * in the unsigned payment header.
223
+ *
218
224
  * @param client - The signer wallet instance used to sign the permit2
219
225
  * @param paymentRequirements - The payment requirements containing scheme and network information
220
226
  * @param unsignedPaymentHeader - The unsigned Permit2 payment payload to be signed
@@ -241,7 +247,11 @@ declare function createPayment<transport extends Transport, chain extends Chain>
241
247
  declare function createPaymentHeader$1(client: SignerWallet | LocalAccount, x402Version: number, paymentRequirements: PaymentRequirements): Promise<string>;
242
248
 
243
249
  /**
244
- * Signs a Permit2 PermitTransferFrom authorization
250
+ * Signs a Permit2 authorization (PermitTransferFrom or PermitWitnessTransferFrom)
251
+ *
252
+ * Automatically detects witness mode based on the presence of the `to` field.
253
+ * - If `to` is provided: Uses PermitWitnessTransferFrom (binds recipient to signature)
254
+ * - If `to` is omitted: Uses PermitTransferFrom (legacy mode)
245
255
  *
246
256
  * @param walletClient - The wallet client that will sign the permit
247
257
  * @param params - The permit2 parameters
@@ -250,11 +260,12 @@ declare function createPaymentHeader$1(client: SignerWallet | LocalAccount, x402
250
260
  * @param params.token - The address of the token to transfer
251
261
  * @param params.amount - The amount of tokens to transfer (in base units)
252
262
  * @param params.deadline - Unix timestamp after which the permit is no longer valid
263
+ * @param params.to - Optional recipient address for witness mode
253
264
  * @param paymentRequirements - The payment requirements containing network information
254
265
  * @param paymentRequirements.network - The network where the token exists
255
266
  * @returns The signature and nonce for the permit2
256
267
  */
257
- declare function signPermit2<transport extends Transport, chain extends Chain>(walletClient: SignerWallet<chain, transport> | LocalAccount, { owner, spender, token, amount, deadline }: Omit<Permit2EvmPayloadAuthorization, "nonce">, { network }: PaymentRequirements): Promise<{
268
+ declare function signPermit2<transport extends Transport, chain extends Chain>(walletClient: SignerWallet<chain, transport> | LocalAccount, { owner, spender, token, amount, deadline, to }: Omit<Permit2EvmPayloadAuthorization, "nonce">, { network }: PaymentRequirements): Promise<{
258
269
  signature: Hex;
259
270
  nonce: string;
260
271
  }>;
@@ -269,7 +280,11 @@ declare function signPermit2<transport extends Transport, chain extends Chain>(w
269
280
  declare function createPermit2Nonce<transport extends Transport, chain extends Chain>(walletClient: SignerWallet<chain, transport> | LocalAccount, ownerAddress: `0x${string}`): Promise<bigint>;
270
281
 
271
282
  /**
272
- * Verifies a Permit2 payment payload
283
+ * Verifies a Permit2 payment payload (with or without witness)
284
+ *
285
+ * Supports both witness and non-witness modes:
286
+ * - Witness mode: Verifies that the recipient address is bound to the signature
287
+ * - Non-witness mode: Uses standard PermitTransferFrom verification
273
288
  *
274
289
  * @param client - The public client used for blockchain interactions
275
290
  * @param payload - The signed payment payload containing permit2 parameters and signature
@@ -278,7 +293,10 @@ declare function createPermit2Nonce<transport extends Transport, chain extends C
278
293
  */
279
294
  declare function verify$2<transport extends Transport, chain extends Chain, account extends Account | undefined>(client: ConnectedClient<transport, chain, account>, payload: Permit2PaymentPayload, paymentRequirements: PaymentRequirements): Promise<VerifyResponse>;
280
295
  /**
281
- * Settles a Permit2 payment by calling permitTransferFrom()
296
+ * Settles a Permit2 payment by calling permitTransferFrom() or permitWitnessTransferFrom()
297
+ *
298
+ * Automatically selects the appropriate function based on whether the payment includes
299
+ * a witness (recipient address binding).
282
300
  *
283
301
  * @param wallet - The facilitator wallet that will execute the permit transfer
284
302
  * @param paymentPayload - The signed payment payload containing permit2 parameters and signature