uvd-x402-sdk 2.16.1 → 2.17.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 (76) hide show
  1. package/README.md +106 -8
  2. package/dist/adapters/index.d.mts +1 -1
  3. package/dist/adapters/index.d.ts +1 -1
  4. package/dist/adapters/index.js +103 -0
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +103 -0
  7. package/dist/adapters/index.mjs.map +1 -1
  8. package/dist/backend/index.d.mts +393 -3
  9. package/dist/backend/index.d.ts +393 -3
  10. package/dist/backend/index.js +448 -0
  11. package/dist/backend/index.js.map +1 -1
  12. package/dist/backend/index.mjs +445 -1
  13. package/dist/backend/index.mjs.map +1 -1
  14. package/dist/{index-BYsQM8ga.d.ts → index-BDLgm-Sg.d.mts} +4 -3
  15. package/dist/{index-B_reIs-L.d.mts → index-BE5cH7oS.d.mts} +4 -2
  16. package/dist/{index-B_reIs-L.d.ts → index-BE5cH7oS.d.ts} +4 -2
  17. package/dist/{index-1CWNFuXP.d.mts → index-DDrvK4em.d.ts} +4 -3
  18. package/dist/index.d.mts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +103 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +103 -0
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/providers/algorand/index.d.mts +1 -1
  25. package/dist/providers/algorand/index.d.ts +1 -1
  26. package/dist/providers/algorand/index.js +103 -0
  27. package/dist/providers/algorand/index.js.map +1 -1
  28. package/dist/providers/algorand/index.mjs +103 -0
  29. package/dist/providers/algorand/index.mjs.map +1 -1
  30. package/dist/providers/evm/index.d.mts +1 -1
  31. package/dist/providers/evm/index.d.ts +1 -1
  32. package/dist/providers/evm/index.js +103 -0
  33. package/dist/providers/evm/index.js.map +1 -1
  34. package/dist/providers/evm/index.mjs +103 -0
  35. package/dist/providers/evm/index.mjs.map +1 -1
  36. package/dist/providers/near/index.d.mts +1 -1
  37. package/dist/providers/near/index.d.ts +1 -1
  38. package/dist/providers/near/index.js +103 -0
  39. package/dist/providers/near/index.js.map +1 -1
  40. package/dist/providers/near/index.mjs +103 -0
  41. package/dist/providers/near/index.mjs.map +1 -1
  42. package/dist/providers/solana/index.d.mts +1 -1
  43. package/dist/providers/solana/index.d.ts +1 -1
  44. package/dist/providers/solana/index.js +103 -0
  45. package/dist/providers/solana/index.js.map +1 -1
  46. package/dist/providers/solana/index.mjs +103 -0
  47. package/dist/providers/solana/index.mjs.map +1 -1
  48. package/dist/providers/stellar/index.d.mts +1 -1
  49. package/dist/providers/stellar/index.d.ts +1 -1
  50. package/dist/providers/stellar/index.js +103 -0
  51. package/dist/providers/stellar/index.js.map +1 -1
  52. package/dist/providers/stellar/index.mjs +103 -0
  53. package/dist/providers/stellar/index.mjs.map +1 -1
  54. package/dist/providers/sui/index.d.mts +1 -1
  55. package/dist/providers/sui/index.d.ts +1 -1
  56. package/dist/providers/sui/index.js +105 -1
  57. package/dist/providers/sui/index.js.map +1 -1
  58. package/dist/providers/sui/index.mjs +105 -1
  59. package/dist/providers/sui/index.mjs.map +1 -1
  60. package/dist/react/index.d.mts +3 -3
  61. package/dist/react/index.d.ts +3 -3
  62. package/dist/react/index.js +103 -0
  63. package/dist/react/index.js.map +1 -1
  64. package/dist/react/index.mjs +103 -0
  65. package/dist/react/index.mjs.map +1 -1
  66. package/dist/utils/index.d.mts +1 -1
  67. package/dist/utils/index.d.ts +1 -1
  68. package/dist/utils/index.js +103 -0
  69. package/dist/utils/index.js.map +1 -1
  70. package/dist/utils/index.mjs +103 -0
  71. package/dist/utils/index.mjs.map +1 -1
  72. package/package.json +9 -3
  73. package/src/backend/index.ts +695 -1
  74. package/src/chains/index.ts +102 -2
  75. package/src/providers/sui/index.ts +2 -0
  76. package/src/types/index.ts +7 -2
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * uvd-x402-sdk - Chain Registry
3
3
  *
4
- * Complete configuration for all 16 supported blockchain networks.
5
- * EVM chains (10): Use ERC-3009 TransferWithAuthorization
4
+ * Complete configuration for all 21 supported blockchain networks.
5
+ * EVM chains (13): Use ERC-3009 TransferWithAuthorization (includes Scroll, SKALE mainnet + testnet)
6
6
  * SVM chains (2): Solana and Fogo - Use SPL tokens with partially-signed transactions
7
7
  * Stellar (1): Uses Soroban authorization entries
8
8
  * NEAR (1): Uses NEP-366 meta-transactions
9
9
  * Algorand (2): Uses ASA transfers with atomic transaction groups
10
+ * Sui (2): Uses sponsored transactions (facilitator pays gas)
10
11
  */
11
12
 
12
13
  import type { ChainConfig, NetworkType, TokenType, TokenConfig } from '../types';
