@0xsquid/react-hooks 6.7.0-rollup-beta.1 → 6.7.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 (258) hide show
  1. package/dist/core/abis/ics20.json +128 -0
  2. package/dist/core/connectors/bitcoin/errors/index.js +22 -0
  3. package/dist/core/connectors/bitcoin/errors/index.js.map +1 -0
  4. package/dist/core/connectors/bitcoin/helpers.js +86 -0
  5. package/dist/core/connectors/bitcoin/helpers.js.map +1 -0
  6. package/dist/core/connectors/bitcoin/index.js +2 -0
  7. package/dist/core/connectors/bitcoin/index.js.map +1 -0
  8. package/dist/core/connectors/bitcoin/wallets/index.js +4 -0
  9. package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -0
  10. package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
  11. package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
  12. package/dist/core/connectors/bitcoin/wallets/phantom.js +56 -0
  13. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +1 -0
  14. package/dist/core/connectors/bitcoin/wallets/unisat.js +28 -0
  15. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +1 -0
  16. package/dist/core/constants.js +144 -0
  17. package/dist/core/constants.js.map +1 -0
  18. package/dist/core/externalLinks.js +21 -0
  19. package/dist/core/externalLinks.js.map +1 -0
  20. package/dist/core/index.js +4 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/multicall3.js +442 -0
  23. package/dist/core/multicall3.js.map +1 -0
  24. package/dist/core/providers/CosmosProvider.js +13 -0
  25. package/dist/core/providers/CosmosProvider.js.map +1 -0
  26. package/dist/core/providers/SolanaProvider.js +15 -0
  27. package/dist/core/providers/SolanaProvider.js.map +1 -0
  28. package/dist/core/providers/SuiProvider.js +15 -0
  29. package/dist/core/providers/SuiProvider.js.map +1 -0
  30. package/dist/core/queries/queries-keys.d.ts +2 -2
  31. package/dist/core/queries/queries-keys.js +206 -0
  32. package/dist/core/queries/queries-keys.js.map +1 -0
  33. package/dist/core/queries/react-query-config.js +11 -0
  34. package/dist/core/queries/react-query-config.js.map +1 -0
  35. package/dist/core/types/config.d.ts +2 -0
  36. package/dist/core/types/config.js +2 -0
  37. package/dist/core/types/config.js.map +1 -0
  38. package/dist/core/types/dex.js +33 -0
  39. package/dist/core/types/dex.js.map +1 -0
  40. package/dist/core/types/error.js +12 -0
  41. package/dist/core/types/error.js.map +1 -0
  42. package/dist/core/types/event.d.ts +5 -0
  43. package/dist/core/types/event.js +2 -0
  44. package/dist/core/types/event.js.map +1 -0
  45. package/dist/core/types/index.js +2 -0
  46. package/dist/core/types/index.js.map +1 -0
  47. package/dist/core/types/rpc.js +2 -0
  48. package/dist/core/types/rpc.js.map +1 -0
  49. package/dist/core/types/sui.js +2 -0
  50. package/dist/core/types/sui.js.map +1 -0
  51. package/dist/core/types/swap.js +2 -0
  52. package/dist/core/types/swap.js.map +1 -0
  53. package/dist/core/types/tokens.js +2 -0
  54. package/dist/core/types/tokens.js.map +1 -0
  55. package/dist/core/types/transaction.js +41 -0
  56. package/dist/core/types/transaction.js.map +1 -0
  57. package/dist/core/types/wallet.js +26 -0
  58. package/dist/core/types/wallet.js.map +1 -0
  59. package/dist/core/wagmiConfig.js +60 -0
  60. package/dist/core/wagmiConfig.js.map +1 -0
  61. package/dist/core/wallets.js +549 -0
  62. package/dist/core/wallets.js.map +1 -0
  63. package/dist/hooks/analytics/useTrackSearchEmpty.d.ts +12 -0
  64. package/dist/hooks/analytics/useTrackSearchEmpty.js +22 -0
  65. package/dist/hooks/analytics/useTrackSearchEmpty.js.map +1 -0
  66. package/dist/hooks/chains/useSquidChains.js +107 -0
  67. package/dist/hooks/chains/useSquidChains.js.map +1 -0
  68. package/dist/hooks/client/useClient.js +6 -0
  69. package/dist/hooks/client/useClient.js.map +1 -0
  70. package/dist/hooks/cosmos/useCosmos.js +172 -0
  71. package/dist/hooks/cosmos/useCosmos.js.map +1 -0
  72. package/dist/hooks/cosmos/useCosmosForChain.js +33 -0
  73. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -0
  74. package/dist/hooks/index.d.ts +5 -5
  75. package/dist/hooks/index.js +45 -0
  76. package/dist/hooks/index.js.map +1 -0
  77. package/dist/hooks/navigation/useKeyboardNavigation.js +67 -0
  78. package/dist/hooks/navigation/useKeyboardNavigation.js.map +1 -0
  79. package/dist/hooks/query/useSquidQueryClient.js +23 -0
  80. package/dist/hooks/query/useSquidQueryClient.js.map +1 -0
  81. package/dist/hooks/solana/useSolana.js +104 -0
  82. package/dist/hooks/solana/useSolana.js.map +1 -0
  83. package/dist/hooks/squid/useSquid.js +55 -0
  84. package/dist/hooks/squid/useSquid.js.map +1 -0
  85. package/dist/hooks/store/useAddressBookStore.js +26 -0
  86. package/dist/hooks/store/useAddressBookStore.js.map +1 -0
  87. package/dist/hooks/store/useAssetsColorsStore.js +7 -0
  88. package/dist/hooks/store/useAssetsColorsStore.js.map +1 -0
  89. package/dist/hooks/store/useDepositAddressStore.js +12 -0
  90. package/dist/hooks/store/useDepositAddressStore.js.map +1 -0
  91. package/dist/hooks/store/useFavoriteTokensStore.js +28 -0
  92. package/dist/hooks/store/useFavoriteTokensStore.js.map +1 -0
  93. package/dist/hooks/store/useHistoryStore.js +41 -0
  94. package/dist/hooks/store/useHistoryStore.js.map +1 -0
  95. package/dist/hooks/store/useSquidStore.js +56 -0
  96. package/dist/hooks/store/useSquidStore.js.map +1 -0
  97. package/dist/hooks/store/useWalletStore.js +42 -0
  98. package/dist/hooks/store/useWalletStore.js.map +1 -0
  99. package/dist/hooks/sui/useSui.js +28 -0
  100. package/dist/hooks/sui/useSui.js.map +1 -0
  101. package/dist/hooks/sui/useSuiClient.js +16 -0
  102. package/dist/hooks/sui/useSuiClient.js.map +1 -0
  103. package/dist/hooks/sui/useSuiWallets.js +42 -0
  104. package/dist/hooks/sui/useSuiWallets.js.map +1 -0
  105. package/dist/hooks/swap/useDepositAddress.js +63 -0
  106. package/dist/hooks/swap/useDepositAddress.js.map +1 -0
  107. package/dist/hooks/swap/useSwap.js +209 -0
  108. package/dist/hooks/swap/useSwap.js.map +1 -0
  109. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +103 -0
  110. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -0
  111. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +119 -0
  112. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -0
  113. package/dist/hooks/tokens/useBalance.js +136 -0
  114. package/dist/hooks/tokens/useBalance.js.map +1 -0
  115. package/dist/hooks/tokens/useMultiChainBalance.js +68 -0
  116. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -0
  117. package/dist/hooks/tokens/useMultipleTokenPrices.js +46 -0
  118. package/dist/hooks/tokens/useMultipleTokenPrices.js.map +1 -0
  119. package/dist/hooks/tokens/useNativeBalance.js +217 -0
  120. package/dist/hooks/tokens/useNativeBalance.js.map +1 -0
  121. package/dist/hooks/tokens/useNativeTokenForChain.js +28 -0
  122. package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -0
  123. package/dist/hooks/tokens/useSingleTokenPrice.js +38 -0
  124. package/dist/hooks/tokens/useSingleTokenPrice.js.map +1 -0
  125. package/dist/hooks/tokens/useSquidTokens.js +80 -0
  126. package/dist/hooks/tokens/useSquidTokens.js.map +1 -0
  127. package/dist/hooks/tokens/useTokenHistoricalData.js +23 -0
  128. package/dist/hooks/tokens/useTokenHistoricalData.js.map +1 -0
  129. package/dist/hooks/transaction/useAllTransactionsStatus.js +68 -0
  130. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -0
  131. package/dist/hooks/transaction/useApproval.js +223 -0
  132. package/dist/hooks/transaction/useApproval.js.map +1 -0
  133. package/dist/hooks/transaction/useErc20Allowance.js +43 -0
  134. package/dist/hooks/transaction/useErc20Allowance.js.map +1 -0
  135. package/dist/hooks/transaction/useEstimate.js +118 -0
  136. package/dist/hooks/transaction/useEstimate.js.map +1 -0
  137. package/dist/hooks/transaction/useEstimatePriceImpact.js +31 -0
  138. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +1 -0
  139. package/dist/hooks/transaction/useExecuteTransaction.js +605 -0
  140. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -0
  141. package/dist/hooks/transaction/useGetRoute.d.ts +3 -0
  142. package/dist/hooks/transaction/useGetRoute.js +230 -0
  143. package/dist/hooks/transaction/useGetRoute.js.map +1 -0
  144. package/dist/hooks/transaction/useIcs20Allowance.js +40 -0
  145. package/dist/hooks/transaction/useIcs20Allowance.js.map +1 -0
  146. package/dist/hooks/transaction/useRouteWarnings.js +19 -0
  147. package/dist/hooks/transaction/useRouteWarnings.js.map +1 -0
  148. package/dist/hooks/transaction/useSingleTransaction.js +91 -0
  149. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -0
  150. package/dist/hooks/user/useAvatar.js +34 -0
  151. package/dist/hooks/user/useAvatar.js.map +1 -0
  152. package/dist/hooks/user/useHistory.js +106 -0
  153. package/dist/hooks/user/useHistory.js.map +1 -0
  154. package/dist/hooks/user/useUserParams.js +33 -0
  155. package/dist/hooks/user/useUserParams.js.map +1 -0
  156. package/dist/hooks/wallet/useAddToken.js +49 -0
  157. package/dist/hooks/wallet/useAddToken.js.map +1 -0
  158. package/dist/hooks/wallet/useAutoConnect.js +74 -0
  159. package/dist/hooks/wallet/useAutoConnect.js.map +1 -0
  160. package/dist/hooks/wallet/useEns.js +69 -0
  161. package/dist/hooks/wallet/useEns.js.map +1 -0
  162. package/dist/hooks/wallet/useGnosisContext.js +78 -0
  163. package/dist/hooks/wallet/useGnosisContext.js.map +1 -0
  164. package/dist/hooks/wallet/useIntegratorContext.js +39 -0
  165. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -0
  166. package/dist/hooks/wallet/useMultiChainWallet.js +175 -0
  167. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -0
  168. package/dist/hooks/wallet/useSigner.js +76 -0
  169. package/dist/hooks/wallet/useSigner.js.map +1 -0
  170. package/dist/hooks/wallet/useWallet.js +206 -0
  171. package/dist/hooks/wallet/useWallet.js.map +1 -0
  172. package/dist/hooks/wallet/useWallets.js +36 -0
  173. package/dist/hooks/wallet/useWallets.js.map +1 -0
  174. package/dist/index.js +6 -17096
  175. package/dist/index.js.map +1 -1
  176. package/dist/provider/index.js +113 -0
  177. package/dist/provider/index.js.map +1 -0
  178. package/dist/services/external/ens.js +66 -0
  179. package/dist/services/external/ens.js.map +1 -0
  180. package/dist/services/external/rpcService.js +421 -0
  181. package/dist/services/external/rpcService.js.map +1 -0
  182. package/dist/{secretService-Cnn1_HQT.js → services/external/secretService.js} +8 -37
  183. package/dist/services/external/secretService.js.map +1 -0
  184. package/dist/services/external/suiRpcClient.js +80 -0
  185. package/dist/services/external/suiRpcClient.js.map +1 -0
  186. package/dist/services/external/tokenDataService.js +108 -0
  187. package/dist/services/external/tokenDataService.js.map +1 -0
  188. package/dist/services/index.js +16 -0
  189. package/dist/services/index.js.map +1 -0
  190. package/dist/services/internal/apiService.js +21 -0
  191. package/dist/services/internal/apiService.js.map +1 -0
  192. package/dist/services/internal/assetsService.js +586 -0
  193. package/dist/services/internal/assetsService.js.map +1 -0
  194. package/dist/services/internal/bitcoinService.js +51 -0
  195. package/dist/services/internal/bitcoinService.js.map +1 -0
  196. package/dist/services/internal/configService.js +218 -0
  197. package/dist/services/internal/configService.js.map +1 -0
  198. package/dist/services/internal/cosmosService.js +141 -0
  199. package/dist/services/internal/cosmosService.js.map +1 -0
  200. package/dist/services/internal/errorService.js +188 -0
  201. package/dist/services/internal/errorService.js.map +1 -0
  202. package/dist/services/internal/estimateService.js +221 -0
  203. package/dist/services/internal/estimateService.js.map +1 -0
  204. package/dist/services/internal/eventService.d.ts +5 -0
  205. package/dist/services/internal/eventService.js +163 -0
  206. package/dist/services/internal/eventService.js.map +1 -0
  207. package/dist/services/internal/evmService.js +42 -0
  208. package/dist/services/internal/evmService.js.map +1 -0
  209. package/dist/services/internal/numberService.js +171 -0
  210. package/dist/services/internal/numberService.js.map +1 -0
  211. package/dist/services/internal/priceService.js +53 -0
  212. package/dist/services/internal/priceService.js.map +1 -0
  213. package/dist/services/internal/searchService.js +98 -0
  214. package/dist/services/internal/searchService.js.map +1 -0
  215. package/dist/services/internal/solanaService.js +109 -0
  216. package/dist/services/internal/solanaService.js.map +1 -0
  217. package/dist/services/internal/suiService.js +119 -0
  218. package/dist/services/internal/suiService.js.map +1 -0
  219. package/dist/services/internal/transactionService.js +207 -0
  220. package/dist/services/internal/transactionService.js.map +1 -0
  221. package/dist/services/internal/transactionStatusService.js +315 -0
  222. package/dist/services/internal/transactionStatusService.js.map +1 -0
  223. package/dist/services/internal/walletService.js +464 -0
  224. package/dist/services/internal/walletService.js.map +1 -0
  225. package/dist/tests/apiService.test.js +40 -0
  226. package/dist/tests/apiService.test.js.map +1 -0
  227. package/dist/tests/assetsService.test.js +500 -0
  228. package/dist/tests/assetsService.test.js.map +1 -0
  229. package/dist/tests/configService.test.js +673 -0
  230. package/dist/tests/configService.test.js.map +1 -0
  231. package/dist/tests/estimateService.test.js +355 -0
  232. package/dist/tests/estimateService.test.js.map +1 -0
  233. package/dist/tests/fetchSquidData.js +36 -0
  234. package/dist/tests/fetchSquidData.js.map +1 -0
  235. package/dist/tests/jest-svg-transform.d.ts +0 -0
  236. package/dist/tests/jest-svg-transform.js +21 -0
  237. package/dist/tests/jest-svg-transform.js.map +1 -0
  238. package/dist/tests/numberService.test.js +135 -0
  239. package/dist/tests/numberService.test.js.map +1 -0
  240. package/dist/tests/priceService.test.js +38 -0
  241. package/dist/tests/priceService.test.js.map +1 -0
  242. package/dist/tests/sample.json +0 -0
  243. package/dist/tests/searchService.test.js +92 -0
  244. package/dist/tests/searchService.test.js.map +1 -0
  245. package/dist/tests/swapConfig.test.js +332 -0
  246. package/dist/tests/swapConfig.test.js.map +1 -0
  247. package/dist/tests/transactionService.test.js +53 -0
  248. package/dist/tests/transactionService.test.js.map +1 -0
  249. package/dist/tests/transactionStatusService.test.js +165 -0
  250. package/dist/tests/transactionStatusService.test.js.map +1 -0
  251. package/dist/tests/walletService.test.js +264 -0
  252. package/dist/tests/walletService.test.js.map +1 -0
  253. package/package.json +4 -18
  254. package/dist/index.esm.js +0 -16892
  255. package/dist/index.esm.js.map +0 -1
  256. package/dist/secretService-Cnn1_HQT.js.map +0 -1
  257. package/dist/secretService-DW4QetNp.js +0 -162
  258. package/dist/secretService-DW4QetNp.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address",
