@0xsquid/react-hooks 9.0.0-beta-bump-wagmi-viem.2 → 9.0.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 (142) hide show
  1. package/dist/core/canton/cantonConnector.d.ts +32 -0
  2. package/dist/core/canton/cip103Client.d.ts +20 -0
  3. package/dist/core/canton/errors.d.ts +4 -0
  4. package/dist/core/canton/injectedCantonProvider.d.ts +31 -0
  5. package/dist/core/canton/loopCantonConnector.d.ts +38 -0
  6. package/dist/core/client/index.d.ts +1 -0
  7. package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +3 -0
  8. package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +3 -1
  9. package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +15 -0
  10. package/dist/core/constants.d.ts +10 -4
  11. package/dist/core/externalLinks.d.ts +1 -1
  12. package/dist/core/fallbackWallets.d.ts +16 -0
  13. package/dist/core/index.d.ts +1 -1
  14. package/dist/core/providers/CantonProvider.d.ts +19 -0
  15. package/dist/core/queries/queries-keys.d.ts +9 -4
  16. package/dist/core/queries/queryClient.d.ts +2 -0
  17. package/dist/core/types/bitcoin.d.ts +3 -0
  18. package/dist/core/types/canton.d.ts +92 -0
  19. package/dist/core/types/config.d.ts +9 -3
  20. package/dist/core/types/cosmos.d.ts +5 -0
  21. package/dist/core/types/error.d.ts +0 -6
  22. package/dist/core/types/event.d.ts +4 -0
  23. package/dist/core/types/history.d.ts +14 -6
  24. package/dist/core/types/index.d.ts +4 -3
  25. package/dist/core/types/solana.d.ts +8 -0
  26. package/dist/core/types/status.d.ts +116 -0
  27. package/dist/core/types/stellar.d.ts +52 -0
  28. package/dist/core/types/tokens.d.ts +4 -0
  29. package/dist/core/types/transaction.d.ts +5 -31
  30. package/dist/core/types/wallet.d.ts +16 -8
  31. package/dist/core/wallets.d.ts +6 -1
  32. package/dist/hooks/canton/useCanton.d.ts +2 -0
  33. package/dist/hooks/canton/useCantonWallets.d.ts +10 -0
  34. package/dist/hooks/chains/useSquidChains.d.ts +1 -0
  35. package/dist/hooks/index.d.ts +4 -2
  36. package/dist/hooks/stellar/useStellarTrustLine.d.ts +13 -0
  37. package/dist/hooks/store/historyStoreMigration.d.ts +9 -0
  38. package/dist/hooks/store/useDepositAddressStore.d.ts +18 -5
  39. package/dist/hooks/store/useHistoryStore.d.ts +2 -4
  40. package/dist/hooks/swap/useDepositAddress.d.ts +6 -7
  41. package/dist/hooks/swap/useUrlSwapParams.d.ts +10 -0
  42. package/dist/hooks/tokens/useBalance.d.ts +1 -0
  43. package/dist/hooks/tokens/useNativeBalance.d.ts +1 -0
  44. package/dist/hooks/tokens/useSourceChainGasToken.d.ts +13 -0
  45. package/dist/hooks/tokens/useSquidTokens.d.ts +1 -0
  46. package/dist/hooks/transaction/liveSwapStatus.d.ts +12 -0
  47. package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +11 -2
  48. package/dist/hooks/transaction/swapStatusEffects.d.ts +9 -0
  49. package/dist/hooks/transaction/useAllTransactionsStatus.d.ts +1 -28
  50. package/dist/hooks/transaction/useArcFeeCheck.d.ts +5 -0
  51. package/dist/hooks/transaction/useDepositTransactionStatus.d.ts +18 -0
  52. package/dist/hooks/transaction/useEstimate.d.ts +7 -12
  53. package/dist/hooks/transaction/useSwapStatusQuery.d.ts +42 -0
  54. package/dist/hooks/transaction/useSwapTransactionStatus.d.ts +11 -7
  55. package/dist/hooks/transaction/useTempoFeeCheck.d.ts +11 -0
  56. package/dist/hooks/user/useHistory.d.ts +2 -2
  57. package/dist/hooks/wallet/useMultiChainWallet.d.ts +55 -29
  58. package/dist/hooks/wallet/useSigner.d.ts +1 -0
  59. package/dist/hooks/wallet/useWallet.d.ts +59 -29
  60. package/dist/hooks/xrpl/useXrplWallets.d.ts +2 -2
  61. package/dist/{index-DvtX3lMK.js → index-BbLFIIzM.js} +5733 -1890
  62. package/dist/index-BbLFIIzM.js.map +1 -0
  63. package/dist/{index-Am7B-ANI.js → index-DnLb20V8.js} +5739 -1891
  64. package/dist/index-DnLb20V8.js.map +1 -0
  65. package/dist/{index.es-D8CJEHCT.js → index.es-CmB_yJCF.js} +8 -7
  66. package/dist/index.es-CmB_yJCF.js.map +1 -0
  67. package/dist/{index.es-tQM55FRF.js → index.es-DN5whlOO.js} +8 -7
  68. package/dist/index.es-DN5whlOO.js.map +1 -0
  69. package/dist/index.esm.js +7 -6
  70. package/dist/index.esm.js.map +1 -1
  71. package/dist/index.js +37 -39
  72. package/dist/index.js.map +1 -1
  73. package/dist/provider/index.d.ts +0 -1
  74. package/dist/{secretService-owSXKwWk.js → secretService-AQfnpZHo.js} +8 -7
  75. package/dist/{secretService-owSXKwWk.js.map → secretService-AQfnpZHo.js.map} +1 -1
  76. package/dist/{secretService-j1xXWg00.js → secretService-CHz5vw6s.js} +8 -7
  77. package/dist/{secretService-j1xXWg00.js.map → secretService-CHz5vw6s.js.map} +1 -1
  78. package/dist/server.d.ts +1 -0
  79. package/dist/server.esm.js +120 -0
  80. package/dist/server.esm.js.map +1 -0
  81. package/dist/server.js +132 -0
  82. package/dist/server.js.map +1 -0
  83. package/dist/services/external/onrampAdapter.d.ts +3 -4
  84. package/dist/services/external/rpcService.d.ts +16 -1
  85. package/dist/services/external/stellarApiClient.d.ts +4 -0
  86. package/dist/services/external/stellarRpcClient.d.ts +2 -2
  87. package/dist/services/external/xrplRpcClient.d.ts +2 -1
  88. package/dist/services/index.d.ts +5 -0
  89. package/dist/services/internal/apiService.d.ts +0 -2
  90. package/dist/services/internal/arcService.d.ts +9 -0
  91. package/dist/services/internal/assetsService.d.ts +14 -4
  92. package/dist/services/internal/cantonDamlValue.d.ts +71 -0
  93. package/dist/services/internal/cantonService.d.ts +82 -0
  94. package/dist/services/internal/cantonTransferService.d.ts +93 -0
  95. package/dist/services/internal/configService.d.ts +2 -62
  96. package/dist/services/internal/errorService.d.ts +6 -4
  97. package/dist/services/internal/estimateService.d.ts +30 -33
  98. package/dist/services/internal/eventService.d.ts +4 -0
  99. package/dist/services/internal/evmService.d.ts +4 -2
  100. package/dist/services/internal/solanaTokenProgramService.d.ts +9 -0
  101. package/dist/services/internal/status/statusApi.d.ts +41 -0
  102. package/dist/services/internal/status/statusExplorerLinks.d.ts +52 -0
  103. package/dist/services/internal/status/statusFollow.d.ts +29 -0
  104. package/dist/services/internal/status/statusGuards.d.ts +19 -0
  105. package/dist/services/internal/status/statusHistory.d.ts +35 -0
  106. package/dist/services/internal/status/statusKeys.d.ts +8 -0
  107. package/dist/services/internal/status/statusMapping.d.ts +73 -0
  108. package/dist/services/internal/status/statusPolicy.d.ts +45 -0
  109. package/dist/services/internal/status/statusSteps.d.ts +40 -0
  110. package/dist/services/internal/status/statusWsClient.d.ts +157 -0
  111. package/dist/services/internal/stellarService.d.ts +9 -0
  112. package/dist/services/internal/tempoService.d.ts +42 -0
  113. package/dist/services/internal/transactionService.d.ts +11 -24
  114. package/dist/services/internal/transactionStatusService.d.ts +1 -54
  115. package/dist/services/internal/typeGuards.d.ts +10 -0
  116. package/dist/services/internal/urlParamsService.d.ts +19 -0
  117. package/dist/services/internal/walletService.d.ts +3 -6
  118. package/dist/services/internal/xrplService.d.ts +2 -0
  119. package/dist/{stellarService.client-x3phx3SN.js → stellarService.client-1ku2cXV6.js} +10 -9
  120. package/dist/{stellarService.client-x3phx3SN.js.map → stellarService.client-1ku2cXV6.js.map} +1 -1
  121. package/dist/{stellarService.client-B8EBfqQK.js → stellarService.client-Bre_DUVj.js} +10 -9
  122. package/dist/{stellarService.client-B8EBfqQK.js.map → stellarService.client-Bre_DUVj.js.map} +1 -1
  123. package/package.json +36 -35
  124. package/dist/hooks/squid/useSquidWagmiConfig.d.ts +0 -41
  125. package/dist/hooks/user/useUserParams.d.ts +0 -4
  126. package/dist/index-Am7B-ANI.js.map +0 -1
  127. package/dist/index-DvtX3lMK.js.map +0 -1
  128. package/dist/index.es-D8CJEHCT.js.map +0 -1
  129. package/dist/index.es-tQM55FRF.js.map +0 -1
  130. package/dist/services/internal/fiatToCryptoService.test.d.ts +0 -1
  131. package/dist/tests/apiService.test.d.ts +0 -1
  132. package/dist/tests/assetsService.test.d.ts +0 -1
  133. package/dist/tests/configService.test.d.ts +0 -1
  134. package/dist/tests/estimateService.test.d.ts +0 -1
  135. package/dist/tests/fetchSquidData.d.ts +0 -8
  136. package/dist/tests/numberService.test.d.ts +0 -1
  137. package/dist/tests/priceService.test.d.ts +0 -1
  138. package/dist/tests/searchService.test.d.ts +0 -1
  139. package/dist/tests/swapConfig.test.d.ts +0 -1
  140. package/dist/tests/transactionService.test.d.ts +0 -1
  141. package/dist/tests/transactionStatusService.test.d.ts +0 -1
  142. package/dist/tests/walletService.test.d.ts +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var stargate = require('@cosmjs/stargate');
