uvd-x402-sdk 2.6.0 → 2.10.1

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 (71) 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 +94 -1
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +94 -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 +1738 -0
  11. package/dist/backend/index.js.map +1 -0
  12. package/dist/backend/index.mjs +1720 -0
  13. package/dist/backend/index.mjs.map +1 -0
  14. package/dist/{index-fwbSkart.d.ts → index-C60c_e5z.d.mts} +13 -4
  15. package/dist/{index-BR1o8JZQ.d.mts → index-D-dO_FoP.d.mts} +38 -4
  16. package/dist/{index-BR1o8JZQ.d.ts → index-D-dO_FoP.d.ts} +38 -4
  17. package/dist/{index-DKbWiaJ9.d.mts → index-VIOUicmO.d.ts} +13 -4
  18. package/dist/index.d.mts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +109 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +108 -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 +919 -0
  27. package/dist/providers/algorand/index.js.map +1 -0
  28. package/dist/providers/algorand/index.mjs +914 -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 +94 -1
  33. package/dist/providers/evm/index.js.map +1 -1
  34. package/dist/providers/evm/index.mjs +94 -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 +94 -1
  39. package/dist/providers/near/index.js.map +1 -1
  40. package/dist/providers/near/index.mjs +94 -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 +94 -1
  45. package/dist/providers/solana/index.js.map +1 -1
  46. package/dist/providers/solana/index.mjs +94 -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 +94 -1
  51. package/dist/providers/stellar/index.js.map +1 -1
  52. package/dist/providers/stellar/index.mjs +94 -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 +94 -1
  57. package/dist/react/index.js.map +1 -1
  58. package/dist/react/index.mjs +94 -1
  59. package/dist/react/index.mjs.map +1 -1
  60. package/dist/utils/index.d.mts +1 -1
  61. package/dist/utils/index.d.ts +1 -1
  62. package/dist/utils/index.js +94 -1
  63. package/dist/utils/index.js.map +1 -1
  64. package/dist/utils/index.mjs +94 -1
  65. package/dist/utils/index.mjs.map +1 -1
  66. package/package.json +24 -3
  67. package/src/backend/index.ts +2131 -0
  68. package/src/chains/index.ts +108 -2
  69. package/src/index.ts +19 -1
  70. package/src/providers/algorand/index.ts +356 -0
  71. package/src/types/index.ts +44 -3
@@ -1,4 +1,4 @@
1
- import { v as X402ClientConfig, P as PaymentInfo, f as PaymentResult, W as WalletState, C as ChainConfig, x as X402Event, z as X402EventHandler, a as NetworkType, T as TokenType, b as TokenConfig } from './index-BR1o8JZQ.mjs';
1
+ import { w as X402ClientConfig, P as PaymentInfo, f as PaymentResult, W as WalletState, C as ChainConfig, y as X402Event, B as X402EventHandler, a as NetworkType, T as TokenType, b as TokenConfig } from './index-D-dO_FoP.js';
2
2
 
3
3
  /**
4
4
  * uvd-x402-sdk - Main Client
@@ -127,11 +127,12 @@ declare global {
127
127
  /**
128
128
  * uvd-x402-sdk - Chain Registry
129
129
  *
130
- * Complete configuration for all 15 supported blockchain networks.
131
- * EVM chains (11): Use ERC-3009 TransferWithAuthorization
130
+ * Complete configuration for all 16 supported blockchain networks.
131
+ * EVM chains (10): Use ERC-3009 TransferWithAuthorization
132
132
  * SVM chains (2): Solana and Fogo - Use SPL tokens with partially-signed transactions
133
133
  * Stellar (1): Uses Soroban authorization entries
134
134
  * NEAR (1): Uses NEP-366 meta-transactions
135
+ * Algorand (2): Uses ASA transfers with atomic transaction groups
135
136
  */
136
137
 
137
138
  /**
@@ -195,6 +196,14 @@ declare function getExplorerTxUrl(chainName: string, txHash: string): string | n
195
196
  * Format address URL for block explorer
196
197
  */
197
198
  declare function getExplorerAddressUrl(chainName: string, address: string): string | null;