@@ -431,6 +432,105 @@ export const SUPPORTED_CHAINS: Record<string, ChainConfig> = {
431
432
  },
432
433
  },
433
434
 
435
+ scroll: {
436
+ chainId: 534352,
437
+ chainIdHex: '0x82750',
438
+ name: 'scroll',
439
+ displayName: 'Scroll',
440
+ networkType: 'evm',
441
+ rpcUrl: 'https://rpc.scroll.io',
442
+ explorerUrl: 'https://scrollscan.com',
443
+ nativeCurrency: {
444
+ name: 'Ethereum',
445
+ symbol: 'ETH',
446
+ decimals: 18,
447
+ },
448
+ usdc: {
449
+ address: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4',
450
+ decimals: 6,
451
+ name: 'USD Coin',
452
+ version: '2',
453
+ },
454
+ tokens: {
455
+ usdc: {
456
+ address: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4',
457
+ decimals: 6,
458
+ name: 'USD Coin',
459
+ version: '2',
460
+ },
461
+ },
462
+ x402: {
463
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
464
+ enabled: true,
465
+ },
466
+ },
467
+
468
+ skale: {
469
+ chainId: 1187947933,
470
+ chainIdHex: '0x46cea59d',
471
+ name: 'skale',
472
+ displayName: 'SKALE',
473
+ networkType: 'evm',
474
+ rpcUrl: 'https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague',
475
+ explorerUrl: 'https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com',
476
+ nativeCurrency: {
477
+ name: 'sFUEL',
478
+ symbol: 'sFUEL',
479
+ decimals: 18,
480
+ },
481
+ usdc: {
482
+ address: '0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20',
483
+ decimals: 6,
484
+ name: 'USDC', // SKALE uses "USDC"
485
+ version: '2',
486
+ },
487
+ tokens: {
488
+ usdc: {
489
+ address: '0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb20',
490
+ decimals: 6,
491
+ name: 'USDC', // SKALE uses "USDC"
492
+ version: '2',
493
+ },
494
+ },
495
+ x402: {
496
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
497
+ enabled: true,
498
+ },
499
+ },
500
+
501
+ 'skale-testnet': {
502
+ chainId: 324705682,
503
+ chainIdHex: '0x135a9d92',
504
+ name: 'skale-testnet',
505
+ displayName: 'SKALE Testnet',
506
+ networkType: 'evm',
507
+ rpcUrl: 'https://testnet.skalenodes.com/v1/lanky-ill-funny-testnet',
508
+ explorerUrl: 'https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com',
509
+ nativeCurrency: {
510
+ name: 'sFUEL',
511
+ symbol: 'sFUEL',
512
+ decimals: 18,
513
+ },
514
+ usdc: {
515
+ address: '0x2e08028E3C4c2356572E096d8EF835cD5C6030bD',
516
+ decimals: 6,
517
+ name: 'USDC', // SKALE testnet uses "USDC"
518
+ version: '2',
519
+ },
520
+ tokens: {
521
+ usdc: {
522
+ address: '0x2e08028E3C4c2356572E096d8EF835cD5C6030bD',
523
+ decimals: 6,
524
+ name: 'USDC', // SKALE testnet uses "USDC"
525
+ version: '2',
526
+ },
527
+ },
528
+ x402: {
529
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
530
+ enabled: true,
531
+ },
532
+ },
533
+
434
534
  // ============================================================================
435
535
  // SVM CHAINS (2 networks) - Solana Virtual Machine
436
536
  // ============================================================================
@@ -330,12 +330,14 @@ export class SuiProvider implements WalletAdapter {
330
330
  }
331
331
 
332
332
  // Build the payload for the facilitator
333
+ // CRITICAL: coinObjectId is REQUIRED by the facilitator for deserialization
333
334
  const payload: SuiPaymentPayload = {
334
335
  transactionBytes: signedTx.bytes,
335
336
  senderSignature: signedTx.signature,
336
337
  from: this.address,
337
338
  to: recipient,
338
339
  amount: amount.toString(),
340
+ coinObjectId: coinToUse,
339
341
  };
340
342
 
341
343
  return JSON.stringify(payload);
@@ -403,8 +403,8 @@ export interface SuiPaymentPayload {
403
403
  to: string;
404
404
  /** Amount in base units (string to handle large numbers) */
405
405
  amount: string;
406
- /** Optional: Coin object ID used for the transfer */
407
- coinObjectId?: string;
406
+ /** Coin object ID used for the transfer (REQUIRED by facilitator) */
407
+ coinObjectId: string;
408
408
  }
409
409
 
410
410
  /**
@@ -443,6 +443,9 @@ export const CAIP2_IDENTIFIERS: Record<string, string> = {
443
443
  hyperevm: 'eip155:999',
444
444
  unichain: 'eip155:130',
445
445
  monad: 'eip155:143',
446
+ scroll: 'eip155:534352',
447
+ skale: 'eip155:1187947933',
448
+ 'skale-testnet': 'eip155:324705682',
446
449
  // SVM chains
447
450
  solana: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
448
451
  fogo: 'svm:fogo',
@@ -567,6 +570,8 @@ export interface X402SuiPayload {
567
570
  to: string;
568
571
  /** Amount in smallest unit (string to avoid precision issues) */
569
572
  amount: string;
573
+ /** Coin object ID used for the transfer (REQUIRED by facilitator) */
574
+ coinObjectId: string;
570
575
  }
571
576
 
572
577
  /**