4
4
  var secretjs = require('secretjs');
5
- var index = require('./index-Am7B-ANI.js');
5
+ var index = require('./index-DnLb20V8.js');
6
6
  require('@0xsquid/squid-types');
7
7
  require('viem');
8
8
  require('react');
@@ -14,30 +14,31 @@ require('axios');
14
14
  require('@walletconnect/modal');
15
15
  require('@walletconnect/universal-provider');
16
16
  require('ripple-address-codec');
17
+ require('bignumber.js');
17
18
  require('@solana/spl-token');
18
19
  require('@solana/wallet-standard-wallet-adapter-base');
19
20
  require('@solana/web3.js');
20
21
  require('@stellar/stellar-sdk');
21
22
  require('@mysten/wallet-standard');
22
23
  require('ethers');
23
- require('bignumber.js');
24
- require('@0xsquid/sdk');
25
- require('viem/chains');
26
- require('wagmi');
27
- require('wagmi/connectors');
28
24
  require('countries-list');
29
25
  require('currency-symbol-map');
30
26
  require('fuse.js');
31
27
  require('zustand');
32
28
  require('zustand/middleware');
29
+ require('wagmi');
33
30
  require('@safe-global/safe-apps-sdk');
31
+ require('@sigilry/dapp');
34
32
  require('@wallet-standard/core');
35
33
  require('@mysten/slush-wallet');
36
34
  require('@mysten/sui/client');
35
+ require('wagmi/connectors');
37
36
  require('@cosmjs/proto-signing');
38
37
  require('@mysten/sui/transactions');
39
38
  require('@cosmjs/cosmwasm-stargate');
40
39
  require('@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js');
40
+ require('@0xsquid/sdk');
41
+ require('viem/chains');
41
42
 