199
+ /**
200
+ * Get list of Algorand chains
201
+ */
202
+ declare function getAlgorandChains(): ChainConfig[];
203
+ /**
204
+ * Check if a chain is Algorand-based
205
+ */
206
+ declare function isAlgorandChain(chainName: string): boolean;
198
207
  /**
199
208
  * Get token configuration for a specific chain and token type
200
209
  * Falls back to USDC config if token not found (for backward compatibility)
@@ -227,4 +236,4 @@ declare function isTokenSupported(chainName: string, tokenType: TokenType): bool
227
236
  */
228
237
  declare function getChainsByToken(tokenType: TokenType): ChainConfig[];
229
238
 
230
- export { DEFAULT_CHAIN as D, SUPPORTED_CHAINS as S, X402Client as X, DEFAULT_FACILITATOR_URL as a, getChainByName as b, getEnabledChains as c, getChainsByNetworkType as d, getEVMChainIds as e, getSVMChains as f, getChainById as g, isSVMChain as h, isChainSupported as i, getNetworkType as j, getExplorerTxUrl as k, getExplorerAddressUrl as l, getTokenConfig as m, getSupportedTokens as n, isTokenSupported as o, getChainsByToken as p };
239
+ export { DEFAULT_CHAIN as D, SUPPORTED_CHAINS as S, X402Client as X, DEFAULT_FACILITATOR_URL as a, getChainByName as b, getEnabledChains as c, getChainsByNetworkType as d, getEVMChainIds as e, getSVMChains as f, getChainById as g, isSVMChain as h, isChainSupported as i, getNetworkType as j, getExplorerTxUrl as k, getExplorerAddressUrl as l, getTokenConfig as m, getSupportedTokens as n, isTokenSupported as o, getChainsByToken as p, getAlgorandChains as q, isAlgorandChain as r };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- export { D as DEFAULT_CHAIN, a as DEFAULT_FACILITATOR_URL, S as SUPPORTED_CHAINS, X as X402Client, g as getChainById, b as getChainByName, d as getChainsByNetworkType, p as getChainsByToken, e as getEVMChainIds, c as getEnabledChains, l as getExplorerAddressUrl, k as getExplorerTxUrl, j as getNetworkType, f as getSVMChains, n as getSupportedTokens, m as getTokenConfig, i as isChainSupported, h as isSVMChain, o as isTokenSupported } from './index-DKbWiaJ9.mjs';
1
+ export { D as DEFAULT_CHAIN, a as DEFAULT_FACILITATOR_URL, S as SUPPORTED_CHAINS, X as X402Client, q as getAlgorandChains, g as getChainById, b as getChainByName, d as getChainsByNetworkType, p as getChainsByToken, e as getEVMChainIds, c as getEnabledChains, l as getExplorerAddressUrl, k as getExplorerTxUrl, j as getNetworkType, f as getSVMChains, n as getSupportedTokens, m as getTokenConfig, r as isAlgorandChain, i as isChainSupported, h as isSVMChain, o as isTokenSupported } from './index-C60c_e5z.mjs';
2
2
  export { DEFAULT_PAYMENT_HEADER, PAYMENT_HEADER_NAMES, caip2ToChain, chainToCAIP2, convertX402Header, createPaymentHeaders, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getPaymentHeader, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient } from './utils/index.mjs';
