uvd-x402-sdk 2.5.0 → 2.10.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 (75) hide show
  1. package/README.md +380 -3
  2. package/dist/adapters/index.d.mts +1 -1
  3. package/dist/adapters/index.d.ts +1 -1
  4. package/dist/adapters/index.js +82 -1
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +82 -1
  7. package/dist/adapters/index.mjs.map +1 -1
  8. package/dist/backend/index.d.mts +1036 -0
  9. package/dist/backend/index.d.ts +1036 -0
  10. package/dist/backend/index.js +1722 -0
  11. package/dist/backend/index.js.map +1 -0
  12. package/dist/backend/index.mjs +1704 -0
  13. package/dist/backend/index.mjs.map +1 -0
  14. package/dist/{index-BrFeSWKm.d.mts → index-C60c_e5z.d.mts} +13 -4
  15. package/dist/{index-DR2vXt-c.d.mts → index-D-dO_FoP.d.mts} +70 -4
  16. package/dist/{index-DR2vXt-c.d.ts → index-D-dO_FoP.d.ts} +70 -4
  17. package/dist/{index-BYX9BU79.d.ts → index-VIOUicmO.d.ts} +13 -4
  18. package/dist/index.d.mts +3 -3
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +115 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +110 -2
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/providers/algorand/index.d.mts +86 -0
  25. package/dist/providers/algorand/index.d.ts +86 -0
  26. package/dist/providers/algorand/index.js +903 -0
  27. package/dist/providers/algorand/index.js.map +1 -0
  28. package/dist/providers/algorand/index.mjs +898 -0
  29. package/dist/providers/algorand/index.mjs.map +1 -0
  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 +78 -1
  33. package/dist/providers/evm/index.js.map +1 -1
  34. package/dist/providers/evm/index.mjs +78 -1
  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 +78 -1
  39. package/dist/providers/near/index.js.map +1 -1
  40. package/dist/providers/near/index.mjs +78 -1
  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 +78 -1
  45. package/dist/providers/solana/index.js.map +1 -1
  46. package/dist/providers/solana/index.mjs +78 -1
  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 +78 -1
  51. package/dist/providers/stellar/index.js.map +1 -1
  52. package/dist/providers/stellar/index.mjs +78 -1
  53. package/dist/providers/stellar/index.mjs.map +1 -1
  54. package/dist/react/index.d.mts +3 -3
  55. package/dist/react/index.d.ts +3 -3
  56. package/dist/react/index.js +82 -1
  57. package/dist/react/index.js.map +1 -1
  58. package/dist/react/index.mjs +82 -1
  59. package/dist/react/index.mjs.map +1 -1
  60. package/dist/utils/index.d.mts +57 -5
  61. package/dist/utils/index.d.ts +57 -5
  62. package/dist/utils/index.js +96 -1
  63. package/dist/utils/index.js.map +1 -1
  64. package/dist/utils/index.mjs +93 -2
  65. package/dist/utils/index.mjs.map +1 -1
  66. package/package.json +24 -3
  67. package/src/adapters/wagmi.ts +4 -0
  68. package/src/backend/index.ts +2131 -0
  69. package/src/chains/index.ts +94 -2
  70. package/src/client/X402Client.ts +4 -0
  71. package/src/index.ts +26 -1
  72. package/src/providers/algorand/index.ts +356 -0
  73. package/src/types/index.ts +78 -3
  74. package/src/utils/index.ts +4 -0
  75. package/src/utils/validation.ts +76 -3
package/dist/index.mjs CHANGED
@@ -21,7 +21,10 @@ var CAIP2_IDENTIFIERS = {
21
21
  // Stellar
22
22
  stellar: "stellar:pubnet",
23
23
  // NEAR
24
- near: "near:mainnet"
24
+ near: "near:mainnet",
25
+ // Algorand
26
+ algorand: "algorand:mainnet",
27
+ "algorand-testnet": "algorand:testnet"
25
28
  };
26
29
  var CAIP2_TO_CHAIN = Object.fromEntries(
27
30
  Object.entries(CAIP2_IDENTIFIERS).map(([k, v]) => [v, k])
@@ -570,6 +573,80 @@ var SUPPORTED_CHAINS = {
570
573
  enabled: true
571
574
  // NEP-366 meta-transactions supported
572
575
  }
576
+ },
577
+ // ============================================================================
578
+ // ALGORAND (2 networks) - Uses ASA transfers with atomic transaction groups
579
+ // ============================================================================
580
+ algorand: {
581
+ chainId: 0,
582
+ // Non-EVM (Algorand uses genesis hash for network identification)
583
+ chainIdHex: "0x0",
584
+ name: "algorand",
585
+ displayName: "Algorand",
586
+ networkType: "algorand",
587
+ rpcUrl: "https://mainnet-api.algonode.cloud",
588
+ explorerUrl: "https://allo.info",
589
+ nativeCurrency: {
590
+ name: "Algo",
591
+ symbol: "ALGO",
592
+ decimals: 6
593
+ // Algorand uses 6 decimals (microAlgos)
594
+ },
595
+ usdc: {
596
+ address: "31566704",
597
+ // USDC ASA ID on Algorand mainnet
598
+ decimals: 6,
599
+ name: "USDC",
600
+ version: "1"
601
+ },
602
+ tokens: {
603
+ usdc: {
604
+ address: "31566704",
605
+ // USDC ASA ID on Algorand mainnet
606
+ decimals: 6,
607
+ name: "USDC",
608
+ version: "1"
609
+ }
610
+ },
611
+ x402: {
612
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
613
+ enabled: true
614
+ }
615
+ },
616
+ "algorand-testnet": {
617
+ chainId: 0,
618
+ // Non-EVM
619
+ chainIdHex: "0x0",
620
+ name: "algorand-testnet",
621
+ displayName: "Algorand Testnet",
622
+ networkType: "algorand",
623
+ rpcUrl: "https://testnet-api.algonode.cloud",
624
+ explorerUrl: "https://testnet.allo.info",
625
+ nativeCurrency: {
626
+ name: "Algo",
627
+ symbol: "ALGO",
628
+ decimals: 6
629
+ },
630
+ usdc: {
631
+ address: "10458941",
632
+ // USDC ASA ID on Algorand testnet
633
+ decimals: 6,
634
+ name: "USDC",
635
+ version: "1"
636
+ },
637
+ tokens: {
638
+ usdc: {
639
+ address: "10458941",
640
+ // USDC ASA ID on Algorand testnet
641
+ decimals: 6,
642
+ name: "USDC",
643
+ version: "1"
644
+ }
645
+ },
646
+ x402: {
647
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
648
+ enabled: true
649
+ }
573
650
  }