42
43
  /**
43
44
  * Fetch secret network token balance
@@ -167,4 +168,4 @@ const fetchAllSecretBalances = async (chainData, userAddress, secretTokens, kepl
167
168
  exports.fetchAllSecretBalances = fetchAllSecretBalances;
168
169
  exports.getPermit = getPermit;
169
170
  exports.getTokenBalance = getTokenBalance;
170
- //# sourceMappingURL=secretService-owSXKwWk.js.map
171
+ //# sourceMappingURL=secretService-AQfnpZHo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secretService-owSXKwWk.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":["CHAIN_IDS","SecretNetworkClient","formatBNToReadable","StargateClient"],"mappings":"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"}
1
+ {"version":3,"file":"secretService-AQfnpZHo.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":["CHAIN_IDS","SecretNetworkClient","formatBNToReadable","StargateClient"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { StargateClient } from '@cosmjs/stargate';
2
2
  import { SecretNetworkClient } from 'secretjs';
3
- import { C as CHAIN_IDS, f as formatBNToReadable } from './index-DvtX3lMK.js';
3
+ import { C as CHAIN_IDS, f as formatBNToReadable } from './index-BbLFIIzM.js';
4
4
  import '@0xsquid/squid-types';
5
5
  import 'viem';
6
6
  import 'react';
@@ -12,30 +12,31 @@ import 'axios';
12
12
  import '@walletconnect/modal';
13
13
  import '@walletconnect/universal-provider';
14
14
  import 'ripple-address-codec';
15
+ import 'bignumber.js';
15
16
  import '@solana/spl-token';
16
17
  import '@solana/wallet-standard-wallet-adapter-base';
17
18
  import '@solana/web3.js';
18
19
  import '@stellar/stellar-sdk';
19
20
  import '@mysten/wallet-standard';
20
21
  import 'ethers';
21
- import 'bignumber.js';
22
- import '@0xsquid/sdk';
23
- import 'viem/chains';
24
- import 'wagmi';
25
- import 'wagmi/connectors';
26
22
  import 'countries-list';
27
23
  import 'currency-symbol-map';
28
24
  import 'fuse.js';
29
25
  import 'zustand';
30
26
  import 'zustand/middleware';
27
+ import 'wagmi';
31
28
  import '@safe-global/safe-apps-sdk';
29
+ import '@sigilry/dapp';
32
30
  import '@wallet-standard/core';
33
31
  import '@mysten/slush-wallet';
34
32
  import '@mysten/sui/client';
33
+ import 'wagmi/connectors';
35
34
  import '@cosmjs/proto-signing';
36
35
  import '@mysten/sui/transactions';
37
36
  import '@cosmjs/cosmwasm-stargate';
38
37
  import '@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js';
38
+ import '@0xsquid/sdk';
39
+ import 'viem/chains';
39
40
 
40
41
  /**
41
42
  * Fetch secret network token balance
@@ -163,4 +164,4 @@ const fetchAllSecretBalances = async (chainData, userAddress, secretTokens, kepl
163
164
  };
164
165
 
165
166
  export { fetchAllSecretBalances, getPermit, getTokenBalance };
166
- //# sourceMappingURL=secretService-j1xXWg00.js.map
167
+ //# sourceMappingURL=secretService-CHz5vw6s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secretService-j1xXWg00.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;;AASG;AACI,MAAM,eAAe,GAAG,OAC7B,QAA6B,EAC7B,QAA+C,EAC/C,MAAW,KACT;AACF,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,GAAG,GAAG;AACV,YAAA,OAAO,EAAE,EAAE;SACZ;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YACxD,gBAAgB,EAAE,QAAQ,CAAC,OAAO;YAClC,SAAS,EAAE,QAAQ,CAAC,QAAQ;AAC5B,YAAA,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE;AACX,oBAAA,KAAK,EAAE,GAAG;oBACV,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;AACd;IACD,OAAO,EAAE;AACX;AAEO,MAAM,SAAS,GAAG,OACvB,OAAe,EACf,SAAgB,EAChB,OAAe,KACb;IACF,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAQ,KAAA,EAAA,OAAO,IAAI,eAAe,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE;AAC/D,IAAA,IAAI,MAAW;IAEf,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AACzD,IAAA,IAAI,YAAY;AAAE,QAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;;;IAInD,IAAI,CAAC,MAAM,EAAE;QACX,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAO,MAAsB,CAAC,KAAK,CAAC,SAAS,CAC1D,OAAO,EACP,OAAO,EACP;AACE,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,cAAc,EAAE,GAAG;AACnB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,GAAG,EAAE;oBACH,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzC,oBAAA,GAAG,EAAE,GAAG;AACT,iBAAA;AACD,gBAAA,IAAI,EAAE;AACJ,oBAAA;AACE,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,KAAK,EAAE;AACL,4BAAA,WAAW,EAAE,uBAAuB;AACpC,4BAAA,cAAc,EAAE,SAAS;4BACzB,WAAW,EAAE,CAAC,SAAS,CAAC;AACzB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;aACT,EACD;AACE,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,eAAe,EAAE,IAAI;AACtB,aAAA,CACF;AACD,YAAA,MAAM,GAAG;AACP,gBAAA,MAAM,EAAE;AACN,oBAAA,WAAW,EAAE,uBAAuB;AACpC,oBAAA,cAAc,EAAE,SAAS;AACzB,oBAAA,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,CAAC,SAAS,CAAC;AACzB,iBAAA;gBACD,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;AACD,YAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7D;AAAC,QAAA,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACrC,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACnB;AACF;AACD,IAAA,OAAO,MAAM;AACf;AAEA;;;;AAIG;AACI,MAAM,sBAAsB,GAAG,OACpC,SAAoB,EACpB,WAAmB,EACnB,YAA+C,EAC/C,KAAa,KACkB;AAC/B,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;;IAErB,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;;AAEpC,IAAA,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC;QACrC,GAAG,EAAG,SAAyB,CAAC,IAAI;QACpC,OAAO,EAAE,SAAS,CAAC,MAAM;QACzB,MAAM,EAAE,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC;QACzD,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;AACvD,QAAA,aAAa,EAAE,WAAW;AAC3B,KAAA,CAAC;;IAIF,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,SAAS,CAAC,MAAM,EAChB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EACpC,WAAW,CACZ;;AAGD,IAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC;SACG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AAC1B,SAAA,GAAG,CAAC,OAAO,KAAK,KAAI;AACnB,QAAA,MAAM,MAAM,IAAI,MAAM,eAAe,CACnC,MAAM,EACN;YACE,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;SAC/B,EACD,MAAM,CACP,CAAoC;QAErC,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,kBAAkB,CACzB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAC7B,KAAK,EAAE,QAAQ,CAChB;SACkB;KACtB,CAAC,CACL;;IAGD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;AAClE,IAAA,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;IAEzE,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,UAAU,CACxD,WAAW,EACX,OAAO,CACR;AAED,IAAA,MAAM,sBAAsB,GAAG;AAC7B,QAAA,GAAG,iBAAiB;AACpB,QAAA,OAAO,EAAE,kBAAkB,CACzB,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACjC,iBAAiB,EAAE,QAAQ,IAAI,EAAE,CAClC;KACkB;AAErB,IAAA,OAAO,CAAC,GAAG,aAAa,EAAE,sBAAsB,CAAC;AACnD;;;;"}
1
+ {"version":3,"file":"secretService-CHz5vw6s.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { CHAIN_IDS, chainTypeToNativeTokenAddressMap, chainTypeToZeroAddressMap, nativeBitcoinTokenAddress, nativeCantonTokenAddress, nativeCosmosTokenAddress, nativeEvmTokenAddress, nativeSolanaTokenAddress, nativeStellarTokenAddress, nativeSuiTokenAddress, nativeXrplTokenAddress, } from "./core/constants";
@@ -0,0 +1,120 @@
1
+ import { ChainType } from '@0xsquid/squid-types';
2
+ import { zeroAddress } from 'viem';
3
+
4
+ const bitcoinZeroAddress = "1111111111111111111114oLvT2";
5
+ const cosmosZeroAddress = "osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq65mj83";
6
+ const solanaZeroAddress = "11111111111111111111111111111111";
7
+ const suiZeroAddress = "0x0000000000000000000000000000000000000000";
8
+ const xrplZeroAddress = "rrrrrrrrrrrrrrrrrrrrrhoLvTp";
9
+ const stellarZeroAddress = "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF";
10
+ const cantonZeroAddress = "none::12200000000000000000000000000000000000000000000000000000000000000000";
11
+ const chainTypeToZeroAddressMap = {
12
+ [ChainType.EVM]: zeroAddress,
13
+ [ChainType.COSMOS]: cosmosZeroAddress,
14
+ [ChainType.BTC]: bitcoinZeroAddress,
15
+ [ChainType.SOLANA]: solanaZeroAddress,
16
+ [ChainType.SUI]: suiZeroAddress,
17
+ [ChainType.XRPL]: xrplZeroAddress,
18
+ [ChainType.STELLAR]: stellarZeroAddress,
19
+ [ChainType.CANTON]: cantonZeroAddress,
20
+ };
21
+ const nativeEvmTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
22
+ const nativeCosmosTokenAddress = "uosmo";
23
+ const nativeSolanaTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
24
+ const nativeBitcoinTokenAddress = "satoshi";
25
+ const nativeSuiTokenAddress = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
26
+ const nativeXrplTokenAddress = "xrp";
27
+ const nativeStellarTokenAddress = "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA";
28
+ const nativeCantonTokenAddress = "DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc";
29
+ const CHAIN_IDS = {
30
+ // Cosmos
31
+ OSMOSIS: "osmosis-1",
32
+ INJECTIVE: "injective-1",
33
+ SECRET: "secret-4",
34
+ ARCHWAY: "archway-1",
35
+ XION: "xion-mainnet-1",
36
+ NOBLE: "noble-1",
37
+ AGORIC: "agoric-3",
38
+ // EVM
39
+ ETHEREUM: "1",
40
+ ETHEREUM_SEPOLIA: "11155111",
41
+ ARBITRUM: "42161",
42
+ BSC: "56",
43
+ BASE: "8453",
44
+ OPTIMISM: "10",
45
+ LINEA: "59144",
46
+ BLAST: "81457",
47
+ CELO: "42220",
48
+ POLYGON: "137",
49
+ AVALANCHE: "43114",
50
+ IMMUTABLE: "13371",
51
+ SCROLL: "534352",
52
+ MOONBEAM: "1284",
53
+ MANTLE: "5000",
54
+ FANTOM: "250",
55
+ KAVA: "2222",
56
+ FILECOIN: "314",
57
+ BERACHAIN: "80094",
58
+ SAGA_EVM: "5464",
59
+ XRPL_EVM: "1440000",
60
+ XRPL_EVM_TESTNET: "1449000",
61
+ GNOSIS: "100",
62
+ SONIC: "146",
63
+ HYPER_EVM: "999",
64
+ DCHAIN: "2716446429837000",
65
+ SONEIUM: "1868",
66
+ PEAQ: "3338",
67
+ HEDERA: "295",
68
+ MANTRA: "5888",
69
+ CITREA: "4114",
70
+ TEMPO: "4217",
71
+ ARC: "5042",
72
+ KUB: "96",
73
+ // others
74
+ BITCOIN: "bitcoin",
75
+ SOLANA: "solana-mainnet-beta",
76
+ SUI: "sui-mainnet",
77
+ SUI_TESTNET: "sui-testnet",
78
+ XRPL: "xrpl-mainnet",
79
+ XRPL_TESTNET: "xrpl-testnet",
80
+ STELLAR: "stellar-mainnet",
81
+ STELLAR_TESTNET: "stellar-testnet",
82
+ CANTON: "canton",
83
+ };
84
+ // approve reverts when changing a non-zero allowance to another non-zero value
85
+ new Set([
86
+ // USDT
87
+ `${CHAIN_IDS.ETHEREUM}:0xdac17f958d2ee523a2206206994597c13d831ec7`,
88
+ // MANA
89
+ `${CHAIN_IDS.ETHEREUM}:0x0f5d2fb29fb7d3cfee444a200298f468908cc942`,
90
+ // USDT
91
+ `${CHAIN_IDS.KUB}:0x21cdc3706b8c7b1836df0e533dd884069521350b`,
92
+ ]);
93
+ ({
94
+ [ChainType.EVM]: CHAIN_IDS.ETHEREUM,
95
+ [ChainType.COSMOS]: CHAIN_IDS.OSMOSIS,
96
+ [ChainType.BTC]: CHAIN_IDS.BITCOIN,
97
+ [ChainType.SOLANA]: CHAIN_IDS.SOLANA,
98
+ [ChainType.SUI]: CHAIN_IDS.SUI,
99
+ [ChainType.XRPL]: CHAIN_IDS.XRPL,
100
+ [ChainType.STELLAR]: CHAIN_IDS.STELLAR,
101
+ [ChainType.CANTON]: CHAIN_IDS.CANTON,
102
+ });
103
+ const chainTypeToNativeTokenAddressMap = {
104
+ [ChainType.EVM]: nativeEvmTokenAddress,
105
+ [ChainType.COSMOS]: nativeCosmosTokenAddress,
106
+ [ChainType.BTC]: nativeBitcoinTokenAddress,
107
+ [ChainType.SOLANA]: nativeSolanaTokenAddress,
108
+ [ChainType.SUI]: nativeSuiTokenAddress,
109
+ [ChainType.XRPL]: nativeXrplTokenAddress,
110
+ [ChainType.STELLAR]: nativeStellarTokenAddress,
111
+ [ChainType.CANTON]: nativeCantonTokenAddress,
112
+ };
113
+ var EvmPriorityConnectors;
114
+ (function (EvmPriorityConnectors) {
115
+ EvmPriorityConnectors["Safe"] = "safe";
116
+ EvmPriorityConnectors["LedgerLive"] = "ledgerLive";
117
+ })(EvmPriorityConnectors || (EvmPriorityConnectors = {}));
118
+
119
+ export { CHAIN_IDS, chainTypeToNativeTokenAddressMap, chainTypeToZeroAddressMap, nativeBitcoinTokenAddress, nativeCantonTokenAddress, nativeCosmosTokenAddress, nativeEvmTokenAddress, nativeSolanaTokenAddress, nativeStellarTokenAddress, nativeSuiTokenAddress, nativeXrplTokenAddress };
120
+ //# sourceMappingURL=server.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.esm.js","sources":["../src/core/constants.ts"],"sourcesContent":["\"use client\";\n\nimport { ChainType } from \"@0xsquid/squid-types\";\nimport { zeroAddress as evmZeroAddress } from \"viem\";\nimport { squidApiBaseUrl } from \"./externalLinks\";\nimport type { AppConfig, SlippageOption } from \"./types/config\";\n\nexport const WALLETCONNECT_PROJECT_ID = \"db6a4f6ff58e4172b2fd52f01360bc49\";\nexport const WALLETCONNECT_WALLET_IDS = {\n joey: \"d9f5432e932c6fad8e19a0cea9d4a3372a84aed16e98a52e6655dd2821a63404\",\n girin: \"994824d1e0b935f48ec3570c9d51fe5af9bbd9246b6f57210906f8b853ad2196\",\n bifrost: \"37a686ab6223cd42e2886ed6e5477fce100a4fb565dcd57ed4f81f7c12e93053\",\n} as const;\nexport const assetsBaseUrl = \"https://assets.squidrouter.com\";\n\nexport const DEFAULT_LOCALE = \"en-US\";\nexport const SQUID_METADATA = {\n name: \"Squid\",\n url: \"https://app.squidrouter.com\",\n icon: \"https://squidrouter.com/favicon.ico\",\n description: \"Swap, send, and bridge across chains.\",\n};\n\nconst bitcoinZeroAddress = \"1111111111111111111114oLvT2\";\nconst cosmosZeroAddress =\n \"osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq65mj83\";\nconst solanaZeroAddress = \"11111111111111111111111111111111\";\nconst suiZeroAddress = \"0x0000000000000000000000000000000000000000\";\nconst xrplZeroAddress = \"rrrrrrrrrrrrrrrrrrrrrhoLvTp\";\nconst stellarZeroAddress =\n \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\nconst cantonZeroAddress =\n \"none::12200000000000000000000000000000000000000000000000000000000000000000\";\n\nexport const chainTypeToZeroAddressMap: Record<ChainType, string> = {\n [ChainType.EVM]: evmZeroAddress,\n [ChainType.COSMOS]: cosmosZeroAddress,\n [ChainType.BTC]: bitcoinZeroAddress,\n [ChainType.SOLANA]: solanaZeroAddress,\n [ChainType.SUI]: suiZeroAddress,\n [ChainType.XRPL]: xrplZeroAddress,\n [ChainType.STELLAR]: stellarZeroAddress,\n [ChainType.CANTON]: cantonZeroAddress,\n};\n\nexport const nativeEvmTokenAddress =\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\";\nexport const nativeCosmosTokenAddress = \"uosmo\";\nexport const nativeSolanaTokenAddress =\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\";\nexport const nativeBitcoinTokenAddress = \"satoshi\";\nexport const nativeSuiTokenAddress =\n \"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\";\nexport const nativeXrplTokenAddress = \"xrp\";\nexport const nativeStellarTokenAddress =\n \"CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA\";\nexport const nativeCantonTokenAddress =\n \"DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc\";\n\n// by setting slippage to undefined, it's set to \"auto\"\nexport const defaultSlippage: SlippageOption = undefined;\nexport const destinationAddressResetValue = \"null\";\nexport const fallbackAddressResetValue = \"null\";\nexport const gasRefundMultiplier = 25;\nexport const internalSquidApiBaseUrl = \"https://app.squidrouter.com/api\";\nexport const XAMAN_API_URL = `${internalSquidApiBaseUrl}/xaman/`;\nexport const TOKEN_PRICE_API_URL = `${internalSquidApiBaseUrl}/coingecko`;\nexport const CANTON_AMULET_REGISTRY_URL = `${internalSquidApiBaseUrl}/canton/scan-proxy`;\nexport const DEFAULT_ROUTE_REFETCH_INTERVAL = 30_000;\n\nexport const SOLANA_RPC_URL =\n \"https://meredith-ute2ko-fast-mainnet.helius-rpc.com\";\nexport const INTEGRATOR_ID =\n \"squid-widget-playground-local-cd33cba6-7e12-4fcc-8d5d-35e286f655ea\";\n\nexport const DEFAULT_COUNTRY_CODE = \"US\";\n\nexport const CHAIN_IDS = {\n // Cosmos\n OSMOSIS: \"osmosis-1\",\n INJECTIVE: \"injective-1\",\n SECRET: \"secret-4\",\n ARCHWAY: \"archway-1\",\n XION: \"xion-mainnet-1\",\n NOBLE: \"noble-1\",\n AGORIC: \"agoric-3\",\n\n // EVM\n ETHEREUM: \"1\",\n ETHEREUM_SEPOLIA: \"11155111\",\n ARBITRUM: \"42161\",\n BSC: \"56\",\n BASE: \"8453\",\n OPTIMISM: \"10\",\n LINEA: \"59144\",\n BLAST: \"81457\",\n CELO: \"42220\",\n POLYGON: \"137\",\n AVALANCHE: \"43114\",\n IMMUTABLE: \"13371\",\n SCROLL: \"534352\",\n MOONBEAM: \"1284\",\n MANTLE: \"5000\",\n FANTOM: \"250\",\n KAVA: \"2222\",\n FILECOIN: \"314\",\n BERACHAIN: \"80094\",\n SAGA_EVM: \"5464\",\n XRPL_EVM: \"1440000\",\n XRPL_EVM_TESTNET: \"1449000\",\n GNOSIS: \"100\",\n SONIC: \"146\",\n HYPER_EVM: \"999\",\n DCHAIN: \"2716446429837000\",\n SONEIUM: \"1868\",\n PEAQ: \"3338\",\n HEDERA: \"295\",\n MANTRA: \"5888\",\n CITREA: \"4114\",\n TEMPO: \"4217\",\n ARC: \"5042\",\n KUB: \"96\",\n\n // others\n BITCOIN: \"bitcoin\",\n SOLANA: \"solana-mainnet-beta\",\n SUI: \"sui-mainnet\",\n SUI_TESTNET: \"sui-testnet\",\n XRPL: \"xrpl-mainnet\",\n XRPL_TESTNET: \"xrpl-testnet\",\n STELLAR: \"stellar-mainnet\",\n STELLAR_TESTNET: \"stellar-testnet\",\n CANTON: \"canton\",\n} as const;\n\n// approve reverts when changing a non-zero allowance to another non-zero value\nexport const zeroAllowanceResetTokens = new Set([\n // USDT\n `${CHAIN_IDS.ETHEREUM}:0xdac17f958d2ee523a2206206994597c13d831ec7`,\n // MANA\n `${CHAIN_IDS.ETHEREUM}:0x0f5d2fb29fb7d3cfee444a200298f468908cc942`,\n // USDT\n `${CHAIN_IDS.KUB}:0x21cdc3706b8c7b1836df0e533dd884069521350b`,\n]);\n\nexport const chainTypeToDefaultChainIdMap: Record<ChainType, string> = {\n [ChainType.EVM]: CHAIN_IDS.ETHEREUM,\n [ChainType.COSMOS]: CHAIN_IDS.OSMOSIS,\n [ChainType.BTC]: CHAIN_IDS.BITCOIN,\n [ChainType.SOLANA]: CHAIN_IDS.SOLANA,\n [ChainType.SUI]: CHAIN_IDS.SUI,\n [ChainType.XRPL]: CHAIN_IDS.XRPL,\n [ChainType.STELLAR]: CHAIN_IDS.STELLAR,\n [ChainType.CANTON]: CHAIN_IDS.CANTON,\n};\n\nexport const chainTypeToNativeTokenAddressMap: Record<ChainType, string> = {\n [ChainType.EVM]: nativeEvmTokenAddress,\n [ChainType.COSMOS]: nativeCosmosTokenAddress,\n [ChainType.BTC]: nativeBitcoinTokenAddress,\n [ChainType.SOLANA]: nativeSolanaTokenAddress,\n [ChainType.SUI]: nativeSuiTokenAddress,\n [ChainType.XRPL]: nativeXrplTokenAddress,\n [ChainType.STELLAR]: nativeStellarTokenAddress,\n [ChainType.CANTON]: nativeCantonTokenAddress,\n};\n\nexport const defaultConfigValues: AppConfig = {\n integratorId: INTEGRATOR_ID,\n slippage: defaultSlippage,\n apiUrl: squidApiBaseUrl,\n priceImpactWarnings: {\n warning: 3,\n critical: 5,\n },\n};\n\nexport enum EvmPriorityConnectors {\n Safe = \"safe\",\n LedgerLive = \"ledgerLive\",\n}\n"],"names":["evmZeroAddress"],"mappings":";;;AAuBA,MAAM,kBAAkB,GAAG,6BAA6B;AACxD,MAAM,iBAAiB,GACrB,iEAAiE;AACnE,MAAM,iBAAiB,GAAG,kCAAkC;AAC5D,MAAM,cAAc,GAAG,4CAA4C;AACnE,MAAM,eAAe,GAAG,6BAA6B;AACrD,MAAM,kBAAkB,GACtB,0DAA0D;AAC5D,MAAM,iBAAiB,GACrB,4EAA4E;AAEjE,MAAA,yBAAyB,GAA8B;AAClE,IAAA,CAAC,SAAS,CAAC,GAAG,GAAGA,WAAc;AAC/B,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB;AACrC,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,kBAAkB;AACnC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB;AACrC,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,cAAc;AAC/B,IAAA,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe;AACjC,IAAA,CAAC,SAAS,CAAC,OAAO,GAAG,kBAAkB;AACvC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,iBAAiB;;AAGhC,MAAM,qBAAqB,GAChC;AACK,MAAM,wBAAwB,GAAG;AACjC,MAAM,wBAAwB,GACnC;AACK,MAAM,yBAAyB,GAAG;AAClC,MAAM,qBAAqB,GAChC;AACK,MAAM,sBAAsB,GAAG;AAC/B,MAAM,yBAAyB,GACpC;AACK,MAAM,wBAAwB,GACnC;AAoBW,MAAA,SAAS,GAAG;;AAEvB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,UAAU;;AAGlB,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,gBAAgB,EAAE,UAAU;AAC5B,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,MAAM,EAAE,kBAAkB;AAC1B,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,GAAG,EAAE,MAAM;AACX,IAAA,GAAG,EAAE,IAAI;;AAGT,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,qBAAqB;AAC7B,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,MAAM,EAAE,QAAQ;;AAGlB;AACwC,IAAI,GAAG,CAAC;;IAE9C,CAAG,EAAA,SAAS,CAAC,QAAQ,CAA6C,2CAAA,CAAA;;IAElE,CAAG,EAAA,SAAS,CAAC,QAAQ,CAA6C,2CAAA,CAAA;;IAElE,CAAG,EAAA,SAAS,CAAC,GAAG,CAA6C,2CAAA,CAAA;AAC9D,CAAA;CAEsE;AACrE,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ;AACnC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO;AACrC,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO;AAClC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;AACpC,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG;AAC9B,IAAA,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;AAChC,IAAA,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO;AACtC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;;AAGzB,MAAA,gCAAgC,GAA8B;AACzE,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB;AACtC,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB;AAC5C,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,yBAAyB;AAC1C,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB;AAC5C,IAAA,CAAC,SAAS,CAAC,GAAG,GAAG,qBAAqB;AACtC,IAAA,CAAC,SAAS,CAAC,IAAI,GAAG,sBAAsB;AACxC,IAAA,CAAC,SAAS,CAAC,OAAO,GAAG,yBAAyB;AAC9C,IAAA,CAAC,SAAS,CAAC,MAAM,GAAG,wBAAwB;;AAa9C,IAAY,qBAGX;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA;;;;"}
package/dist/server.js ADDED
@@ -0,0 +1,132 @@
1
+ 'use strict';
2
+
3
+ var squidTypes = require('@0xsquid/squid-types');
4
+ var viem = require('viem');
5
+
6
+ const bitcoinZeroAddress = "1111111111111111111114oLvT2";
7
+ const cosmosZeroAddress = "osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq65mj83";
8
+ const solanaZeroAddress = "11111111111111111111111111111111";
9
+ const suiZeroAddress = "0x0000000000000000000000000000000000000000";
10
+ const xrplZeroAddress = "rrrrrrrrrrrrrrrrrrrrrhoLvTp";
11
+ const stellarZeroAddress = "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF";
12
+ const cantonZeroAddress = "none::12200000000000000000000000000000000000000000000000000000000000000000";
13
+ const chainTypeToZeroAddressMap = {
14
+ [squidTypes.ChainType.EVM]: viem.zeroAddress,
15
+ [squidTypes.ChainType.COSMOS]: cosmosZeroAddress,
16
+ [squidTypes.ChainType.BTC]: bitcoinZeroAddress,
17
+ [squidTypes.ChainType.SOLANA]: solanaZeroAddress,
18
+ [squidTypes.ChainType.SUI]: suiZeroAddress,
19
+ [squidTypes.ChainType.XRPL]: xrplZeroAddress,
20
+ [squidTypes.ChainType.STELLAR]: stellarZeroAddress,
21
+ [squidTypes.ChainType.CANTON]: cantonZeroAddress,
22
+ };
23
+ const nativeEvmTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
24
+ const nativeCosmosTokenAddress = "uosmo";
25
+ const nativeSolanaTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
26
+ const nativeBitcoinTokenAddress = "satoshi";
27
+ const nativeSuiTokenAddress = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
28
+ const nativeXrplTokenAddress = "xrp";
29
+ const nativeStellarTokenAddress = "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA";
30
+ const nativeCantonTokenAddress = "DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc";
31
+ const CHAIN_IDS = {
32
+ // Cosmos
33
+ OSMOSIS: "osmosis-1",
34
+ INJECTIVE: "injective-1",
35
+ SECRET: "secret-4",
36
+ ARCHWAY: "archway-1",
37
+ XION: "xion-mainnet-1",
38
+ NOBLE: "noble-1",
39
+ AGORIC: "agoric-3",
40
+ // EVM
41
+ ETHEREUM: "1",
42
+ ETHEREUM_SEPOLIA: "11155111",
43
+ ARBITRUM: "42161",
44
+ BSC: "56",
45
+ BASE: "8453",
46
+ OPTIMISM: "10",
47
+ LINEA: "59144",
48
+ BLAST: "81457",
49
+ CELO: "42220",
50
+ POLYGON: "137",
51
+ AVALANCHE: "43114",
52
+ IMMUTABLE: "13371",
53
+ SCROLL: "534352",
54
+ MOONBEAM: "1284",
55
+ MANTLE: "5000",
56
+ FANTOM: "250",
57
+ KAVA: "2222",
58
+ FILECOIN: "314",
59
+ BERACHAIN: "80094",
60
+ SAGA_EVM: "5464",
61
+ XRPL_EVM: "1440000",
62
+ XRPL_EVM_TESTNET: "1449000",
63
+ GNOSIS: "100",
64
+ SONIC: "146",
65
+ HYPER_EVM: "999",
66
+ DCHAIN: "2716446429837000",
67
+ SONEIUM: "1868",
68
+ PEAQ: "3338",
69
+ HEDERA: "295",
70
+ MANTRA: "5888",
71
+ CITREA: "4114",
72
+ TEMPO: "4217",
73
+ ARC: "5042",
74
+ KUB: "96",
75
+ // others
76
+ BITCOIN: "bitcoin",
77
+ SOLANA: "solana-mainnet-beta",
78
+ SUI: "sui-mainnet",
79
+ SUI_TESTNET: "sui-testnet",
80
+ XRPL: "xrpl-mainnet",
81
+ XRPL_TESTNET: "xrpl-testnet",
82
+ STELLAR: "stellar-mainnet",
83
+ STELLAR_TESTNET: "stellar-testnet",
84
+ CANTON: "canton",
85
+ };
86
+ // approve reverts when changing a non-zero allowance to another non-zero value
87
+ new Set([
88
+ // USDT
89
+ `${CHAIN_IDS.ETHEREUM}:0xdac17f958d2ee523a2206206994597c13d831ec7`,
90
+ // MANA
91
+ `${CHAIN_IDS.ETHEREUM}:0x0f5d2fb29fb7d3cfee444a200298f468908cc942`,
92
+ // USDT
93
+ `${CHAIN_IDS.KUB}:0x21cdc3706b8c7b1836df0e533dd884069521350b`,
94
+ ]);
95
+ ({
96
+ [squidTypes.ChainType.EVM]: CHAIN_IDS.ETHEREUM,
97
+ [squidTypes.ChainType.COSMOS]: CHAIN_IDS.OSMOSIS,
98
+ [squidTypes.ChainType.BTC]: CHAIN_IDS.BITCOIN,
99
+ [squidTypes.ChainType.SOLANA]: CHAIN_IDS.SOLANA,
100
+ [squidTypes.ChainType.SUI]: CHAIN_IDS.SUI,
101
+ [squidTypes.ChainType.XRPL]: CHAIN_IDS.XRPL,
102
+ [squidTypes.ChainType.STELLAR]: CHAIN_IDS.STELLAR,
103
+ [squidTypes.ChainType.CANTON]: CHAIN_IDS.CANTON,
104
+ });
105
+ const chainTypeToNativeTokenAddressMap = {
106
+ [squidTypes.ChainType.EVM]: nativeEvmTokenAddress,
107
+ [squidTypes.ChainType.COSMOS]: nativeCosmosTokenAddress,
108
+ [squidTypes.ChainType.BTC]: nativeBitcoinTokenAddress,
109
+ [squidTypes.ChainType.SOLANA]: nativeSolanaTokenAddress,
110
+ [squidTypes.ChainType.SUI]: nativeSuiTokenAddress,
111
+ [squidTypes.ChainType.XRPL]: nativeXrplTokenAddress,
112
+ [squidTypes.ChainType.STELLAR]: nativeStellarTokenAddress,
113
+ [squidTypes.ChainType.CANTON]: nativeCantonTokenAddress,
114
+ };
115
+ var EvmPriorityConnectors;
116
+ (function (EvmPriorityConnectors) {
117
+ EvmPriorityConnectors["Safe"] = "safe";
118
+ EvmPriorityConnectors["LedgerLive"] = "ledgerLive";
119
+ })(EvmPriorityConnectors || (EvmPriorityConnectors = {}));
120
+
121
+ exports.CHAIN_IDS = CHAIN_IDS;
122
+ exports.chainTypeToNativeTokenAddressMap = chainTypeToNativeTokenAddressMap;
123
+ exports.chainTypeToZeroAddressMap = chainTypeToZeroAddressMap;
124
+ exports.nativeBitcoinTokenAddress = nativeBitcoinTokenAddress;
125
+ exports.nativeCantonTokenAddress = nativeCantonTokenAddress;
126
+ exports.nativeCosmosTokenAddress = nativeCosmosTokenAddress;
127
+ exports.nativeEvmTokenAddress = nativeEvmTokenAddress;
128
+ exports.nativeSolanaTokenAddress = nativeSolanaTokenAddress;
129
+ exports.nativeStellarTokenAddress = nativeStellarTokenAddress;
130
+ exports.nativeSuiTokenAddress = nativeSuiTokenAddress;
131
+ exports.nativeXrplTokenAddress = nativeXrplTokenAddress;
132
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sources":["../src/core/constants.ts"],"sourcesContent":["\"use client\";\n\nimport { ChainType } from \"@0xsquid/squid-types\";\nimport { zeroAddress as evmZeroAddress } from \"viem\";\nimport { squidApiBaseUrl } from \"./externalLinks\";\nimport type { AppConfig, SlippageOption } from \"./types/config\";\n\nexport const WALLETCONNECT_PROJECT_ID = \"db6a4f6ff58e4172b2fd52f01360bc49\";\nexport const WALLETCONNECT_WALLET_IDS = {\n joey: \"d9f5432e932c6fad8e19a0cea9d4a3372a84aed16e98a52e6655dd2821a63404\",\n girin: \"994824d1e0b935f48ec3570c9d51fe5af9bbd9246b6f57210906f8b853ad2196\",\n bifrost: \"37a686ab6223cd42e2886ed6e5477fce100a4fb565dcd57ed4f81f7c12e93053\",\n} as const;\nexport const assetsBaseUrl = \"https://assets.squidrouter.com\";\n\nexport const DEFAULT_LOCALE = \"en-US\";\nexport const SQUID_METADATA = {\n name: \"Squid\",\n url: \"https://app.squidrouter.com\",\n icon: \"https://squidrouter.com/favicon.ico\",\n description: \"Swap, send, and bridge across chains.\",\n};\n\nconst bitcoinZeroAddress = \"1111111111111111111114oLvT2\";\nconst cosmosZeroAddress =\n \"osmo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq65mj83\";\nconst solanaZeroAddress = \"11111111111111111111111111111111\";\nconst suiZeroAddress = \"0x0000000000000000000000000000000000000000\";\nconst xrplZeroAddress = \"rrrrrrrrrrrrrrrrrrrrrhoLvTp\";\nconst stellarZeroAddress =\n \"GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF\";\nconst cantonZeroAddress =\n \"none::12200000000000000000000000000000000000000000000000000000000000000000\";\n\nexport const chainTypeToZeroAddressMap: Record<ChainType, string> = {\n [ChainType.EVM]: evmZeroAddress,\n [ChainType.COSMOS]: cosmosZeroAddress,\n [ChainType.BTC]: bitcoinZeroAddress,\n [ChainType.SOLANA]: solanaZeroAddress,\n [ChainType.SUI]: suiZeroAddress,\n [ChainType.XRPL]: xrplZeroAddress,\n [ChainType.STELLAR]: stellarZeroAddress,\n [ChainType.CANTON]: cantonZeroAddress,\n};\n\nexport const nativeEvmTokenAddress =\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\";\nexport const nativeCosmosTokenAddress = \"uosmo\";\nexport const nativeSolanaTokenAddress =\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\";\nexport const nativeBitcoinTokenAddress = \"satoshi\";\nexport const nativeSuiTokenAddress =\n \"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\";\nexport const nativeXrplTokenAddress = \"xrp\";\nexport const nativeStellarTokenAddress =\n \"CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA\";\nexport const nativeCantonTokenAddress =\n \"DSO::1220b1431ef217342db44d516bb9befde802be7d8899637d290895fa58880f19accc\";\n\n// by setting slippage to undefined, it's set to \"auto\"\nexport const defaultSlippage: SlippageOption = undefined;\nexport const destinationAddressResetValue = \"null\";\nexport const fallbackAddressResetValue = \"null\";\nexport const gasRefundMultiplier = 25;\nexport const internalSquidApiBaseUrl = \"https://app.squidrouter.com/api\";\nexport const XAMAN_API_URL = `${internalSquidApiBaseUrl}/xaman/`;\nexport const TOKEN_PRICE_API_URL = `${internalSquidApiBaseUrl}/coingecko`;\nexport const CANTON_AMULET_REGISTRY_URL = `${internalSquidApiBaseUrl}/canton/scan-proxy`;\nexport const DEFAULT_ROUTE_REFETCH_INTERVAL = 30_000;\n\nexport const SOLANA_RPC_URL =\n \"https://meredith-ute2ko-fast-mainnet.helius-rpc.com\";\nexport const INTEGRATOR_ID =\n \"squid-widget-playground-local-cd33cba6-7e12-4fcc-8d5d-35e286f655ea\";\n\nexport const DEFAULT_COUNTRY_CODE = \"US\";\n\nexport const CHAIN_IDS = {\n // Cosmos\n OSMOSIS: \"osmosis-1\",\n INJECTIVE: \"injective-1\",\n SECRET: \"secret-4\",\n ARCHWAY: \"archway-1\",\n XION: \"xion-mainnet-1\",\n NOBLE: \"noble-1\",\n AGORIC: \"agoric-3\",\n\n // EVM\n ETHEREUM: \"1\",\n ETHEREUM_SEPOLIA: \"11155111\",\n ARBITRUM: \"42161\",\n BSC: \"56\",\n BASE: \"8453\",\n OPTIMISM: \"10\",\n LINEA: \"59144\",\n BLAST: \"81457\",\n CELO: \"42220\",\n POLYGON: \"137\",\n AVALANCHE: \"43114\",\n IMMUTABLE: \"13371\",\n SCROLL: \"534352\",\n MOONBEAM: \"1284\",\n MANTLE: \"5000\",\n FANTOM: \"250\",\n KAVA: \"2222\",\n FILECOIN: \"314\",\n BERACHAIN: \"80094\",\n SAGA_EVM: \"5464\",\n XRPL_EVM: \"1440000\",\n XRPL_EVM_TESTNET: \"1449000\",\n GNOSIS: \"100\",\n SONIC: \"146\",\n HYPER_EVM: \"999\",\n DCHAIN: \"2716446429837000\",\n SONEIUM: \"1868\",\n PEAQ: \"3338\",\n HEDERA: \"295\",\n MANTRA: \"5888\",\n CITREA: \"4114\",\n TEMPO: \"4217\",\n ARC: \"5042\",\n KUB: \"96\",\n\n // others\n BITCOIN: \"bitcoin\",\n SOLANA: \"solana-mainnet-beta\",\n SUI: \"sui-mainnet\",\n SUI_TESTNET: \"sui-testnet\",\n XRPL: \"xrpl-mainnet\",\n XRPL_TESTNET: \"xrpl-testnet\",\n STELLAR: \"stellar-mainnet\",\n STELLAR_TESTNET: \"stellar-testnet\",\n CANTON: \"canton\",\n} as const;\n\n// approve reverts when changing a non-zero allowance to another non-zero value\nexport const zeroAllowanceResetTokens = new Set([\n // USDT\n `${CHAIN_IDS.ETHEREUM}:0xdac17f958d2ee523a2206206994597c13d831ec7`,\n // MANA\n `${CHAIN_IDS.ETHEREUM}:0x0f5d2fb29fb7d3cfee444a200298f468908cc942`,\n // USDT\n `${CHAIN_IDS.KUB}:0x21cdc3706b8c7b1836df0e533dd884069521350b`,\n]);\n\nexport const chainTypeToDefaultChainIdMap: Record<ChainType, string> = {\n [ChainType.EVM]: CHAIN_IDS.ETHEREUM,\n [ChainType.COSMOS]: CHAIN_IDS.OSMOSIS,\n [ChainType.BTC]: CHAIN_IDS.BITCOIN,\n [ChainType.SOLANA]: CHAIN_IDS.SOLANA,\n [ChainType.SUI]: CHAIN_IDS.SUI,\n [ChainType.XRPL]: CHAIN_IDS.XRPL,\n [ChainType.STELLAR]: CHAIN_IDS.STELLAR,\n [ChainType.CANTON]: CHAIN_IDS.CANTON,\n};\n\nexport const chainTypeToNativeTokenAddressMap: Record<ChainType, string> = {\n [ChainType.EVM]: nativeEvmTokenAddress,\n [ChainType.COSMOS]: nativeCosmosTokenAddress,\n [ChainType.BTC]: nativeBitcoinTokenAddress,\n [ChainType.SOLANA]: nativeSolanaTokenAddress,\n [ChainType.SUI]: nativeSuiTokenAddress,\n [ChainType.XRPL]: nativeXrplTokenAddress,\n [ChainType.STELLAR]: nativeStellarTokenAddress,\n [ChainType.CANTON]: nativeCantonTokenAddress,\n};\n\nexport const defaultConfigValues: AppConfig = {\n integratorId: INTEGRATOR_ID,\n slippage: defaultSlippage,\n apiUrl: squidApiBaseUrl,\n priceImpactWarnings: {\n warning: 3,\n critical: 5,\n },\n};\n\nexport enum EvmPriorityConnectors {\n Safe = \"safe\",\n LedgerLive = \"ledgerLive\",\n}\n"],"names":["ChainType","evmZeroAddress"],"mappings":"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"}
@@ -1,12 +1,11 @@
1
- import { ChainData, Token } from "@0xsquid/squid-types";
2
- import { ExecuteFiatQuoteResult, ExecuteQuoteClient, OnrampConfigResponse, OnrampPaymentMethod, OnRampQuoteParams, OnrampQuoteResponse, OnRampTransactionStatus } from "../../core/types/onramps/onramp";
1
+ import { Token } from "@0xsquid/squid-types";
2
+ import { ExecuteFiatQuoteResult, ExecuteQuoteClient, OnRampQuoteParams, OnRampTransactionStatus, OnrampConfigResponse, OnrampPaymentMethod, OnrampQuoteResponse } from "../../core/types/onramps/onramp";
3
3
  export declare class OnrampService {
4
4
  private readonly baseUrl;
5
5
  getQuote(params: OnRampQuoteParams): Promise<OnrampQuoteResponse>;
6
6
  executeQuote(params: ExecuteQuoteClient): Promise<ExecuteFiatQuoteResult>;
7
7
  getTransactionStatus(transactionId: string, walletAddress: string, providerId: string): Promise<OnRampTransactionStatus>;
8
- getConfiguration({ chains, tokens, }: {
9
- chains: ChainData[];
8
+ getConfiguration({ tokens, }: {
10
9
  tokens: Token[];
11
10
  }): Promise<OnrampConfigResponse>;
12
11
  getPaymentTypes(fiatCurrency: string, cryptoCurrencyID: string, country?: string): Promise<OnrampPaymentMethod[]>;
@@ -1,4 +1,5 @@
1
1
  import { type ChainData, type CosmosChain, type Token } from "@0xsquid/squid-types";
2
+ import { CantonConnector } from "../../core/types/canton";
2
3
  import type { TokenWithBalance } from "../../core/types/tokens";
3
4
  export declare const getTokensSupportingMultiCall: (tokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
4
5
  export declare const getAllEvmTokensBalance: (evmTokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
@@ -55,8 +56,22 @@ export declare const getSuiTokenBalance: (userAddress: string, tokenAddress: str
55
56
  export declare const getAllSuiTokensBalance: (userAddress: string, suiTokens: Token[], suiChains: ChainData[]) => Promise<TokenWithBalance[]>;
56
57
  export declare const getXrplTokenBalance: (userAddress: string, token: Pick<Token, "decimals" | "address">, chain: ChainData) => Promise<bigint>;
57
58
  export declare const getAllXrplTokensBalance: (userAddress: string, xrplTokens: Token[], xrplChains: ChainData[]) => Promise<TokenWithBalance[]>;
58
- export declare const getStellarTokenBalance: (userAddress: string, token: Pick<Token, "decimals" | "address">, chain: ChainData) => Promise<bigint>;
59
+ export declare const getStellarTokenBalance: (userAddress: string, token: Token, chain: ChainData) => Promise<bigint>;
59
60
  export declare const getAllStellarTokensBalance: (userAddress: string, stellarTokens: Token[], stellarChains: ChainData[]) => Promise<TokenWithBalance[]>;
61
+ /**
62
+ * Canton balances are private: they can only be read with a wallet-authorized
63
+ * session. Balance is fetchable only when a Canton wallet is connected, and
64
+ * only for that wallet's party — there's no address-only read.
65
+ */
66
+ export declare const getCantonTokenBalance: (userAddress: string, token: Token, cantonConnector: CantonConnector) => Promise<string>;
67
+ /**
68
+ * Fetch balances for all Canton tokens through the connected wallet.
69
+ */
70
+ export declare function getAllCantonTokensBalance({ connector, partyId, tokens, }: {
71
+ connector: CantonConnector;
72
+ partyId: string;
73
+ tokens: Token[];
74
+ }): Promise<TokenWithBalance[]>;
60
75
  /**
61
76
  * Returns a promise that resolves when the given promise resolves or after the given timeout
62
77
  * @param ms - timeout in milliseconds
@@ -1,5 +1,9 @@
1
+ import { StellarTrustLine } from "../../core/types/stellar";
2
+ import { TrustLineAsset } from "../../core/types/tokens";
1
3
  export declare class StellarApiClient {
2
4
  private apiUrl;
3
5
  constructor(apiUrl: string);
4
6
  getBaseReserve(): Promise<bigint>;
7
+ getTrustLines(userAddress: string): Promise<StellarTrustLine[]>;
8
+ getTrustLine(address: string, asset: TrustLineAsset): Promise<StellarTrustLine | null>;
5
9
  }
@@ -1,5 +1,5 @@
1
- import { Token } from "@0xsquid/squid-types";
2
1
  import { rpc, Transaction } from "@stellar/stellar-sdk";
2
+ import { StellarToken } from "../../core/types/stellar";
3
3
  import { TokenWithBalance } from "../../core/types/tokens";
4
4
  export declare class StellarRpcClient {
5
5
  private server;
@@ -11,7 +11,7 @@ export declare class StellarRpcClient {
11
11
  * and simulate the transaction to get the balance.
12
12
  */