3
- export { F as CAIP2_IDENTIFIERS, G as CAIP2_TO_CHAIN, C as ChainConfig, D as DEFAULT_CONFIG, E as EIP712Domain, d as EIP712Types, i as EVMPaymentPayload, M as MultiPaymentConfig, k as NEARPaymentPayload, N as NativeCurrency, w as NetworkBalance, a as NetworkType, g as PaymentHeaders, P as PaymentInfo, h as PaymentPayload, e as PaymentRequest, f as PaymentResult, S as SolanaPaymentPayload, j as StellarPaymentPayload, b as TokenConfig, T as TokenType, U as USDCConfig, c as WalletAdapter, W as WalletState, v as X402ClientConfig, r as X402EVMPayload, B as X402Error, A as X402ErrorCode, x as X402Event, y as X402EventData, z as X402EventHandler, m as X402Header, X as X402HeaderName, n as X402HeaderV1, o as X402HeaderV2, u as X402NEARPayload, q as X402PayloadData, p as X402PaymentOption, s as X402SolanaPayload, t as X402StellarPayload, l as X402Version } from './index-BR1o8JZQ.mjs';
3
+ export { A as AlgorandPaymentPayload, H as CAIP2_IDENTIFIERS, I as CAIP2_TO_CHAIN, C as ChainConfig, G as DEFAULT_CONFIG, E as EIP712Domain, d as EIP712Types, i as EVMPaymentPayload, M as MultiPaymentConfig, k as NEARPaymentPayload, N as NativeCurrency, x as NetworkBalance, a as NetworkType, g as PaymentHeaders, P as PaymentInfo, h as PaymentPayload, e as PaymentRequest, f as PaymentResult, S as SolanaPaymentPayload, j as StellarPaymentPayload, b as TokenConfig, T as TokenType, U as USDCConfig, c as WalletAdapter, W as WalletState, v as X402AlgorandPayload, w as X402ClientConfig, r as X402EVMPayload, F as X402Error, D as X402ErrorCode, y as X402Event, z as X402EventData, B as X402EventHandler, m as X402Header, X as X402HeaderName, n as X402HeaderV1, o as X402HeaderV2, u as X402NEARPayload, q as X402PayloadData, p as X402PaymentOption, s as X402SolanaPayload, t as X402StellarPayload, l as X402Version } from './index-D-dO_FoP.mjs';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { D as DEFAULT_CHAIN, a as DEFAULT_FACILITATOR_URL, S as SUPPORTED_CHAINS, X as X402Client, g as getChainById, b as getChainByName, d as getChainsByNetworkType, p as getChainsByToken, e as getEVMChainIds, c as getEnabledChains, l as getExplorerAddressUrl, k as getExplorerTxUrl, j as getNetworkType, f as getSVMChains, n as getSupportedTokens, m as getTokenConfig, i as isChainSupported, h as isSVMChain, o as isTokenSupported } from './index-fwbSkart.js';
1
+ export { D as DEFAULT_CHAIN, a as DEFAULT_FACILITATOR_URL, S as SUPPORTED_CHAINS, X as X402Client, q as getAlgorandChains, g as getChainById, b as getChainByName, d as getChainsByNetworkType, p as getChainsByToken, e as getEVMChainIds, c as getEnabledChains, l as getExplorerAddressUrl, k as getExplorerTxUrl, j as getNetworkType, f as getSVMChains, n as getSupportedTokens, m as getTokenConfig, r as isAlgorandChain, i as isChainSupported, h as isSVMChain, o as isTokenSupported } from './index-VIOUicmO.js';
2
2
  export { DEFAULT_PAYMENT_HEADER, PAYMENT_HEADER_NAMES, caip2ToChain, chainToCAIP2, convertX402Header, createPaymentHeaders, createX402Header, createX402V1Header, createX402V2Header, decodeX402Header, detectX402Version, encodeX402Header, generatePaymentOptions, getPaymentHeader, isCAIP2Format, parseNetworkIdentifier, validateAmount, validateRecipient } from './utils/index.js';
