@t402/evm 2.2.0 → 2.3.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 (83) hide show
  1. package/dist/cjs/exact/client/index.d.ts +2 -2
  2. package/dist/cjs/exact/client/index.js +4 -2
  3. package/dist/cjs/exact/client/index.js.map +1 -1
  4. package/dist/cjs/exact/facilitator/index.d.ts +1 -1
  5. package/dist/cjs/exact/facilitator/index.js +40 -4
  6. package/dist/cjs/exact/facilitator/index.js.map +1 -1
  7. package/dist/cjs/exact/server/index.d.ts +1 -1
  8. package/dist/cjs/exact/server/index.js +301 -33
  9. package/dist/cjs/exact/server/index.js.map +1 -1
  10. package/dist/cjs/exact/v1/client/index.d.ts +1 -1
  11. package/dist/cjs/exact/v1/client/index.js +3 -1
  12. package/dist/cjs/exact/v1/client/index.js.map +1 -1
  13. package/dist/cjs/exact/v1/facilitator/index.d.ts +1 -1
  14. package/dist/cjs/exact/v1/facilitator/index.js +21 -2
  15. package/dist/cjs/exact/v1/facilitator/index.js.map +1 -1
  16. package/dist/cjs/index.d.ts +606 -352
  17. package/dist/cjs/index.js +1436 -268
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/{esm/scheme-yqGaK9rK.d.mts → cjs/scheme-B4rXSKCN.d.ts} +18 -16
  20. package/dist/cjs/scheme-CIar5W2B.d.ts +200 -0
  21. package/dist/cjs/{scheme-OojTBKAz.d.ts → scheme-CjijeY7y.d.ts} +1 -1
  22. package/dist/{esm/signer-BkcAzwYi.d.mts → cjs/signer-DcavxxZt.d.ts} +1 -18
  23. package/dist/cjs/upto/client/index.d.ts +61 -0
  24. package/dist/cjs/upto/client/index.js +154 -0
  25. package/dist/cjs/upto/client/index.js.map +1 -0
  26. package/dist/cjs/upto/index.d.ts +111 -0
  27. package/dist/cjs/upto/index.js +1030 -0
  28. package/dist/cjs/upto/index.js.map +1 -0
  29. package/dist/cjs/v1/index.d.ts +1 -1
  30. package/dist/cjs/v1/index.js +3 -1
  31. package/dist/cjs/v1/index.js.map +1 -1
  32. package/dist/esm/{chunk-ACDQ5QNT.mjs → chunk-4FBTQTNM.mjs} +27 -5
  33. package/dist/esm/chunk-4FBTQTNM.mjs.map +1 -0
  34. package/dist/esm/chunk-IWSDEZKI.mjs +477 -0
  35. package/dist/esm/chunk-IWSDEZKI.mjs.map +1 -0
  36. package/dist/esm/{chunk-LGSG73NJ.mjs → chunk-LM5RZBVP.mjs} +9 -4
  37. package/dist/esm/{chunk-LGSG73NJ.mjs.map → chunk-LM5RZBVP.mjs.map} +1 -1
  38. package/dist/esm/chunk-NSSMTXJJ.mjs +8 -0
  39. package/dist/esm/chunk-NSSMTXJJ.mjs.map +1 -0
  40. package/dist/esm/chunk-SJ52GTJJ.mjs +411 -0
  41. package/dist/esm/chunk-SJ52GTJJ.mjs.map +1 -0
  42. package/dist/esm/chunk-SURTCHSX.mjs +129 -0
  43. package/dist/esm/chunk-SURTCHSX.mjs.map +1 -0
  44. package/dist/esm/chunk-SYVPLXYV.mjs +26 -0
  45. package/dist/esm/chunk-SYVPLXYV.mjs.map +1 -0
  46. package/dist/esm/{chunk-XYKAO6KJ.mjs → chunk-Y4U7Q543.mjs} +2 -25
  47. package/dist/esm/chunk-Y4U7Q543.mjs.map +1 -0
  48. package/dist/esm/{chunk-JBWWBRYY.mjs → chunk-ZWEYARER.mjs} +9 -4
  49. package/dist/esm/{chunk-JBWWBRYY.mjs.map → chunk-ZWEYARER.mjs.map} +1 -1
  50. package/dist/esm/exact/client/index.d.mts +2 -2
  51. package/dist/esm/exact/client/index.mjs +6 -4
  52. package/dist/esm/exact/client/index.mjs.map +1 -1
  53. package/dist/esm/exact/facilitator/index.d.mts +1 -1
  54. package/dist/esm/exact/facilitator/index.mjs +26 -5
  55. package/dist/esm/exact/facilitator/index.mjs.map +1 -1
  56. package/dist/esm/exact/server/index.d.mts +1 -1
  57. package/dist/esm/exact/server/index.mjs +29 -30
  58. package/dist/esm/exact/server/index.mjs.map +1 -1
  59. package/dist/esm/exact/v1/client/index.d.mts +1 -1
  60. package/dist/esm/exact/v1/client/index.mjs +4 -2
  61. package/dist/esm/exact/v1/facilitator/index.d.mts +1 -1
  62. package/dist/esm/exact/v1/facilitator/index.mjs +4 -2
  63. package/dist/esm/index.d.mts +606 -352
  64. package/dist/esm/index.mjs +626 -138
  65. package/dist/esm/index.mjs.map +1 -1
  66. package/dist/{cjs/scheme-yqGaK9rK.d.ts → esm/scheme-B4rXSKCN.d.mts} +18 -16
  67. package/dist/esm/scheme-DATfd6oM.d.mts +200 -0
  68. package/dist/esm/{scheme-D4mOqq9l.d.mts → scheme-Ddb0dG_F.d.mts} +1 -1
  69. package/dist/{cjs/signer-BkcAzwYi.d.ts → esm/signer-DcavxxZt.d.mts} +1 -18
  70. package/dist/esm/upto/client/index.d.mts +61 -0
  71. package/dist/esm/upto/client/index.mjs +11 -0
  72. package/dist/esm/upto/client/index.mjs.map +1 -0
  73. package/dist/esm/upto/index.d.mts +111 -0
  74. package/dist/esm/upto/index.mjs +26 -0
  75. package/dist/esm/upto/index.mjs.map +1 -0
  76. package/dist/esm/v1/index.d.mts +1 -1
  77. package/dist/esm/v1/index.mjs +5 -3
  78. package/package.json +30 -6
  79. package/dist/cjs/scheme-C6uD7PdY.d.ts +0 -130
  80. package/dist/esm/chunk-ACDQ5QNT.mjs.map +0 -1
  81. package/dist/esm/chunk-OEXW2OK2.mjs +0 -251
  82. package/dist/esm/chunk-OEXW2OK2.mjs.map +0 -1
  83. package/dist/esm/chunk-XYKAO6KJ.mjs.map +0 -1