6
+ "name": "grantee",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "address",
11
+ "name": "granter",
12
+ "type": "address"
13
+ }
14
+ ],
15
+ "name": "allowance",
16
+ "outputs": [
17
+ {
18
+ "components": [
19
+ {
20
+ "internalType": "string",
21
+ "name": "sourcePort",
22
+ "type": "string"
23
+ },
24
+ {
25
+ "internalType": "string",
26
+ "name": "sourceChannel",
27
+ "type": "string"
28
+ },
29
+ {
30
+ "components": [
31
+ {
32
+ "internalType": "string",
33
+ "name": "denom",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "internalType": "uint256",
38
+ "name": "amount",
39
+ "type": "uint256"
40
+ }
41
+ ],
42
+ "internalType": "struct Coin[]",
43
+ "name": "spendLimit",
44
+ "type": "tuple[]"
45
+ },
46
+ {
47
+ "internalType": "string[]",
48
+ "name": "allowList",
49
+ "type": "string[]"
50
+ },
51
+ {
52
+ "internalType": "string[]",
53
+ "name": "allowedPacketData",
54
+ "type": "string[]"
55
+ }
56
+ ],
57
+ "internalType": "struct ICS20Allocation[]",
58
+ "name": "allocations",
59
+ "type": "tuple[]"
60
+ }
61
+ ],
62
+ "stateMutability": "view",
63
+ "type": "function"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "address",
69
+ "name": "grantee",
70
+ "type": "address"
71
+ },
72
+ {
73
+ "components": [
74
+ {
75
+ "internalType": "string",
76
+ "name": "sourcePort",
77
+ "type": "string"
78
+ },
79
+ {
80
+ "internalType": "string",
81
+ "name": "sourceChannel",
82
+ "type": "string"
83
+ },
84
+ {
85
+ "components": [
86
+ {
87
+ "internalType": "string",
88
+ "name": "denom",
89
+ "type": "string"
90
+ },
91
+ {
92
+ "internalType": "uint256",
93
+ "name": "amount",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "internalType": "struct Coin[]",
98
+ "name": "spendLimit",
99
+ "type": "tuple[]"
100
+ },
101
+ {
102
+ "internalType": "string[]",
103
+ "name": "allowList",
104
+ "type": "string[]"
105
+ },
106
+ {
107
+ "internalType": "string[]",
108
+ "name": "allowedPacketData",
109
+ "type": "string[]"
110
+ }
111
+ ],
112
+ "internalType": "struct ICS20Allocation[]",
113
+ "name": "allocations",
114
+ "type": "tuple[]"
115
+ }
116
+ ],
117
+ "name": "approve",
118
+ "outputs": [
119
+ {
120
+ "internalType": "bool",
121
+ "name": "approved",
122
+ "type": "bool"
123
+ }
124
+ ],
125
+ "stateMutability": "nonpayable",
126
+ "type": "function"
127
+ }
128
+ ]
@@ -0,0 +1,22 @@
1
+ class BitcoinConnectorError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = "BitcoinConnectorError";
5
+ }
6
+ }
7
+ export class BitcoinConnectorProviderNotFoundError extends BitcoinConnectorError {
8
+ constructor(providerName) {
9
+ super(`Bitcoin provider ${providerName} not found`);
10
+ }
11
+ }
12
+ export class BitcoinConnectorTransactionFailedError extends BitcoinConnectorError {
13
+ constructor() {
14
+ super("Bitcoin transaction failed");
15
+ }
16
+ }
17
+ export class BitcoinConnectorInvalidAccountError extends BitcoinConnectorError {
18
+ constructor() {
19
+ super("Bitcoin account is invalid");
20
+ }
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/errors/index.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAsB,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,qCAAsC,SAAQ,qBAAqB;IAC9E,YAAY,YAAoB;QAC9B,KAAK,CAAC,oBAAoB,YAAY,YAAY,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,sCAAuC,SAAQ,qBAAqB;IAC/E;QACE,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,mCAAoC,SAAQ,qBAAqB;IAC5E;QACE,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,86 @@
1
+ import * as ecc from "@bitcoinerlab/secp256k1";
2
+ import axios from "axios";
3
+ import * as bitcoin from "bitcoinjs-lib";
4
+ bitcoin.initEccLib(ecc);
5
+ const network = bitcoin.networks.bitcoin;
6
+ export const fromHexString = (hexString) => {
7
+ const matches = hexString.match(/.{1,2}/g);
8
+ if (!matches) {
9
+ throw new Error("Invalid hex string");
10
+ }
11
+ return Uint8Array.from(matches.map((byte) => parseInt(byte, 16)));
12
+ };
13
+ export async function createSendBtcPsbt(senderAddress, recipientAddress, amount) {
14
+ const feeRate = await getFeeRate();
15
+ const utxos = await getAddressUtxos(senderAddress);
16
+ if (!utxos) {
17
+ throw new Error("No UTXOs found");
18
+ }
19
+ // Sort UTXOs by value in descending order
20
+ // This ensures that we select the UTXOs with the highest value first
21
+ // to optimize the transaction size
22
+ const sortedUtxos = utxos.sort((a, b) => b.value - a.value);
23
+ // Sum up the values of the UTXOs up to the desired amount
24
+ let inputAmount = 0;
25
+ const inputs = [];
26
+ for (const utxo of sortedUtxos) {
27
+ inputAmount += utxo.value;
28
+ inputs.push(utxo);
29
+ if (inputAmount >= amount)
30
+ break;
31
+ }
32
+ if (inputAmount < amount)
33
+ throw new Error("Insufficient balance");
34
+ const outputsCount = 2; // Only two outputs, recipient and change outputs
35
+ // Calculate fee based on the byte size of the total inputs and outputs
36
+ // Approximate transaction size = (inputs * 150 bytes + outputs * 34 bytes + 10 bytes overhead)
37
+ const transactionSize = inputs.length * 150 + outputsCount * 34 + 10;
38
+ const fee = feeRate * transactionSize;
39
+ const satsNeeded = fee + amount;
40
+ const psbt = new bitcoin.Psbt({ network });
41
+ let amountGathered = 0;
42
+ for (const utxo of sortedUtxos) {
43
+ const { txid, vout, value } = utxo;
44
+ const script = bitcoin.address.toOutputScript(senderAddress, network);
45
+ psbt.addInput({
46
+ hash: txid,
47
+ index: vout,
48
+ witnessUtxo: {
49
+ script,
50
+ value: BigInt(value),
51
+ },
52
+ });
53
+ amountGathered += value;
54
+ if (amountGathered >= satsNeeded) {
55
+ break;
56
+ }
57
+ }
58
+ psbt.addOutput({
59
+ address: recipientAddress,
60
+ value: BigInt(amount),
61
+ });
62
+ if (amountGathered > satsNeeded) {
63
+ psbt.addOutput({
64
+ address: senderAddress,
65
+ value: BigInt(amountGathered - satsNeeded),
66
+ });
67
+ }
68
+ return {
69
+ psbtHex: psbt.toHex(),
70
+ };
71
+ }
72
+ export async function broadcastTx(txHex) {
73
+ return axios
74
+ .post(`https://mempool.space/api/tx`, txHex)
75
+ .then((res) => res.data);
76
+ }
77
+ async function getAddressUtxos(address) {
78
+ return axios
79
+ .get(`https://mempool.space/api/address/${address}/utxo`)
80
+ .then((response) => response.data);
81
+ }
82
+ async function getFeeRate() {
83
+ const response = await axios.get("https://mempool.space/api/v1/fees/recommended");
84
+ return response.data.halfHourFee;
85
+ }
86
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/connectors/bitcoin/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./wallets";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/connectors/bitcoin/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { KeplrConnector } from "./keplr";
2
+ export { PhantomConnector } from "./phantom";
3
+ export { UnisatConnector } from "./unisat";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { BitcoinConnectorInvalidAccountError, BitcoinConnectorProviderNotFoundError, BitcoinConnectorTransactionFailedError, } from "../errors";
2
+ export class KeplrConnector {
3
+ get getProvider() {
4
+ const provider = window?.bitcoin_keplr;
5
+ if (!provider) {
6
+ throw new BitcoinConnectorProviderNotFoundError("Keplr");
7
+ }
8
+ return provider;
9
+ }
10
+ async sendBTC(to, amount) {
11
+ const txHash = await this.getProvider.sendBitcoin(to, amount);
12
+ if (!txHash) {
13
+ throw new BitcoinConnectorTransactionFailedError();
14
+ }
15
+ return { txHash };
16
+ }
17
+ async requestAccount() {
18
+ const accounts = await this.getProvider.requestAccounts();
19
+ const account = accounts[0];
20
+ if (typeof account !== "string") {
21
+ throw new BitcoinConnectorInvalidAccountError();
22
+ }
23
+ return {
24
+ address: account,
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=keplr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keplr.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/keplr.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mCAAmC,EACnC,qCAAqC,EACrC,sCAAsC,GACvC,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,cAAc;IACzB,IAAW,WAAW;QACpB,MAAM,QAAQ,GAAI,MAAc,EAAE,aAAa,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAC;SAC1D;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,sCAAsC,EAAE,CAAC;SACpD;QAED,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEpE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,mCAAmC,EAAE,CAAC;SACjD;QAED,OAAO;YACL,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,56 @@
1
+ import * as bitcoin from "bitcoinjs-lib";
2
+ import { BitcoinConnectorInvalidAccountError, BitcoinConnectorProviderNotFoundError, BitcoinConnectorTransactionFailedError, } from "../errors";
3
+ import { broadcastTx, createSendBtcPsbt, fromHexString } from "../helpers";
4
+ const MAINNET = bitcoin.networks.bitcoin;
5
+ export class PhantomConnector {
6
+ get getProvider() {
7
+ const provider = window?.phantom?.bitcoin;
8
+ if (!provider) {
9
+ throw new BitcoinConnectorProviderNotFoundError("Phantom");
10
+ }
11
+ return provider;
12
+ }
13
+ async requestAccount() {
14
+ const phantomAccounts = await this.getProvider.requestAccounts();
15
+ if (!phantomAccounts)
16
+ throw new BitcoinConnectorInvalidAccountError();
17
+ const paymentAccount = phantomAccounts.find((account) => account.purpose === "payment");
18
+ if (typeof paymentAccount?.address !== "string") {
19
+ throw new BitcoinConnectorInvalidAccountError();
20
+ }
21
+ return {
22
+ address: paymentAccount.address,
23
+ };
24
+ }
25
+ async sendBTC(to, amount) {
26
+ const { address } = await this.requestAccount();
27
+ const { psbtHex } = await createSendBtcPsbt(address, to, amount);
28
+ const { txId } = await this.signPsbt(psbtHex);
29
+ if (!txId)
30
+ throw new BitcoinConnectorTransactionFailedError();
31
+ return { txHash: txId };
32
+ }
33
+ async signPsbt(psbtHex) {
34
+ const { address: paymentAddress } = await this.requestAccount();
35
+ const toSignPsbt = bitcoin.Psbt.fromHex(String(psbtHex), {
36
+ network: MAINNET,
37
+ });
38
+ const inputs = toSignPsbt.data.inputs;
39
+ const inputsToSign = [
40
+ {
41
+ // Need to sign each input with the payment address
42
+ address: paymentAddress,
43
+ signingIndexes: inputs.map((_, index) => index),
44
+ },
45
+ ];
46
+ const signedPsbtBytes = await this.getProvider.signPSBT(fromHexString(psbtHex), {
47
+ inputsToSign,
48
+ });
49
+ const signedPsbt = bitcoin.Psbt.fromBuffer(signedPsbtBytes);
50
+ signedPsbt.finalizeAllInputs();
51
+ const tx = signedPsbt.extractTransaction();
52
+ const txId = await broadcastTx(tx.toHex());
53
+ return { txId };
54
+ }
55
+ }
56
+ //# sourceMappingURL=phantom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phantom.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/phantom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAEzC,OAAO,EACL,mCAAmC,EACnC,qCAAqC,EACrC,sCAAsC,GACvC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;AAsBzC,MAAM,OAAO,gBAAgB;IAC3B,IAAW,WAAW;QACpB,MAAM,QAAQ,GAAI,MAAc,EAAE,OAAO,EAAE,OAAO,CAAC;QAEnD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,qCAAqC,CAAC,SAAS,CAAC,CAAC;SAC5D;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEjE,IAAI,CAAC,eAAe;YAAE,MAAM,IAAI,mCAAmC,EAAE,CAAC;QAEtE,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CACzC,CAAC,OAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAChE,CAAC;QAEF,IAAI,OAAO,cAAc,EAAE,OAAO,KAAK,QAAQ,EAAE;YAC/C,MAAM,IAAI,mCAAmC,EAAE,CAAC;SACjD;QAED,OAAO;YACL,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAc;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,sCAAsC,EAAE,CAAC;QAE9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAAe;QAGpC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACvD,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,YAAY,GAAG;YACnB;gBACE,mDAAmD;gBACnD,OAAO,EAAE,cAAc;gBACvB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;aAChD;SACF,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CACrD,aAAa,CAAC,OAAO,CAAC,EACtB;YACE,YAAY;SACb,CACF,CAAC;QAEF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE5D,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,EAAE,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAE3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3C,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { BitcoinConnectorInvalidAccountError, BitcoinConnectorProviderNotFoundError, BitcoinConnectorTransactionFailedError, } from "../errors";
2
+ export class UnisatConnector {
3
+ get getProvider() {
4
+ const provider = window?.unisat;
5
+ if (!provider) {
6
+ throw new BitcoinConnectorProviderNotFoundError("Unisat");
7
+ }
8
+ return provider;
9
+ }
10
+ async sendBTC(to, amount) {
11
+ const txHash = await this.getProvider.sendBitcoin(to, amount);
12
+ if (!txHash) {
13
+ throw new BitcoinConnectorTransactionFailedError();
14
+ }
15
+ return { txHash };
16
+ }
17
+ async requestAccount() {
18
+ const accounts = await this.getProvider.requestAccounts();
19
+ const account = accounts[0];
20
+ if (typeof account !== "string") {
21
+ throw new BitcoinConnectorInvalidAccountError();
22
+ }
23
+ return {
24
+ address: account,
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=unisat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unisat.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/unisat.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mCAAmC,EACnC,qCAAqC,EACrC,sCAAsC,GACvC,MAAM,WAAW,CAAC;AAOnB,MAAM,OAAO,eAAe;IAC1B,IAAW,WAAW;QACpB,MAAM,QAAQ,GAAI,MAAc,EAAE,MAAM,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,qCAAqC,CAAC,QAAQ,CAAC,CAAC;SAC3D;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAc;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,sCAAsC,EAAE,CAAC;SACpD;QAED,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEpE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,mCAAmC,EAAE,CAAC;SACjD;QAED,OAAO;YACL,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,144 @@
1
+ "use client";
2
+ import { ChainType } from "@0xsquid/squid-types";
3
+ import { zeroAddress as evmZeroAddress } from "viem";
4
+ import { squidApiBaseUrl } from "./externalLinks";
5
+ export const DEFAULT_LOCALE = "en-US";
6
+ const btcZeroAddress = "bc1qcdyjau30xhw26h2egcfklwyyyskafhp9x8qtg2";
7
+ const cosmosZeroAddress = "osmo1awrua7e2kj69d7vn5qt5tccrhavmj9xa6y8hhu";
8
+ const solanaZeroAddress = "AuF3k2X5CsXJiXo7YKL5jxDG3gmf9MjaVK8hqt7Kfes1";
9
+ const suiZeroAddress = "0x0000000000000000000000000000000000000000";
10
+ export const chainTypeToZeroAddressMap = {
11
+ [ChainType.EVM]: evmZeroAddress,
12
+ [ChainType.COSMOS]: cosmosZeroAddress,
13
+ [ChainType.BTC]: btcZeroAddress,
14
+ [ChainType.SOLANA]: solanaZeroAddress,
15
+ [ChainType.SUI]: suiZeroAddress,
16
+ };
17
+ export const nativeEvmTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
18
+ export const nativeCosmosTokenAddress = "uosmo";
19
+ export const nativeSolanaTokenAddress = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
20
+ export const nativeBitcoinTokenAddress = "satoshi";
21
+ export const nativeSuiTokenAddress = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
22
+ export const maxPriceImpact = 30;
23
+ export const limitTradeSizeUsd = 10000000;
24
+ // by setting slippage to undefined, it's set to "auto"
25
+ export const defaultSlippage = undefined;
26
+ export const destinationAddressResetValue = "null";
27
+ export const fallbackAddressResetValue = "null";
28
+ export const gasRefundMultiplier = 25;
29
+ export const transparentClass = "tw-bg-opacity-80";
30
+ export const subTransparentClass = "tw-bg-opacity-50";
31
+ export const internalSquidApiBaseUrl = "https://app.squidrouter.com/api";
32
+ export const TOKEN_PRICE_API_URL = `https://beta.app.squidrouter.com/api/coingecko`;
33
+ export const SOLANA_RPC_URL = "https://meredith-ute2ko-fast-mainnet.helius-rpc.com";
34
+ export const INTEGRATOR_ID = "squid-widget-playground-local-cd33cba6-7e12-4fcc-8d5d-35e286f655ea";
35
+ export const CHAIN_IDS = {
36
+ // Cosmos
37
+ OSMOSIS: "osmosis-1",
38
+ INJECTIVE: "injective-1",
39
+ SECRET: "secret-4",
40
+ ARCHWAY: "archway-1",
41
+ XION: "xion-mainnet-1",
42
+ KAVA_IBC: "kava_2222-10",
43
+ TERRA: "phoenix-1",
44
+ C4E: "perun-1",
45
+ FETCH: "fetchhub-4",
46
+ KI: "kichain-2",
47
+ SEI: "pacific-1",
48
+ MIGALOO: "migaloo-1",
49
+ UMEE: "umee-1",
50
+ PERSISTENCE: "core-1",
51
+ NOBLE: "noble-1",
52
+ // EVM
53
+ ETHEREUM: "1",
54
+ ETHEREUM_SEPOLIA: "11155111",
55
+ ARBITRUM: "42161",
56
+ BSC: "56",
57
+ BASE: "8453",
58
+ OPTIMISM: "10",
59
+ LINEA: "59144",
60
+ BLAST: "81457",
61
+ CELO: "42220",
62
+ POLYGON: "137",
63
+ AVALANCHE: "43114",
64
+ IMMUTABLE: "13371",
65
+ SCROLL: "534352",
66
+ MOONBEAM: "1284",
67
+ MANTLE: "5000",
68
+ FANTOM: "250",
69
+ KAVA: "2222",
70
+ FILECOIN: "314",
71
+ BERACHAIN: "80094",
72
+ // others
73
+ BITCOIN: "bitcoin",
74
+ SOLANA: "solana-mainnet-beta",
75
+ SUI: "sui-mainnet",
76
+ SUI_TESTNET: "sui-testnet",
77
+ };
78
+ export const chainTypeToDefaultChainIdMap = {
79
+ [ChainType.EVM]: CHAIN_IDS.ETHEREUM,
80
+ [ChainType.COSMOS]: CHAIN_IDS.OSMOSIS,
81
+ [ChainType.BTC]: CHAIN_IDS.BITCOIN,
82
+ [ChainType.SOLANA]: CHAIN_IDS.SOLANA,
83
+ [ChainType.SUI]: CHAIN_IDS.SUI,
84
+ };
85
+ export const chainTypeToNativeTokenAddressMap = {
86
+ [ChainType.EVM]: nativeEvmTokenAddress,
87
+ [ChainType.COSMOS]: nativeCosmosTokenAddress,
88
+ [ChainType.BTC]: nativeBitcoinTokenAddress,
89
+ [ChainType.SOLANA]: nativeSolanaTokenAddress,
90
+ [ChainType.SUI]: nativeSuiTokenAddress,
91
+ };
92
+ export const widgetHeaderSize = {
93
+ height: 60,
94
+ paddingY: 16,
95
+ };
96
+ export const defaultConfigValues = {
97
+ integratorId: INTEGRATOR_ID,
98
+ slippage: defaultSlippage,
99
+ apiUrl: squidApiBaseUrl,
100
+ priceImpactWarnings: {
101
+ warning: 3,
102
+ critical: 5,
103
+ },
104
+ };
105
+ export var PriorityConnectors;
106
+ (function (PriorityConnectors) {
107
+ PriorityConnectors["Safe"] = "safe";
108
+ PriorityConnectors["LedgerLive"] = "ledgerLive";
109
+ })(PriorityConnectors || (PriorityConnectors = {}));
110
+ // Success
111
+ const cctpSuccessStatuses = ["complete"];
112
+ const chainflipSuccessStatuses = ["COMPLETE"];
113
+ const solanaSameChainSuccessStatuses = ["finalized"];
114
+ const axelarSuccessStatuses = [
115
+ "destination_executed",
116
+ "executed",
117
+ "express_executed",
118
+ "success",
119
+ ];
120
+ // Error
121
+ const axelarErrorStatuses = [
122
+ "error_fetching_status",
123
+ "error",
124
+ "failed_on_destination",
125
+ ];
126
+ const chainflipErrorStatuses = ["BROADCAST_ABORTED"];
127
+ // Refunded
128
+ export const transactionRefundedStatuses = ["refunded"];
129
+ export const transactionErrorStatuses = [
130
+ ...axelarErrorStatuses,
131
+ ...chainflipErrorStatuses,
132
+ ];
133
+ export const transactionSuccessStatuses = [
134
+ ...cctpSuccessStatuses,
135
+ ...axelarSuccessStatuses,
136
+ ...chainflipSuccessStatuses,
137
+ ...solanaSameChainSuccessStatuses,
138
+ ];
139
+ export const transactionEndStatuses = [
140
+ ...transactionSuccessStatuses,
141
+ ...transactionRefundedStatuses,
142
+ ...transactionErrorStatuses,
143
+ ];
144
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ // Squid Links
2
+ export const squidMainLink = "https://www.squidrouter.com/";
3
+ export const squidDocLink = "https://docs.widget.squidrouter.com/";
4
+ export const squidApiBaseUrl = "https://api.uatsquidrouter.com";
5
+ export const squidDiscordLink = "https://discord.gg/squidrouter";
6
+ export const squidSupportLink = "https://support.squidrouter.com";
7
+ export const squidHelpLink = `${squidDocLink}troubleshooting#additional-support`;
8
+ export const squidSlippageToleranceLink = `${squidDocLink}settings#slippage-tolerance`;
9
+ export const squidAxlUSDCWarningLink = `${squidDocLink}troubleshooting#you-received-axlusdc-unexpectedly`;
10
+ export const squidTrackingDataUnavailableLink = `${squidDocLink}troubleshooting#tracking-data-unavailable`;
11
+ export const squidGasFeesRefundLink = `${squidDocLink}gas-fees#gas-refunds`;
12
+ // Axelar Links
13
+ export const axelarTokenDataUrl = "https://axelar-mainnet.s3.us-east-2.amazonaws.com/mainnet-config.json";
14
+ export const axelarMainLink = "https://axelar.network/";
15
+ export const axelarPoweredByLink = "https://axelar.network/?utm_source=dynamic&utm_medium=referral&utm_campaign=squidrouter-widget";
16
+ // Other links
17
+ export const defaultFiatOnRamp = {
18
+ name: "Kado",
19
+ link: "https://app.kado.money?apiKey=4dcd0735-f55e-4063-a862-734158decbfe",
20
+ };
21
+ //# sourceMappingURL=externalLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalLinks.js","sourceRoot":"","sources":["../../src/core/externalLinks.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,CAAC,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,sCAAsC,CAAC;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,YAAY,oCAAoC,CAAC;AACjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,YAAY,6BAA6B,CAAC;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,YAAY,mDAAmD,CAAC;AAC1G,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,YAAY,2CAA2C,CAAC;AAC3G,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,YAAY,sBAAsB,CAAC;AAE5E,eAAe;AACf,MAAM,CAAC,MAAM,kBAAkB,GAC7B,uEAAuE,CAAC;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAC9B,gGAAgG,CAAC;AAEnG,cAAc;AACd,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,oEAAoE;CAC3E,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CHAIN_IDS, chainTypeToNativeTokenAddressMap, chainTypeToZeroAddressMap, DEFAULT_LOCALE, destinationAddressResetValue, fallbackAddressResetValue, nativeBitcoinTokenAddress, nativeCosmosTokenAddress, nativeEvmTokenAddress, nativeSolanaTokenAddress, nativeSuiTokenAddress, } from "./constants";
2
+ export { CosmosProvider, useCosmosContext } from "./providers/CosmosProvider";
3
+ export * from "./types";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gCAAgC,EAChC,yBAAyB,EACzB,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,cAAc,SAAS,CAAC"}