3
- export { F as CAIP2_IDENTIFIERS, G as CAIP2_TO_CHAIN, C as ChainConfig, D as DEFAULT_CONFIG, E as EIP712Domain, d as EIP712Types, i as EVMPaymentPayload, M as MultiPaymentConfig, k as NEARPaymentPayload, N as NativeCurrency, w as NetworkBalance, a as NetworkType, g as PaymentHeaders, P as PaymentInfo, h as PaymentPayload, e as PaymentRequest, f as PaymentResult, S as SolanaPaymentPayload, j as StellarPaymentPayload, b as TokenConfig, T as TokenType, U as USDCConfig, c as WalletAdapter, W as WalletState, v as X402ClientConfig, r as X402EVMPayload, B as X402Error, A as X402ErrorCode, x as X402Event, y as X402EventData, z as X402EventHandler, m as X402Header, X as X402HeaderName, n as X402HeaderV1, o as X402HeaderV2, u as X402NEARPayload, q as X402PayloadData, p as X402PaymentOption, s as X402SolanaPayload, t as X402StellarPayload, l as X402Version } from './index-BR1o8JZQ.js';
3
+ export { A as AlgorandPaymentPayload, H as CAIP2_IDENTIFIERS, I as CAIP2_TO_CHAIN, C as ChainConfig, G as DEFAULT_CONFIG, E as EIP712Domain, d as EIP712Types, i as EVMPaymentPayload, M as MultiPaymentConfig, k as NEARPaymentPayload, N as NativeCurrency, x as NetworkBalance, a as NetworkType, g as PaymentHeaders, P as PaymentInfo, h as PaymentPayload, e as PaymentRequest, f as PaymentResult, S as SolanaPaymentPayload, j as StellarPaymentPayload, b as TokenConfig, T as TokenType, U as USDCConfig, c as WalletAdapter, W as WalletState, v as X402AlgorandPayload, w as X402ClientConfig, r as X402EVMPayload, F as X402Error, D as X402ErrorCode, y as X402Event, z as X402EventData, B as X402EventHandler, m as X402Header, X as X402HeaderName, n as X402HeaderV1, o as X402HeaderV2, u as X402NEARPayload, q as X402PayloadData, p as X402PaymentOption, s as X402SolanaPayload, t as X402StellarPayload, l as X402Version } from './index-D-dO_FoP.js';
package/dist/index.js CHANGED
@@ -23,7 +23,10 @@ var CAIP2_IDENTIFIERS = {
23
23
  // Stellar
24
24
  stellar: "stellar:pubnet",
25
25
  // NEAR
26
- near: "near:mainnet"
26
+ near: "near:mainnet",
27
+ // Algorand
28
+ algorand: "algorand:mainnet",
29
+ "algorand-testnet": "algorand:testnet"
27
30
  };
28
31
  var CAIP2_TO_CHAIN = Object.fromEntries(
29
32
  Object.entries(CAIP2_IDENTIFIERS).map(([k, v]) => [v, k])
@@ -480,6 +483,22 @@ var SUPPORTED_CHAINS = {
480
483
  name: "USD Coin",
481
484
  version: "1"
482
485
  },
486
+ tokens: {
487
+ usdc: {
488
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
489
+ // USDC SPL token mint
490
+ decimals: 6,
491
+ name: "USD Coin",
492
+ version: "1"
493
+ },
494
+ ausd: {
495
+ address: "AUSD1jCcCyPLybk1YnvPWsHQSrZ46dxwoMniN4N2UEB9",
496
+ // AUSD Token2022 mint
497
+ decimals: 6,
498
+ name: "Agora Dollar",
499
+ version: "1"
500
+ }
501
+ },
483
502
  x402: {
484
503
  facilitatorUrl: DEFAULT_FACILITATOR_URL,
485
504
  enabled: true
@@ -572,6 +591,80 @@ var SUPPORTED_CHAINS = {
572
591
  enabled: true
573
592
  // NEP-366 meta-transactions supported
574
593
  }
594
+ },
595
+ // ============================================================================
596
+ // ALGORAND (2 networks) - Uses ASA transfers with atomic transaction groups
597
+ // ============================================================================
598
+ algorand: {
599
+ chainId: 0,
600
+ // Non-EVM (Algorand uses genesis hash for network identification)
601
+ chainIdHex: "0x0",
602
+ name: "algorand",
603
+ displayName: "Algorand",
604
+ networkType: "algorand",
605
+ rpcUrl: "https://mainnet-api.algonode.cloud",
606
+ explorerUrl: "https://allo.info",
607
+ nativeCurrency: {
608
+ name: "Algo",
609
+ symbol: "ALGO",
610
+ decimals: 6
611
+ // Algorand uses 6 decimals (microAlgos)
612
+ },
613
+ usdc: {
614
+ address: "31566704",
615
+ // USDC ASA ID on Algorand mainnet
616
+ decimals: 6,
617
+ name: "USDC",
618
+ version: "1"
619
+ },
620
+ tokens: {
621
+ usdc: {
622
+ address: "31566704",
623
+ // USDC ASA ID on Algorand mainnet
624
+ decimals: 6,
625
+ name: "USDC",
626
+ version: "1"
627
+ }
628
+ },
629
+ x402: {
630
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
631
+ enabled: true
632
+ }
633
+ },
634
+ "algorand-testnet": {
635
+ chainId: 0,
636
+ // Non-EVM
637
+ chainIdHex: "0x0",
638
+ name: "algorand-testnet",
639
+ displayName: "Algorand Testnet",
640
+ networkType: "algorand",
641
+ rpcUrl: "https://testnet-api.algonode.cloud",
642
+ explorerUrl: "https://testnet.allo.info",
643
+ nativeCurrency: {
644
+ name: "Algo",
645
+ symbol: "ALGO",
646
+ decimals: 6
647
+ },
648
+ usdc: {
649
+ address: "10458941",
650
+ // USDC ASA ID on Algorand testnet
651
+ decimals: 6,
652
+ name: "USDC",
653
+ version: "1"
654
+ },
655
+ tokens: {
656
+ usdc: {
657
+ address: "10458941",
658
+ // USDC ASA ID on Algorand testnet
659
+ decimals: 6,
660
+ name: "USDC",
661
+ version: "1"
662
+ }
663
+ },
664
+ x402: {
665
+ facilitatorUrl: DEFAULT_FACILITATOR_URL,
666
+ enabled: true
667
+ }
575
668
  }
576
669
  };