@@ -0,0 +1,477 @@
1
+ // src/tokens.ts
2
+ var USDT0_ADDRESSES = {
3
+ // === Existing Networks ===
4
+ // Ethereum Mainnet - OFT Adapter (bridge endpoint)
5
+ "eip155:1": "0x6C96dE32CEa08842dcc4058c14d3aaAD7Fa41dee",
6
+ // Arbitrum One - Native USDT0
7
+ "eip155:42161": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
8
+ // Ink Mainnet
9
+ "eip155:57073": "0x0200C29006150606B650577BBE7B6248F58470c1",
10
+ // Berachain Mainnet
11
+ "eip155:80094": "0x779Ded0c9e1022225f8E0630b35a9b54bE713736",
12
+ // Unichain Mainnet (updated address)
13
+ "eip155:130": "0x9151434b16b9763660705744891fA906F660EcC5",
14
+ // === Phase 1: High Priority Networks ===
15
+ // Polygon PoS
16
+ "eip155:137": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
17
+ // Mantle
18
+ "eip155:5000": "0x779Ded0c9e1022225f8E0630b35a9b54bE713736",
19
+ // Optimism
20
+ "eip155:10": "0x01bFF41798a0BcF287b996046Ca68b395DbC1071",
21
+ // Plasma
22
+ "eip155:9745": "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
23
+ // Sei
24
+ "eip155:1329": "0x9151434b16b9763660705744891fA906F660EcC5",
25
+ // Conflux eSpace
26
+ "eip155:1030": "0xaf37E8B6C9ED7f6318979f56Fc287d76c30847ff",
27
+ // Monad
28
+ "eip155:143": "0xe7cd86e13AC4309349F30B3435a9d337750fC82D",
29
+ // === Phase 2: Medium Priority Networks ===
30
+ // Rootstock (Bitcoin sidechain)
31
+ "eip155:30": "0x779dED0C9e1022225F8e0630b35A9B54Be713736",
32
+ // XLayer (OKX L2)
33
+ "eip155:196": "0x779Ded0c9e1022225f8E0630b35a9b54bE713736",
34
+ // Flare
35
+ "eip155:14": "0xe7cd86e13AC4309349F30B3435a9d337750fC82D",
36
+ // Corn
37
+ "eip155:21000000": "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
38
+ // HyperEVM
39
+ "eip155:999": "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
40
+ // MegaETH
41
+ "eip155:4326": "0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb",
42
+ // Stable
43
+ "eip155:988": "0x779Ded0c9e1022225f8E0630b35a9b54bE713736"
44
+ };
45
+ var USDC_ADDRESSES = {
46
+ // Ethereum Mainnet
47
+ "eip155:1": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
48
+ // Base Mainnet
49
+ "eip155:8453": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
50
+ // Base Sepolia (testnet)
51
+ "eip155:84532": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
52
+ // Sepolia (testnet)
53
+ "eip155:11155111": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
54
+ // Arbitrum One
55
+ "eip155:42161": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
56
+ // Polygon Mainnet
57
+ "eip155:137": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"
58
+ };
59
+ var USDT_LEGACY_ADDRESSES = {
60
+ // Ethereum Mainnet
61
+ "eip155:1": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
62
+ // Polygon Mainnet (native USDT, not USDT0)
63
+ "eip155:137": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
64
+ // BNB Chain (BSC) - BEP-20 USDT
65
+ "eip155:56": "0x55d398326f99059fF775485246999027B3197955",
66
+ // Avalanche C-Chain
67
+ "eip155:43114": "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7",
68
+ // Fantom
69
+ "eip155:250": "0x049d68029688eabf473097a2fc38ef61633a3c7a",
70
+ // Celo
71
+ "eip155:42220": "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
72
+ // Kaia (formerly Klaytn)
73
+ "eip155:8217": "0xcee8faf64bb97a73bb51e115aa89c17ffa8dd167"
74
+ };
75
+ var TOKEN_REGISTRY = {
76
+ // Ethereum Mainnet
77
+ "eip155:1": {
78
+ USDT0: {
79
+ address: USDT0_ADDRESSES["eip155:1"],
80
+ symbol: "USDT0",
81
+ name: "TetherToken",
82
+ version: "1",
83
+ decimals: 6,
84
+ tokenType: "eip3009",
85
+ priority: 1
86
+ },
87
+ USDC: {
88
+ address: USDC_ADDRESSES["eip155:1"],
89
+ symbol: "USDC",
90
+ name: "USD Coin",
91
+ version: "2",
92
+ decimals: 6,
93
+ tokenType: "eip3009",
94
+ priority: 2
95
+ },
96
+ USDT: {
97
+ address: USDT_LEGACY_ADDRESSES["eip155:1"],
98
+ symbol: "USDT",
99
+ name: "TetherUSD",
100
+ version: "1",
101
+ decimals: 6,
102
+ tokenType: "legacy",
103
+ priority: 10
104
+ // Lower priority due to legacy flow
105
+ }
106
+ },
107
+ // Arbitrum One
108
+ "eip155:42161": {
109
+ USDT0: {
110
+ address: USDT0_ADDRESSES["eip155:42161"],
111
+ symbol: "USDT0",
112
+ name: "TetherToken",
113
+ version: "1",
114
+ decimals: 6,
115
+ tokenType: "eip3009",
116
+ priority: 1
117
+ },
118
+ USDC: {
119
+ address: USDC_ADDRESSES["eip155:42161"],
120
+ symbol: "USDC",
121
+ name: "USD Coin",
122
+ version: "2",
123
+ decimals: 6,
124
+ tokenType: "eip3009",
125
+ priority: 2
126
+ }
127
+ },
128
+ // Ink Mainnet
129
+ "eip155:57073": {
130
+ USDT0: {
131
+ address: USDT0_ADDRESSES["eip155:57073"],
132
+ symbol: "USDT0",
133
+ name: "TetherToken",
134
+ version: "1",
135
+ decimals: 6,
136
+ tokenType: "eip3009",
137
+ priority: 1
138
+ }
139
+ },
140
+ // Berachain Mainnet
141
+ "eip155:80094": {
142
+ USDT0: {
143
+ address: USDT0_ADDRESSES["eip155:80094"],
144
+ symbol: "USDT0",
145
+ name: "TetherToken",
146
+ version: "1",
147
+ decimals: 6,
148
+ tokenType: "eip3009",
149
+ priority: 1
150
+ }
151
+ },
152
+ // Unichain Mainnet
153
+ "eip155:130": {
154
+ USDT0: {
155
+ address: USDT0_ADDRESSES["eip155:130"],
156
+ symbol: "USDT0",
157
+ name: "TetherToken",
158
+ version: "1",
159
+ decimals: 6,
160
+ tokenType: "eip3009",
161
+ priority: 1
162
+ }
163
+ },
164
+ // Base Mainnet
165
+ "eip155:8453": {
166
+ USDC: {
167
+ address: USDC_ADDRESSES["eip155:8453"],
168
+ symbol: "USDC",
169
+ name: "USD Coin",
170
+ version: "2",
171
+ decimals: 6,
172
+ tokenType: "eip3009",
173
+ priority: 2
174
+ }
175
+ },
176
+ // Base Sepolia (testnet)
177
+ "eip155:84532": {
178
+ USDC: {
179
+ address: USDC_ADDRESSES["eip155:84532"],
180
+ symbol: "USDC",
181
+ name: "USDC",
182
+ version: "2",
183
+ decimals: 6,
184
+ tokenType: "eip3009",
185
+ priority: 2
186
+ }
187
+ },
188
+ // Sepolia (testnet)
189
+ "eip155:11155111": {
190
+ USDC: {
191
+ address: USDC_ADDRESSES["eip155:11155111"],
192
+ symbol: "USDC",
193
+ name: "USDC",
194
+ version: "2",
195
+ decimals: 6,
196
+ tokenType: "eip3009",
197
+ priority: 2
198
+ }
199
+ },
200
+ // Polygon Mainnet
201
+ "eip155:137": {
202
+ USDT0: {
203
+ address: USDT0_ADDRESSES["eip155:137"],
204
+ symbol: "USDT0",
205
+ name: "TetherToken",
206
+ version: "1",
207
+ decimals: 6,
208
+ tokenType: "eip3009",
209
+ priority: 1
210
+ },
211
+ USDC: {
212
+ address: USDC_ADDRESSES["eip155:137"],
213
+ symbol: "USDC",
214
+ name: "USD Coin",
215
+ version: "2",
216
+ decimals: 6,
217
+ tokenType: "eip3009",
218
+ priority: 2
219
+ },
220
+ USDT: {
221
+ address: USDT_LEGACY_ADDRESSES["eip155:137"],
222
+ symbol: "USDT",
223
+ name: "TetherUSD",
224
+ version: "1",
225
+ decimals: 6,
226
+ tokenType: "legacy",
227
+ priority: 10
228
+ }
229
+ },
230
+ // === Phase 1: High Priority USDT0 Networks ===
231
+ // Optimism Mainnet
232
+ "eip155:10": {
233
+ USDT0: {
234
+ address: USDT0_ADDRESSES["eip155:10"],
235
+ symbol: "USDT0",
236
+ name: "TetherToken",
237
+ version: "1",
238
+ decimals: 6,
239
+ tokenType: "eip3009",
240
+ priority: 1
241
+ }
242
+ },
243
+ // Mantle Mainnet
244
+ "eip155:5000": {
245
+ USDT0: {
246
+ address: USDT0_ADDRESSES["eip155:5000"],
247
+ symbol: "USDT0",
248
+ name: "TetherToken",
249
+ version: "1",
250
+ decimals: 6,
251
+ tokenType: "eip3009",
252
+ priority: 1
253
+ }
254
+ },
255
+ // Plasma Mainnet
256
+ "eip155:9745": {
257
+ USDT0: {
258
+ address: USDT0_ADDRESSES["eip155:9745"],
259
+ symbol: "USDT0",
260
+ name: "TetherToken",
261
+ version: "1",
262
+ decimals: 6,
263
+ tokenType: "eip3009",
264
+ priority: 1
265
+ }
266
+ },
267
+ // Sei Mainnet
268
+ "eip155:1329": {
269
+ USDT0: {
270
+ address: USDT0_ADDRESSES["eip155:1329"],
271
+ symbol: "USDT0",
272
+ name: "TetherToken",
273
+ version: "1",
274
+ decimals: 6,
275
+ tokenType: "eip3009",
276
+ priority: 1
277
+ }
278
+ },
279
+ // Conflux eSpace Mainnet
280
+ "eip155:1030": {
281
+ USDT0: {
282
+ address: USDT0_ADDRESSES["eip155:1030"],
283
+ symbol: "USDT0",
284
+ name: "TetherToken",
285
+ version: "1",
286
+ decimals: 6,
287
+ tokenType: "eip3009",
288
+ priority: 1
289
+ }
290
+ },
291
+ // Monad Mainnet
292
+ "eip155:143": {
293
+ USDT0: {
294
+ address: USDT0_ADDRESSES["eip155:143"],
295
+ symbol: "USDT0",
296
+ name: "TetherToken",
297
+ version: "1",
298
+ decimals: 6,
299
+ tokenType: "eip3009",
300
+ priority: 1
301
+ }
302
+ },
303
+ // === Phase 2: Medium Priority USDT0 Networks ===
304
+ // Flare Mainnet
305
+ "eip155:14": {
306
+ USDT0: {
307
+ address: USDT0_ADDRESSES["eip155:14"],
308
+ symbol: "USDT0",
309
+ name: "TetherToken",
310
+ version: "1",
311
+ decimals: 6,
312
+ tokenType: "eip3009",
313
+ priority: 1
314
+ }
315
+ },
316
+ // Rootstock Mainnet (Bitcoin sidechain)
317
+ "eip155:30": {
318
+ USDT0: {
319
+ address: USDT0_ADDRESSES["eip155:30"],
320
+ symbol: "USDT0",
321
+ name: "TetherToken",
322
+ version: "1",
323
+ decimals: 6,
324
+ tokenType: "eip3009",
325
+ priority: 1
326
+ }
327
+ },
328
+ // XLayer Mainnet (OKX L2)
329
+ "eip155:196": {
330
+ USDT0: {
331
+ address: USDT0_ADDRESSES["eip155:196"],
332
+ symbol: "USDT0",
333
+ name: "TetherToken",
334
+ version: "1",
335
+ decimals: 6,
336
+ tokenType: "eip3009",
337
+ priority: 1
338
+ }
339
+ },
340
+ // Stable Mainnet
341
+ "eip155:988": {
342
+ USDT0: {
343
+ address: USDT0_ADDRESSES["eip155:988"],
344
+ symbol: "USDT0",
345
+ name: "TetherToken",
346
+ version: "1",
347
+ decimals: 6,
348
+ tokenType: "eip3009",
349
+ priority: 1
350
+ }
351
+ },
352
+ // HyperEVM Mainnet
353
+ "eip155:999": {
354
+ USDT0: {
355
+ address: USDT0_ADDRESSES["eip155:999"],
356
+ symbol: "USDT0",
357
+ name: "TetherToken",
358
+ version: "1",
359
+ decimals: 6,
360
+ tokenType: "eip3009",
361
+ priority: 1
362
+ }
363
+ },
364
+ // MegaETH Mainnet
365
+ "eip155:4326": {
366
+ USDT0: {
367
+ address: USDT0_ADDRESSES["eip155:4326"],
368
+ symbol: "USDT0",
369
+ name: "TetherToken",
370
+ version: "1",
371
+ decimals: 6,
372
+ tokenType: "eip3009",
373
+ priority: 1
374
+ }
375
+ },
376
+ // Corn Mainnet
377
+ "eip155:21000000": {
378
+ USDT0: {
379
+ address: USDT0_ADDRESSES["eip155:21000000"],
380
+ symbol: "USDT0",
381
+ name: "TetherToken",
382
+ version: "1",
383
+ decimals: 6,
384
+ tokenType: "eip3009",
385
+ priority: 1
386
+ }
387
+ },
388
+ // === Legacy USDT Networks (no EIP-3009 support) ===
389
+ // BNB Chain (BSC) - BEP-20 USDT
390
+ "eip155:56": {
391
+ USDT: {
392
+ address: USDT_LEGACY_ADDRESSES["eip155:56"],
393
+ symbol: "USDT",
394
+ name: "Tether USD",
395
+ version: "1",
396
+ decimals: 18,
397
+ // BSC USDT uses 18 decimals
398
+ tokenType: "legacy",
399
+ priority: 10
400
+ }
401
+ },
402
+ // Avalanche C-Chain
403
+ "eip155:43114": {
404
+ USDT: {
405
+ address: USDT_LEGACY_ADDRESSES["eip155:43114"],
406
+ symbol: "USDT",
407
+ name: "TetherToken",
408
+ version: "1",
409
+ decimals: 6,
410
+ tokenType: "legacy",
411
+ priority: 10
412
+ }
413
+ },
414
+ // Fantom
415
+ "eip155:250": {
416
+ USDT: {
417
+ address: USDT_LEGACY_ADDRESSES["eip155:250"],
418
+ symbol: "USDT",
419
+ name: "Frapped USDT",
420
+ version: "1",
421
+ decimals: 6,
422
+ tokenType: "legacy",
423
+ priority: 10
424
+ }
425
+ },
426
+ // Celo
427
+ "eip155:42220": {
428
+ USDT: {
429
+ address: USDT_LEGACY_ADDRESSES["eip155:42220"],
430
+ symbol: "USDT",
431
+ name: "Tether USD",
432
+ version: "1",
433
+ decimals: 18,
434
+ tokenType: "legacy",
435
+ priority: 10
436
+ }
437
+ },
438
+ // Kaia (formerly Klaytn)
439
+ "eip155:8217": {
440
+ USDT: {
441
+ address: USDT_LEGACY_ADDRESSES["eip155:8217"],
442
+ symbol: "USDT",
443
+ name: "Tether USD",
444
+ version: "1",
445
+ decimals: 6,
446
+ tokenType: "legacy",
447
+ priority: 10
448
+ }
449
+ }
450
+ };
451
+ function getTokenConfig(network, symbol) {
452
+ return TOKEN_REGISTRY[network]?.[symbol.toUpperCase()];
453
+ }
454
+ function getNetworkTokens(network) {
455
+ const tokens = TOKEN_REGISTRY[network];
456
+ if (!tokens) return [];
457
+ return Object.values(tokens).sort((a, b) => a.priority - b.priority);
458
+ }
459
+ function getDefaultToken(network) {
460
+ const tokens = getNetworkTokens(network);
461
+ return tokens[0];
462
+ }
463
+ function getTokenByAddress(network, address) {
464
+ const tokens = TOKEN_REGISTRY[network];
465
+ if (!tokens) return void 0;
466
+ const lowerAddress = address.toLowerCase();
467
+ return Object.values(tokens).find((t) => t.address.toLowerCase() === lowerAddress);
468
+ }
469
+
470
+ export {
471
+ USDT_LEGACY_ADDRESSES,
472
+ TOKEN_REGISTRY,
473
+ getTokenConfig,
474
+ getDefaultToken,
475
+ getTokenByAddress
476
+ };
477
+ //# sourceMappingURL=chunk-IWSDEZKI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/tokens.ts"],"sourcesContent":["/**\n * Token configuration for T402 EVM payments\n *\n * This module provides comprehensive token definitions including:\n * - USDT0 (Tether's new omnichain token with EIP-3009 support)\n * - USDC (USD Coin with EIP-3009 support)\n * - Legacy tokens configuration\n */\n\nimport type { Address } from \"viem\";\n\n/**\n * Token type classification for payment scheme selection\n */\nexport type TokenType = \"eip3009\" | \"legacy\";\n\n/**\n * Token configuration with EIP-712 domain parameters\n */\nexport interface TokenConfig {\n /** Token contract address */\n address: Address;\n /** Token symbol (e.g., \"USDT0\", \"USDC\") */\n symbol: string;\n /** EIP-712 domain name for signing */\n name: string;\n /** EIP-712 domain version for signing */\n version: string;\n /** Number of decimal places */\n decimals: number;\n /** Token type for scheme selection */\n tokenType: TokenType;\n /** Payment priority (lower = higher priority) */\n priority: number;\n}\n\n/**\n * Network token registry mapping network -> symbol -> config\n */\nexport type NetworkTokenRegistry = Record<string, Record<string, TokenConfig>>;\n\n/**\n * USDT0 Contract Addresses by Network\n * Source: https://docs.tether.io/usdt0/integration-guide/deployed-contracts\n *\n * USDT0 is Tether's new omnichain token using LayerZero OFT standard.\n * Key features:\n * - Supports EIP-3009 transferWithAuthorization (gasless transfers)\n * - Supports EIP-2612 permit\n * - Native cross-chain via LayerZero\n */\nexport const USDT0_ADDRESSES: Record<string, Address> = {\n // === Existing Networks ===\n // Ethereum Mainnet - OFT Adapter (bridge endpoint)\n \"eip155:1\": \"0x6C96dE32CEa08842dcc4058c14d3aaAD7Fa41dee\",\n // Arbitrum One - Native USDT0\n \"eip155:42161\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n // Ink Mainnet\n \"eip155:57073\": \"0x0200C29006150606B650577BBE7B6248F58470c1\",\n // Berachain Mainnet\n \"eip155:80094\": \"0x779Ded0c9e1022225f8E0630b35a9b54bE713736\",\n // Unichain Mainnet (updated address)\n \"eip155:130\": \"0x9151434b16b9763660705744891fA906F660EcC5\",\n\n // === Phase 1: High Priority Networks ===\n // Polygon PoS\n \"eip155:137\": \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n // Mantle\n \"eip155:5000\": \"0x779Ded0c9e1022225f8E0630b35a9b54bE713736\",\n // Optimism\n \"eip155:10\": \"0x01bFF41798a0BcF287b996046Ca68b395DbC1071\",\n // Plasma\n \"eip155:9745\": \"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb\",\n // Sei\n \"eip155:1329\": \"0x9151434b16b9763660705744891fA906F660EcC5\",\n // Conflux eSpace\n \"eip155:1030\": \"0xaf37E8B6C9ED7f6318979f56Fc287d76c30847ff\",\n // Monad\n \"eip155:143\": \"0xe7cd86e13AC4309349F30B3435a9d337750fC82D\",\n\n // === Phase 2: Medium Priority Networks ===\n // Rootstock (Bitcoin sidechain)\n \"eip155:30\": \"0x779dED0C9e1022225F8e0630b35A9B54Be713736\",\n // XLayer (OKX L2)\n \"eip155:196\": \"0x779Ded0c9e1022225f8E0630b35a9b54bE713736\",\n // Flare\n \"eip155:14\": \"0xe7cd86e13AC4309349F30B3435a9d337750fC82D\",\n // Corn\n \"eip155:21000000\": \"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb\",\n // HyperEVM\n \"eip155:999\": \"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb\",\n // MegaETH\n \"eip155:4326\": \"0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb\",\n // Stable\n \"eip155:988\": \"0x779Ded0c9e1022225f8E0630b35a9b54bE713736\",\n};\n\n/**\n * USDC Contract Addresses by Network\n * Native USDC with EIP-3009 support\n */\nexport const USDC_ADDRESSES: Record<string, Address> = {\n // Ethereum Mainnet\n \"eip155:1\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n // Base Mainnet\n \"eip155:8453\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n // Base Sepolia (testnet)\n \"eip155:84532\": \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n // Sepolia (testnet)\n \"eip155:11155111\": \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\",\n // Arbitrum One\n \"eip155:42161\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n // Polygon Mainnet\n \"eip155:137\": \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n};\n\n/**\n * Traditional USDT Addresses (Legacy - no EIP-3009 support)\n * These require the approve + transferFrom pattern\n */\nexport const USDT_LEGACY_ADDRESSES: Record<string, Address> = {\n // Ethereum Mainnet\n \"eip155:1\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n // Polygon Mainnet (native USDT, not USDT0)\n \"eip155:137\": \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n // BNB Chain (BSC) - BEP-20 USDT\n \"eip155:56\": \"0x55d398326f99059fF775485246999027B3197955\",\n // Avalanche C-Chain\n \"eip155:43114\": \"0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7\",\n // Fantom\n \"eip155:250\": \"0x049d68029688eabf473097a2fc38ef61633a3c7a\",\n // Celo\n \"eip155:42220\": \"0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e\",\n // Kaia (formerly Klaytn)\n \"eip155:8217\": \"0xcee8faf64bb97a73bb51e115aa89c17ffa8dd167\",\n};\n\n/**\n * Complete token registry with all supported tokens per network\n */\nexport const TOKEN_REGISTRY: NetworkTokenRegistry = {\n // Ethereum Mainnet\n \"eip155:1\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:1\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n USDC: {\n address: USDC_ADDRESSES[\"eip155:1\"],\n symbol: \"USDC\",\n name: \"USD Coin\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:1\"],\n symbol: \"USDT\",\n name: \"TetherUSD\",\n version: \"1\",\n decimals: 6,\n tokenType: \"legacy\",\n priority: 10, // Lower priority due to legacy flow\n },\n },\n\n // Arbitrum One\n \"eip155:42161\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:42161\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n USDC: {\n address: USDC_ADDRESSES[\"eip155:42161\"],\n symbol: \"USDC\",\n name: \"USD Coin\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n },\n\n // Ink Mainnet\n \"eip155:57073\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:57073\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Berachain Mainnet\n \"eip155:80094\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:80094\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Unichain Mainnet\n \"eip155:130\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:130\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Base Mainnet\n \"eip155:8453\": {\n USDC: {\n address: USDC_ADDRESSES[\"eip155:8453\"],\n symbol: \"USDC\",\n name: \"USD Coin\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n },\n\n // Base Sepolia (testnet)\n \"eip155:84532\": {\n USDC: {\n address: USDC_ADDRESSES[\"eip155:84532\"],\n symbol: \"USDC\",\n name: \"USDC\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n },\n\n // Sepolia (testnet)\n \"eip155:11155111\": {\n USDC: {\n address: USDC_ADDRESSES[\"eip155:11155111\"],\n symbol: \"USDC\",\n name: \"USDC\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n },\n\n // Polygon Mainnet\n \"eip155:137\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:137\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n USDC: {\n address: USDC_ADDRESSES[\"eip155:137\"],\n symbol: \"USDC\",\n name: \"USD Coin\",\n version: \"2\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 2,\n },\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:137\"],\n symbol: \"USDT\",\n name: \"TetherUSD\",\n version: \"1\",\n decimals: 6,\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n\n // === Phase 1: High Priority USDT0 Networks ===\n\n // Optimism Mainnet\n \"eip155:10\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:10\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Mantle Mainnet\n \"eip155:5000\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:5000\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Plasma Mainnet\n \"eip155:9745\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:9745\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Sei Mainnet\n \"eip155:1329\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:1329\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Conflux eSpace Mainnet\n \"eip155:1030\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:1030\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Monad Mainnet\n \"eip155:143\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:143\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // === Phase 2: Medium Priority USDT0 Networks ===\n\n // Flare Mainnet\n \"eip155:14\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:14\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Rootstock Mainnet (Bitcoin sidechain)\n \"eip155:30\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:30\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // XLayer Mainnet (OKX L2)\n \"eip155:196\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:196\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Stable Mainnet\n \"eip155:988\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:988\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // HyperEVM Mainnet\n \"eip155:999\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:999\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // MegaETH Mainnet\n \"eip155:4326\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:4326\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // Corn Mainnet\n \"eip155:21000000\": {\n USDT0: {\n address: USDT0_ADDRESSES[\"eip155:21000000\"],\n symbol: \"USDT0\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"eip3009\",\n priority: 1,\n },\n },\n\n // === Legacy USDT Networks (no EIP-3009 support) ===\n\n // BNB Chain (BSC) - BEP-20 USDT\n \"eip155:56\": {\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:56\"],\n symbol: \"USDT\",\n name: \"Tether USD\",\n version: \"1\",\n decimals: 18, // BSC USDT uses 18 decimals\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n\n // Avalanche C-Chain\n \"eip155:43114\": {\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:43114\"],\n symbol: \"USDT\",\n name: \"TetherToken\",\n version: \"1\",\n decimals: 6,\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n\n // Fantom\n \"eip155:250\": {\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:250\"],\n symbol: \"USDT\",\n name: \"Frapped USDT\",\n version: \"1\",\n decimals: 6,\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n\n // Celo\n \"eip155:42220\": {\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:42220\"],\n symbol: \"USDT\",\n name: \"Tether USD\",\n version: \"1\",\n decimals: 18,\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n\n // Kaia (formerly Klaytn)\n \"eip155:8217\": {\n USDT: {\n address: USDT_LEGACY_ADDRESSES[\"eip155:8217\"],\n symbol: \"USDT\",\n name: \"Tether USD\",\n version: \"1\",\n decimals: 6,\n tokenType: \"legacy\",\n priority: 10,\n },\n },\n};\n\n/**\n * Token priority for payment method selection\n * Lower number = higher priority\n */\nexport const TOKEN_PRIORITY: Record<string, number> = {\n USDT0: 1, // Highest priority - gasless, cross-chain\n USDC: 2, // Second - wide support, EIP-3009\n USDT: 10, // Lower - requires approval transaction\n DAI: 5, // Medium - good support\n};\n\n/**\n * Get token configuration for a specific token on a network\n *\n * @param network - The network identifier in CAIP-2 format\n * @param symbol - The token symbol (e.g., \"USDT0\", \"USDC\")\n * @returns The token configuration if found, undefined otherwise\n */\nexport function getTokenConfig(network: string, symbol: string): TokenConfig | undefined {\n return TOKEN_REGISTRY[network]?.[symbol.toUpperCase()];\n}\n\n/**\n * Get all tokens available on a network\n *\n * @param network - The network identifier in CAIP-2 format\n * @returns Array of token configurations sorted by priority\n */\nexport function getNetworkTokens(network: string): TokenConfig[] {\n const tokens = TOKEN_REGISTRY[network];\n if (!tokens) return [];\n return Object.values(tokens).sort((a, b) => a.priority - b.priority);\n}\n\n/**\n * Get the default/preferred token for a network\n * Prefers USDT0 > USDC > others based on priority\n *\n * @param network - The network identifier in CAIP-2 format\n * @returns The highest priority token configuration, or undefined if none found\n */\nexport function getDefaultToken(network: string): TokenConfig | undefined {\n const tokens = getNetworkTokens(network);\n return tokens[0]; // Already sorted by priority\n}\n\n/**\n * Get token by contract address on a network\n *\n * @param network - The network identifier in CAIP-2 format\n * @param address - The token contract address\n * @returns The token configuration if found, undefined otherwise\n */\nexport function getTokenByAddress(network: string, address: Address): TokenConfig | undefined {\n const tokens = TOKEN_REGISTRY[network];\n if (!tokens) return undefined;\n\n const lowerAddress = address.toLowerCase();\n return Object.values(tokens).find(t => t.address.toLowerCase() === lowerAddress);\n}\n\n/**\n * Check if a token supports EIP-3009 (gasless transfers)\n *\n * @param network - The network identifier in CAIP-2 format\n * @param symbol - The token symbol to check\n * @returns True if the token supports EIP-3009 gasless transfers\n */\nexport function supportsEIP3009(network: string, symbol: string): boolean {\n const config = getTokenConfig(network, symbol);\n return config?.tokenType === \"eip3009\";\n}\n\n/**\n * Get all networks that support a specific token\n *\n * @param symbol - The token symbol to search for\n * @returns Array of network identifiers that support the token\n */\nexport function getNetworksForToken(symbol: string): string[] {\n const networks: string[] = [];\n for (const [network, tokens] of Object.entries(TOKEN_REGISTRY)) {\n if (tokens[symbol.toUpperCase()]) {\n networks.push(network);\n }\n }\n return networks;\n}\n\n/**\n * Get USDT0 networks (primary T402 token)\n *\n * @returns Array of network identifiers that support USDT0\n */\nexport function getUsdt0Networks(): string[] {\n return getNetworksForToken(\"USDT0\");\n}\n\n/**\n * EIP-712 domain configuration for a token\n *\n * @param network - The network identifier in CAIP-2 format\n * @param tokenAddress - The token contract address\n * @param chainId - The numeric chain ID\n * @returns The EIP-712 domain configuration, or undefined if token not found\n */\nexport function getEIP712Domain(\n network: string,\n tokenAddress: Address,\n chainId: number,\n): { name: string; version: string; chainId: number; verifyingContract: Address } | undefined {\n const token = getTokenByAddress(network, tokenAddress);\n if (!token) return undefined;\n\n return {\n name: token.name,\n version: token.version,\n chainId,\n verifyingContract: token.address,\n };\n}\n"],"mappings":";AAmDO,IAAM,kBAA2C;AAAA;AAAA;AAAA,EAGtD,YAAY;AAAA;AAAA,EAEZ,gBAAgB;AAAA;AAAA,EAEhB,gBAAgB;AAAA;AAAA,EAEhB,gBAAgB;AAAA;AAAA,EAEhB,cAAc;AAAA;AAAA;AAAA,EAId,cAAc;AAAA;AAAA,EAEd,eAAe;AAAA;AAAA,EAEf,aAAa;AAAA;AAAA,EAEb,eAAe;AAAA;AAAA,EAEf,eAAe;AAAA;AAAA,EAEf,eAAe;AAAA;AAAA,EAEf,cAAc;AAAA;AAAA;AAAA,EAId,aAAa;AAAA;AAAA,EAEb,cAAc;AAAA;AAAA,EAEd,aAAa;AAAA;AAAA,EAEb,mBAAmB;AAAA;AAAA,EAEnB,cAAc;AAAA;AAAA,EAEd,eAAe;AAAA;AAAA,EAEf,cAAc;AAChB;AAMO,IAAM,iBAA0C;AAAA;AAAA,EAErD,YAAY;AAAA;AAAA,EAEZ,eAAe;AAAA;AAAA,EAEf,gBAAgB;AAAA;AAAA,EAEhB,mBAAmB;AAAA;AAAA,EAEnB,gBAAgB;AAAA;AAAA,EAEhB,cAAc;AAChB;AAMO,IAAM,wBAAiD;AAAA;AAAA,EAE5D,YAAY;AAAA;AAAA,EAEZ,cAAc;AAAA;AAAA,EAEd,aAAa;AAAA;AAAA,EAEb,gBAAgB;AAAA;AAAA,EAEhB,cAAc;AAAA;AAAA,EAEd,gBAAgB;AAAA;AAAA,EAEhB,eAAe;AACjB;AAKO,IAAM,iBAAuC;AAAA;AAAA,EAElD,YAAY;AAAA,IACV,OAAO;AAAA,MACL,SAAS,gBAAgB,UAAU;AAAA,MACnC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,eAAe,UAAU;AAAA,MAClC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,sBAAsB,UAAU;AAAA,MACzC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,OAAO;AAAA,MACL,SAAS,gBAAgB,cAAc;AAAA,MACvC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,eAAe,cAAc;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,OAAO;AAAA,MACL,SAAS,gBAAgB,cAAc;AAAA,MACvC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,OAAO;AAAA,MACL,SAAS,gBAAgB,cAAc;AAAA,MACvC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,MAAM;AAAA,MACJ,SAAS,eAAe,aAAa;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,MAAM;AAAA,MACJ,SAAS,eAAe,cAAc;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,mBAAmB;AAAA,IACjB,MAAM;AAAA,MACJ,SAAS,eAAe,iBAAiB;AAAA,MACzC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,eAAe,YAAY;AAAA,MACpC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,sBAAsB,YAAY;AAAA,MAC3C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA;AAAA,EAKA,aAAa;AAAA,IACX,OAAO;AAAA,MACL,SAAS,gBAAgB,WAAW;AAAA,MACpC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,OAAO;AAAA,MACL,SAAS,gBAAgB,aAAa;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,OAAO;AAAA,MACL,SAAS,gBAAgB,aAAa;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,OAAO;AAAA,MACL,SAAS,gBAAgB,aAAa;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,OAAO;AAAA,MACL,SAAS,gBAAgB,aAAa;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA;AAAA,EAKA,aAAa;AAAA,IACX,OAAO;AAAA,MACL,SAAS,gBAAgB,WAAW;AAAA,MACpC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,aAAa;AAAA,IACX,OAAO;AAAA,MACL,SAAS,gBAAgB,WAAW;AAAA,MACpC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,gBAAgB,YAAY;AAAA,MACrC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,OAAO;AAAA,MACL,SAAS,gBAAgB,aAAa;AAAA,MACtC,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,mBAAmB;AAAA,IACjB,OAAO;AAAA,MACL,SAAS,gBAAgB,iBAAiB;AAAA,MAC1C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA;AAAA,EAKA,aAAa;AAAA,IACX,MAAM;AAAA,MACJ,SAAS,sBAAsB,WAAW;AAAA,MAC1C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,MAAM;AAAA,MACJ,SAAS,sBAAsB,cAAc;AAAA,MAC7C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,MAAM;AAAA,MACJ,SAAS,sBAAsB,YAAY;AAAA,MAC3C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,gBAAgB;AAAA,IACd,MAAM;AAAA,MACJ,SAAS,sBAAsB,cAAc;AAAA,MAC7C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,eAAe;AAAA,IACb,MAAM;AAAA,MACJ,SAAS,sBAAsB,aAAa;AAAA,MAC5C,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,EACF;AACF;AAoBO,SAAS,eAAe,SAAiB,QAAyC;AACvF,SAAO,eAAe,OAAO,IAAI,OAAO,YAAY,CAAC;AACvD;AAQO,SAAS,iBAAiB,SAAgC;AAC/D,QAAM,SAAS,eAAe,OAAO;AACrC,MAAI,CAAC,OAAQ,QAAO,CAAC;AACrB,SAAO,OAAO,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AACrE;AASO,SAAS,gBAAgB,SAA0C;AACxE,QAAM,SAAS,iBAAiB,OAAO;AACvC,SAAO,OAAO,CAAC;AACjB;AASO,SAAS,kBAAkB,SAAiB,SAA2C;AAC5F,QAAM,SAAS,eAAe,OAAO;AACrC,MAAI,CAAC,OAAQ,QAAO;AAEpB,QAAM,eAAe,QAAQ,YAAY;AACzC,SAAO,OAAO,OAAO,MAAM,EAAE,KAAK,OAAK,EAAE,QAAQ,YAAY,MAAM,YAAY;AACjF;","names":[]}
@@ -1,7 +1,12 @@
1
1
  import {
2
- authorizationTypes,
2
+ authorizationTypes
3
+ } from "./chunk-Y4U7Q543.mjs";
4
+ import {
3
5
  createNonce
4
- } from "./chunk-XYKAO6KJ.mjs";
6
+ } from "./chunk-SYVPLXYV.mjs";
7
+ import {
8
+ __publicField
9
+ } from "./chunk-NSSMTXJJ.mjs";
5
10
 