574
651
  };
575
652
  var DEFAULT_CHAIN = "base";
@@ -622,6 +699,8 @@ function getExplorerTxUrl(chainName, txHash) {
622
699
  return `${chain.explorerUrl}/tx/${txHash}`;
623
700
  case "near":
624
701
  return `${chain.explorerUrl}/txns/${txHash}`;
702
+ case "algorand":
703
+ return `${chain.explorerUrl}/tx/${txHash}`;
625
704
  default:
626
705
  return null;
627
706
  }
@@ -639,10 +718,21 @@ function getExplorerAddressUrl(chainName, address) {
639
718
  return `${chain.explorerUrl}/account/${address}`;
640
719
  case "near":
641
720
  return `${chain.explorerUrl}/address/${address}`;
721
+ case "algorand":
722
+ return `${chain.explorerUrl}/account/${address}`;
642
723
  default:
643
724
  return null;
644
725
  }
645
726
  }
727
+ function getAlgorandChains() {
728
+ return Object.values(SUPPORTED_CHAINS).filter(
729
+ (chain) => chain.networkType === "algorand" && chain.x402.enabled
730
+ );
731
+ }
732
+ function isAlgorandChain(chainName) {
733
+ const chain = getChainByName(chainName);
734
+ return chain?.networkType === "algorand";
735
+ }
646
736
  function getTokenConfig(chainName, tokenType = "usdc") {
647
737
  const chain = getChainByName(chainName);
648
738
  if (!chain) return void 0;
@@ -901,6 +991,20 @@ function validateAmount(amount) {
901
991
  );
902
992
  }
903
993
  }
994
+ function createPaymentHeaders(paymentHeader) {
995
+ return {
996
+ "X-PAYMENT": paymentHeader,
997
+ "PAYMENT-SIGNATURE": paymentHeader
998
+ };
999
+ }
1000
+ function getPaymentHeader(paymentHeader, headerName = "X-PAYMENT") {
1001
+ return { [headerName]: paymentHeader };
1002
+ }
1003
+ var DEFAULT_PAYMENT_HEADER = "X-PAYMENT";
1004
+ var PAYMENT_HEADER_NAMES = [
1005
+ "X-PAYMENT",
1006
+ "PAYMENT-SIGNATURE"
1007
+ ];
904
1008
 
905
1009
  // src/client/X402Client.ts
906
1010
  var X402Client = class {
@@ -1325,6 +1429,10 @@ var X402Client = class {
1325
1429
  const result = {
1326
1430
  success: true,
1327
1431
  paymentHeader,
1432
+ headers: {
1433
+ "X-PAYMENT": paymentHeader,
1434
+ "PAYMENT-SIGNATURE": paymentHeader
1435
+ },
1328
1436
  network: chain.name,
1329
1437
  payer: from
1330
1438
  };
@@ -1404,6 +1512,6 @@ var X402Client = class {
1404
1512
  }
1405
1513
  };
1406
1514
 
1407
- export { CAIP2_IDENTIFIERS, CAIP2_TO_CHAIN, DEFAULT_CHAIN, DEFAULT_CONFIG, DEFAULT_FACILITATOR_URL, SUPPORTED_CHAINS, X402Client, X402Error, caip2ToChain, chainToCAIP2, convertX402Header, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getChainById, getChainByName, getChainsByNetworkType, getChainsByToken, getEVMChainIds, getEnabledChains, getExplorerAddressUrl, getExplorerTxUrl, getNetworkType, getSVMChains, getSupportedTokens, getTokenConfig, isCAIP2Format, isChainSupported, isSVMChain, isTokenSupported, parseNetworkIdentifier, validateAmount, validateRecipient };
1515
+ export { CAIP2_IDENTIFIERS, CAIP2_TO_CHAIN, DEFAULT_CHAIN, DEFAULT_CONFIG, DEFAULT_FACILITATOR_URL, DEFAULT_PAYMENT_HEADER, PAYMENT_HEADER_NAMES, SUPPORTED_CHAINS, X402Client, X402Error, caip2ToChain, chainToCAIP2, convertX402Header, createPaymentHeaders, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getAlgorandChains, getChainById, getChainByName, getChainsByNetworkType, getChainsByToken, getEVMChainIds, getEnabledChains, getExplorerAddressUrl, getExplorerTxUrl, getNetworkType, getPaymentHeader, getSVMChains, getSupportedTokens, getTokenConfig, isAlgorandChain, isCAIP2Format, isChainSupported, isSVMChain, isTokenSupported, parseNetworkIdentifier, validateAmount, validateRecipient };
1408
1516
  //# sourceMappingURL=index.mjs.map
1409
1517
  //# sourceMappingURL=index.mjs.map