577
670
  var DEFAULT_CHAIN = "base";
@@ -624,6 +717,8 @@ function getExplorerTxUrl(chainName, txHash) {
624
717
  return `${chain.explorerUrl}/tx/${txHash}`;
625
718
  case "near":
626
719
  return `${chain.explorerUrl}/txns/${txHash}`;
720
+ case "algorand":
721
+ return `${chain.explorerUrl}/tx/${txHash}`;
627
722
  default:
628
723
  return null;
629
724
  }
@@ -641,10 +736,21 @@ function getExplorerAddressUrl(chainName, address) {
641
736
  return `${chain.explorerUrl}/account/${address}`;
642
737
  case "near":
643
738
  return `${chain.explorerUrl}/address/${address}`;
739
+ case "algorand":
740
+ return `${chain.explorerUrl}/account/${address}`;
644
741
  default:
645
742
  return null;
646
743
  }
647
744
  }
745
+ function getAlgorandChains() {
746
+ return Object.values(SUPPORTED_CHAINS).filter(
747
+ (chain) => chain.networkType === "algorand" && chain.x402.enabled
748
+ );
749
+ }
750
+ function isAlgorandChain(chainName) {
751
+ const chain = getChainByName(chainName);
752
+ return chain?.networkType === "algorand";
753
+ }
648
754
  function getTokenConfig(chainName, tokenType = "usdc") {
649
755
  const chain = getChainByName(chainName);
650
756
  if (!chain) return void 0;
@@ -1445,6 +1551,7 @@ exports.decodeX402Header = decodeX402Header;
1445
1551
  exports.detectX402Version = detectX402Version;
1446
1552
  exports.encodeX402Header = encodeX402Header;
1447
1553
  exports.generatePaymentOptions = generatePaymentOptions;
1554
+ exports.getAlgorandChains = getAlgorandChains;
1448
1555
  exports.getChainById = getChainById;
1449
1556
  exports.getChainByName = getChainByName;
1450
1557
  exports.getChainsByNetworkType = getChainsByNetworkType;
@@ -1458,6 +1565,7 @@ exports.getPaymentHeader = getPaymentHeader;
1458
1565
  exports.getSVMChains = getSVMChains;
1459
1566
  exports.getSupportedTokens = getSupportedTokens;
1460
1567
  exports.getTokenConfig = getTokenConfig;
1568
+ exports.isAlgorandChain = isAlgorandChain;
1461
1569
  exports.isCAIP2Format = isCAIP2Format;
1462
1570
  exports.isChainSupported = isChainSupported;
1463
1571
  exports.isSVMChain = isSVMChain;