6
11
  // src/exact/client/scheme.ts
7
12
  import { getAddress } from "viem";
@@ -13,7 +18,7 @@ var ExactEvmScheme = class {
13
18
  */
14
19
  constructor(signer) {
15
20
  this.signer = signer;
16
- this.scheme = "exact";
21
+ __publicField(this, "scheme", "exact");
17
22
  }
18
23
  /**
19
24
  * Creates a payment payload for the Exact scheme.
@@ -85,4 +90,4 @@ var ExactEvmScheme = class {
85
90
  export {
86
91
  ExactEvmScheme
87
92
  };
88
- //# sourceMappingURL=chunk-LGSG73NJ.mjs.map
93
+ //# sourceMappingURL=chunk-LM5RZBVP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exact/client/scheme.ts"],"sourcesContent":["import { PaymentPayload, PaymentRequirements, SchemeNetworkClient } from \"@t402/core/types\";\nimport { getAddress } from \"viem\";\nimport { authorizationTypes } from \"../../constants\";\nimport { ClientEvmSigner } from \"../../signer\";\nimport { ExactEvmPayloadV2 } from \"../../types\";\nimport { createNonce } from \"../../utils\";\n\n/**\n * EVM client implementation for the Exact payment scheme.\n *\n */\nexport class ExactEvmScheme implements SchemeNetworkClient {\n readonly scheme = \"exact\";\n\n /**\n * Creates a new ExactEvmClient instance.\n *\n * @param signer - The EVM signer for client operations\n */\n constructor(private readonly signer: ClientEvmSigner) {}\n\n /**\n * Creates a payment payload for the Exact scheme.\n *\n * @param t402Version - The t402 protocol version\n * @param paymentRequirements - The payment requirements\n * @returns Promise resolving to a payment payload\n */\n async createPaymentPayload(\n t402Version: number,\n paymentRequirements: PaymentRequirements,\n ): Promise<Pick<PaymentPayload, \"t402Version\" | \"payload\">> {\n const nonce = createNonce();\n const now = Math.floor(Date.now() / 1000);\n\n const authorization: ExactEvmPayloadV2[\"authorization\"] = {\n from: this.signer.address,\n to: getAddress(paymentRequirements.payTo),\n value: paymentRequirements.amount,\n validAfter: (now - 600).toString(), // 10 minutes before\n validBefore: (now + paymentRequirements.maxTimeoutSeconds).toString(),\n nonce,\n };\n\n // Sign the authorization\n const signature = await this.signAuthorization(authorization, paymentRequirements);\n\n const payload: ExactEvmPayloadV2 = {\n authorization,\n signature,\n };\n\n return {\n t402Version,\n payload,\n };\n }\n\n /**\n * Sign the EIP-3009 authorization using EIP-712\n *\n * @param authorization - The authorization to sign\n * @param requirements - The payment requirements\n * @returns Promise resolving to the signature\n */\n private async signAuthorization(\n authorization: ExactEvmPayloadV2[\"authorization\"],\n requirements: PaymentRequirements,\n ): Promise<`0x${string}`> {\n const chainId = parseInt(requirements.network.split(\":\")[1]);\n\n if (!requirements.extra?.name || !requirements.extra?.version) {\n throw new Error(\n `EIP-712 domain parameters (name, version) are required in payment requirements for asset ${requirements.asset}`,\n );\n }\n\n const { name, version } = requirements.extra;\n\n const domain = {\n name,\n version,\n chainId,\n verifyingContract: getAddress(requirements.asset),\n };\n\n const message = {\n from: getAddress(authorization.from),\n to: getAddress(authorization.to),\n value: BigInt(authorization.value),\n validAfter: BigInt(authorization.validAfter),\n validBefore: BigInt(authorization.validBefore),\n nonce: authorization.nonce,\n };\n\n return await this.signer.signTypedData({\n domain,\n types: authorizationTypes,\n primaryType: \"TransferWithAuthorization\",\n message,\n });\n }\n}\n"],"mappings":";;;;;;AACA,SAAS,kBAAkB;AAUpB,IAAM,iBAAN,MAAoD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzD,YAA6B,QAAyB;AAAzB;AAP7B,SAAS,SAAS;AAAA,EAOqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,MAAM,qBACJ,aACA,qBAC0D;AAC1D,UAAM,QAAQ,YAAY;AAC1B,UAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AAExC,UAAM,gBAAoD;AAAA,MACxD,MAAM,KAAK,OAAO;AAAA,MAClB,IAAI,WAAW,oBAAoB,KAAK;AAAA,MACxC,OAAO,oBAAoB;AAAA,MAC3B,aAAa,MAAM,KAAK,SAAS;AAAA;AAAA,MACjC,cAAc,MAAM,oBAAoB,mBAAmB,SAAS;AAAA,MACpE;AAAA,IACF;AAGA,UAAM,YAAY,MAAM,KAAK,kBAAkB,eAAe,mBAAmB;AAEjF,UAAM,UAA6B;AAAA,MACjC;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAc,kBACZ,eACA,cACwB;AACxB,UAAM,UAAU,SAAS,aAAa,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3D,QAAI,CAAC,aAAa,OAAO,QAAQ,CAAC,aAAa,OAAO,SAAS;AAC7D,YAAM,IAAI;AAAA,QACR,4FAA4F,aAAa,KAAK;AAAA,MAChH;AAAA,IACF;AAEA,UAAM,EAAE,MAAM,QAAQ,IAAI,aAAa;AAEvC,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,WAAW,aAAa,KAAK;AAAA,IAClD;AAEA,UAAM,UAAU;AAAA,MACd,MAAM,WAAW,cAAc,IAAI;AAAA,MACnC,IAAI,WAAW,cAAc,EAAE;AAAA,MAC/B,OAAO,OAAO,cAAc,KAAK;AAAA,MACjC,YAAY,OAAO,cAAc,UAAU;AAAA,MAC3C,aAAa,OAAO,cAAc,WAAW;AAAA,MAC7C,OAAO,cAAc;AAAA,IACvB;AAEA,WAAO,MAAM,KAAK,OAAO,cAAc;AAAA,MACrC;AAAA,MACA,OAAO;AAAA,MACP,aAAa;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/exact/client/scheme.ts"],"sourcesContent":["import { PaymentPayload, PaymentRequirements, SchemeNetworkClient } from \"@t402/core/types\";\nimport { getAddress } from \"viem\";\nimport { authorizationTypes } from \"../../constants\";\nimport { ClientEvmSigner } from \"../../signer\";\nimport { ExactEvmPayloadV2 } from \"../../types\";\nimport { createNonce } from \"../../utils\";\n\n/**\n * EVM client implementation for the Exact payment scheme.\n *\n */\nexport class ExactEvmScheme implements SchemeNetworkClient {\n readonly scheme = \"exact\";\n\n /**\n * Creates a new ExactEvmClient instance.\n *\n * @param signer - The EVM signer for client operations\n */\n constructor(private readonly signer: ClientEvmSigner) {}\n\n /**\n * Creates a payment payload for the Exact scheme.\n *\n * @param t402Version - The t402 protocol version\n * @param paymentRequirements - The payment requirements\n * @returns Promise resolving to a payment payload\n */\n async createPaymentPayload(\n t402Version: number,\n paymentRequirements: PaymentRequirements,\n ): Promise<Pick<PaymentPayload, \"t402Version\" | \"payload\">> {\n const nonce = createNonce();\n const now = Math.floor(Date.now() / 1000);\n\n const authorization: ExactEvmPayloadV2[\"authorization\"] = {\n from: this.signer.address,\n to: getAddress(paymentRequirements.payTo),\n value: paymentRequirements.amount,\n validAfter: (now - 600).toString(), // 10 minutes before\n validBefore: (now + paymentRequirements.maxTimeoutSeconds).toString(),\n nonce,\n };\n\n // Sign the authorization\n const signature = await this.signAuthorization(authorization, paymentRequirements);\n\n const payload: ExactEvmPayloadV2 = {\n authorization,\n signature,\n };\n\n return {\n t402Version,\n payload,\n };\n }\n\n /**\n * Sign the EIP-3009 authorization using EIP-712\n *\n * @param authorization - The authorization to sign\n * @param requirements - The payment requirements\n * @returns Promise resolving to the signature\n */\n private async signAuthorization(\n authorization: ExactEvmPayloadV2[\"authorization\"],\n requirements: PaymentRequirements,\n ): Promise<`0x${string}`> {\n const chainId = parseInt(requirements.network.split(\":\")[1]);\n\n if (!requirements.extra?.name || !requirements.extra?.version) {\n throw new Error(\n `EIP-712 domain parameters (name, version) are required in payment requirements for asset ${requirements.asset}`,\n );\n }\n\n const { name, version } = requirements.extra;\n\n const domain = {\n name,\n version,\n chainId,\n verifyingContract: getAddress(requirements.asset),\n };\n\n const message = {\n from: getAddress(authorization.from),\n to: getAddress(authorization.to),\n value: BigInt(authorization.value),\n validAfter: BigInt(authorization.validAfter),\n validBefore: BigInt(authorization.validBefore),\n nonce: authorization.nonce,\n };\n\n return await this.signer.signTypedData({\n domain,\n types: authorizationTypes,\n primaryType: \"TransferWithAuthorization\",\n message,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AACA,SAAS,kBAAkB;AAUpB,IAAM,iBAAN,MAAoD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzD,YAA6B,QAAyB;AAAzB;AAP7B,wBAAS,UAAS;AAAA,EAOqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,MAAM,qBACJ,aACA,qBAC0D;AAC1D,UAAM,QAAQ,YAAY;AAC1B,UAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;AAExC,UAAM,gBAAoD;AAAA,MACxD,MAAM,KAAK,OAAO;AAAA,MAClB,IAAI,WAAW,oBAAoB,KAAK;AAAA,MACxC,OAAO,oBAAoB;AAAA,MAC3B,aAAa,MAAM,KAAK,SAAS;AAAA;AAAA,MACjC,cAAc,MAAM,oBAAoB,mBAAmB,SAAS;AAAA,MACpE;AAAA,IACF;AAGA,UAAM,YAAY,MAAM,KAAK,kBAAkB,eAAe,mBAAmB;AAEjF,UAAM,UAA6B;AAAA,MACjC;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAc,kBACZ,eACA,cACwB;AACxB,UAAM,UAAU,SAAS,aAAa,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3D,QAAI,CAAC,aAAa,OAAO,QAAQ,CAAC,aAAa,OAAO,SAAS;AAC7D,YAAM,IAAI;AAAA,QACR,4FAA4F,aAAa,KAAK;AAAA,MAChH;AAAA,IACF;AAEA,UAAM,EAAE,MAAM,QAAQ,IAAI,aAAa;AAEvC,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB,WAAW,aAAa,KAAK;AAAA,IAClD;AAEA,UAAM,UAAU;AAAA,MACd,MAAM,WAAW,cAAc,IAAI;AAAA,MACnC,IAAI,WAAW,cAAc,EAAE;AAAA,MAC/B,OAAO,OAAO,cAAc,KAAK;AAAA,MACjC,YAAY,OAAO,cAAc,UAAU;AAAA,MAC3C,aAAa,OAAO,cAAc,WAAW;AAAA,MAC7C,OAAO,cAAc;AAAA,IACvB;AAEA,WAAO,MAAM,KAAK,OAAO,cAAc;AAAA,MACrC;AAAA,MACA,OAAO;AAAA,MACP,aAAa;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+
5
+ export {
6
+ __publicField
7
+ };
8
+ //# sourceMappingURL=chunk-NSSMTXJJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}