13
13
  getBalance(userAddress: string, tokenAddress: string, chainId: string): Promise<string>;
14
- getAllBalances(userAddress: string, tokens: Token[]): Promise<Array<TokenWithBalance>>;
14
+ getAllBalances(userAddress: string, tokens: StellarToken[]): Promise<Array<TokenWithBalance>>;
15
15
  /**
16
16
  * Resolves when the transaction is confirmed, or fails after a timeout.
17
17
  */
@@ -1,3 +1,4 @@
1
+ import { TrustLineAsset } from "../../core/types/tokens";
1
2
  import { TrustLine, XrplTokenBalance, XrplTxStatus } from "../../core/types/xrpl";
2
3
  type AccountLinesRpcResponse = {
3
4
  account: string;
@@ -9,7 +10,7 @@ export declare class XrplRpcClient {
9
10
  getBalance(address: string, tokenAddress: string): Promise<string>;
10
11
  getAllBalances(address: string): Promise<XrplTokenBalance[]>;
11
12
  getTrustLines(address: string, issuer?: string): Promise<AccountLinesRpcResponse>;
12
- getTrustLine(address: string, issuer: string, currency: string): Promise<TrustLine | null>;
13
+ getTrustLine(address: string, asset: TrustLineAsset): Promise<TrustLine | null>;
13
14
  accountActivatedInfo(address: string): Promise<{
14
15
  isActivated: boolean;
15
16
  reserveBaseBn: bigint;
@@ -13,8 +13,13 @@ export * from "./internal/priceService";
13
13
  export * from "./internal/routeService";
14
14
  export * from "./internal/searchService";
15
15
  export * from "./internal/solanaService";
16
+ export { getSwapExplorerLinks, getSwapStepLink, type SwapExplorerLinksSource, type SwapExplorerLinkType, } from "./internal/status/statusExplorerLinks";
17
+ export { getDisplayedSwapStatus } from "./internal/status/statusMapping";
18
+ export { getSwapProgress, type SwapStepStatus, } from "./internal/status/statusSteps";
19
+ export * from "./internal/stellarService";
16
20
  export * from "./internal/transactionService";
17
21
  export * from "./internal/transactionStatusService";
22
+ export * from "./internal/urlParamsService";
18
23
  export * from "./internal/walletService";
19
24
  export * from "./internal/xionService";
20
25
  export * from "./internal/xrplService";
@@ -2,5 +2,3 @@ export declare const getQueryHeaders: (integratorId?: string, requestId?: string
2
2
  "X-Request-Id"?: string | undefined;
3
3
  "X-Integrator-Id"?: string | undefined;
4
4
  };
5
- export declare const getStatusCode: (error: any) => number | undefined;
6
- export declare const is404Error: (error: any) => boolean;
@@ -0,0 +1,9 @@
1
+ import type { Token } from "@0xsquid/squid-types";
2
+ export declare const arcUsdcTokenAddress = "0x3600000000000000000000000000000000000000";
3
+ export declare const isArcChain: (chainId: string | undefined) => boolean;
4
+ export declare const isArcUsdcToken: (token: Pick<Token, "chainId" | "address"> | undefined) => boolean;
5
+ export declare const convertArcGasToUsdcUnits: (fee: bigint) => bigint;
6
+ export type ArcFeeData = {
7
+ gasBalance: bigint;
8
+ gasTokenAddress: string;
9
+ };