@0xsquid/react-hooks 4.0.2-beta.6 → 4.0.3

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 (136) hide show
  1. package/dist/core/constants.d.ts +0 -20
  2. package/dist/core/constants.js +0 -37
  3. package/dist/core/constants.js.map +1 -1
  4. package/dist/core/externalLinks.d.ts +1 -1
  5. package/dist/core/externalLinks.js +1 -1
  6. package/dist/core/externalLinks.js.map +1 -1
  7. package/dist/core/index.d.ts +0 -1
  8. package/dist/core/index.js +0 -1
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/queries/queries-keys.d.ts +1 -1
  11. package/dist/core/queries/queries-keys.js +1 -3
  12. package/dist/core/queries/queries-keys.js.map +1 -1
  13. package/dist/core/types/swap.d.ts +0 -1
  14. package/dist/core/types/transaction.d.ts +4 -3
  15. package/dist/core/types/transaction.js +0 -1
  16. package/dist/core/types/transaction.js.map +1 -1
  17. package/dist/core/types/wallet.d.ts +2 -11
  18. package/dist/core/types/wallet.js +0 -3
  19. package/dist/core/types/wallet.js.map +1 -1
  20. package/dist/core/wallets.js +1 -50
  21. package/dist/core/wallets.js.map +1 -1
  22. package/dist/hooks/cosmos/useCosmos.js +1 -2
  23. package/dist/hooks/cosmos/useCosmos.js.map +1 -1
  24. package/dist/hooks/cosmos/useCosmosForChain.js +2 -1
  25. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -1
  26. package/dist/hooks/index.d.ts +0 -2
  27. package/dist/hooks/index.js +0 -2
  28. package/dist/hooks/index.js.map +1 -1
  29. package/dist/hooks/store/useHistoryStore.d.ts +4 -3
  30. package/dist/hooks/store/useHistoryStore.js.map +1 -1
  31. package/dist/hooks/store/useWalletStore.js +0 -1
  32. package/dist/hooks/store/useWalletStore.js.map +1 -1
  33. package/dist/hooks/swap/useSwap.d.ts +1 -1
  34. package/dist/hooks/swap/useSwap.js +23 -9
  35. package/dist/hooks/swap/useSwap.js.map +1 -1
  36. package/dist/hooks/tokens/useAllConnectedWalletBalances.js +1 -26
  37. package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
  38. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +5 -16
  39. package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
  40. package/dist/hooks/tokens/useBalance.d.ts +1 -122
  41. package/dist/hooks/tokens/useBalance.js +0 -25
  42. package/dist/hooks/tokens/useBalance.js.map +1 -1
  43. package/dist/hooks/tokens/useMultiChainBalance.js +7 -24
  44. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
  45. package/dist/hooks/tokens/useNativeBalance.d.ts +1 -11
  46. package/dist/hooks/tokens/useNativeBalance.js +11 -81
  47. package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
  48. package/dist/hooks/tokens/useSquidTokens.d.ts +1 -3
  49. package/dist/hooks/tokens/useSquidTokens.js +2 -10
  50. package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
  51. package/dist/hooks/transaction/useAllTransactionsStatus.js +4 -12
  52. package/dist/hooks/transaction/useAllTransactionsStatus.js.map +1 -1
  53. package/dist/hooks/transaction/useEstimate.d.ts +2 -2
  54. package/dist/hooks/transaction/useExecuteTransaction.d.ts +2 -2
  55. package/dist/hooks/transaction/useExecuteTransaction.js +20 -191
  56. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  57. package/dist/hooks/transaction/useGetRoute.d.ts +9 -13
  58. package/dist/hooks/transaction/useGetRoute.js +9 -27
  59. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  60. package/dist/hooks/transaction/useSingleTransaction.d.ts +1 -1
  61. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -1
  62. package/dist/hooks/user/useHistory.js +8 -4
  63. package/dist/hooks/user/useHistory.js.map +1 -1
  64. package/dist/hooks/wallet/useMultiChainWallet.js +11 -34
  65. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
  66. package/dist/hooks/wallet/useSigner.d.ts +0 -4
  67. package/dist/hooks/wallet/useSigner.js +0 -22
  68. package/dist/hooks/wallet/useSigner.js.map +1 -1
  69. package/dist/hooks/wallet/useWallet.js +12 -44
  70. package/dist/hooks/wallet/useWallet.js.map +1 -1
  71. package/dist/provider/index.js +1 -3
  72. package/dist/provider/index.js.map +1 -1
  73. package/dist/services/external/rpcService.d.ts +1 -9
  74. package/dist/services/external/rpcService.js +1 -119
  75. package/dist/services/external/rpcService.js.map +1 -1
  76. package/dist/services/index.d.ts +0 -3
  77. package/dist/services/index.js +0 -3
  78. package/dist/services/index.js.map +1 -1
  79. package/dist/services/internal/assetsService.d.ts +12 -7
  80. package/dist/services/internal/assetsService.js +11 -14
  81. package/dist/services/internal/assetsService.js.map +1 -1
  82. package/dist/services/internal/estimateService.d.ts +10 -3
  83. package/dist/services/internal/estimateService.js +14 -4
  84. package/dist/services/internal/estimateService.js.map +1 -1
  85. package/dist/services/internal/transactionService.d.ts +9 -9
  86. package/dist/services/internal/transactionService.js +11 -20
  87. package/dist/services/internal/transactionService.js.map +1 -1
  88. package/dist/services/internal/walletService.d.ts +55 -3
  89. package/dist/services/internal/walletService.js +151 -19
  90. package/dist/services/internal/walletService.js.map +1 -1
  91. package/dist/tests/estimateService.test.js +48 -3
  92. package/dist/tests/estimateService.test.js.map +1 -1
  93. package/dist/tests/swapConfig.test.js +18 -55
  94. package/dist/tests/swapConfig.test.js.map +1 -1
  95. package/dist/tests/walletService.test.js +1 -0
  96. package/dist/tests/walletService.test.js.map +1 -1
  97. package/package.json +9 -13
  98. package/dist/core/connectors/bitcoin/helpers.d.ts +0 -5
  99. package/dist/core/connectors/bitcoin/helpers.js +0 -86
  100. package/dist/core/connectors/bitcoin/helpers.js.map +0 -1
  101. package/dist/core/connectors/bitcoin/index.d.ts +0 -6
  102. package/dist/core/connectors/bitcoin/index.js +0 -2
  103. package/dist/core/connectors/bitcoin/index.js.map +0 -1
  104. package/dist/core/connectors/bitcoin/wallets/index.d.ts +0 -2
  105. package/dist/core/connectors/bitcoin/wallets/index.js +0 -3
  106. package/dist/core/connectors/bitcoin/wallets/index.js.map +0 -1
  107. package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +0 -19
  108. package/dist/core/connectors/bitcoin/wallets/phantom.js +0 -54
  109. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +0 -1
  110. package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +0 -11
  111. package/dist/core/connectors/bitcoin/wallets/unisat.js +0 -16
  112. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +0 -1
  113. package/dist/core/providers/SolanaProvider.d.ts +0 -28
  114. package/dist/core/providers/SolanaProvider.js +0 -15
  115. package/dist/core/providers/SolanaProvider.js.map +0 -1
  116. package/dist/hooks/solana/useSolana.d.ts +0 -27
  117. package/dist/hooks/solana/useSolana.js +0 -86
  118. package/dist/hooks/solana/useSolana.js.map +0 -1
  119. package/dist/hooks/swap/useDepositAddress.d.ts +0 -19
  120. package/dist/hooks/swap/useDepositAddress.js +0 -86
  121. package/dist/hooks/swap/useDepositAddress.js.map +0 -1
  122. package/dist/hooks/tokens/useNativeTokenForChain.d.ts +0 -4
  123. package/dist/hooks/tokens/useNativeTokenForChain.js +0 -26
  124. package/dist/hooks/tokens/useNativeTokenForChain.js.map +0 -1
  125. package/dist/services/internal/bitcoinService.d.ts +0 -14
  126. package/dist/services/internal/bitcoinService.js +0 -68
  127. package/dist/services/internal/bitcoinService.js.map +0 -1
  128. package/dist/services/internal/cosmosService.d.ts +0 -37
  129. package/dist/services/internal/cosmosService.js +0 -97
  130. package/dist/services/internal/cosmosService.js.map +0 -1
  131. package/dist/services/internal/evmService.d.ts +0 -16
  132. package/dist/services/internal/evmService.js +0 -40
  133. package/dist/services/internal/evmService.js.map +0 -1
  134. package/dist/services/internal/solanaService.d.ts +0 -41
  135. package/dist/services/internal/solanaService.js +0 -82
  136. package/dist/services/internal/solanaService.js.map +0 -1
@@ -1,86 +0,0 @@
1
- import { useMutation } from "@tanstack/react-query";
2
- import { useCallback, useMemo } from "react";
3
- import { create } from "zustand";
4
- import { CHAIN_IDS } from "../../core";
5
- import { useSquidChains } from "../chains/useSquidChains";
6
- import { useSquidTokens } from "../tokens/useSquidTokens";
7
- import { useGetRoute } from "../transaction/useGetRoute";
8
- import { useSwap } from "./useSwap";
9
- const useDepositAddressStore = create(() => ({
10
- isEnabled: false,
11
- shouldOpenDepositChannel: false,
12
- }));
13
- export function useDepositAddress() {
14
- const isEnabled = useDepositAddressStore((state) => state.isEnabled);
15
- const { findToken } = useSquidTokens();
16
- const { findChain } = useSquidChains();
17
- const shouldOpenDepositChannel = useDepositAddressStore((state) => state.shouldOpenDepositChannel);
18
- const getRouteMutation = useGetRoute();
19
- const { fromChain, toChain } = useSwap();
20
- const isAvailableAsPaymentMethod = useMemo(() => {
21
- if (!fromChain?.chainId)
22
- return false;
23
- const chainsSupportingDepositAddress = [
24
- CHAIN_IDS.BITCOIN.mainnet,
25
- CHAIN_IDS.SOLANA.mainnet,
26
- ];
27
- return chainsSupportingDepositAddress.includes(fromChain.chainId);
28
- }, [fromChain?.chainId]);
29
- const swapWillGenerateDepositAddress = useMemo(() => {
30
- if (!fromChain?.chainId || !toChain?.chainId)
31
- return false;
32
- const chainsSupportingDepositAddress = [
33
- CHAIN_IDS.BITCOIN.mainnet,
34
- CHAIN_IDS.SOLANA.mainnet,
35
- ];
36
- return (chainsSupportingDepositAddress.includes(fromChain.chainId) &&
37
- fromChain.chainId !== toChain.chainId);
38
- }, [fromChain?.chainId, toChain?.chainId]);
39
- const enable = useCallback(() => {
40
- useDepositAddressStore.setState({ isEnabled: true });
41
- }, []);
42
- const disable = useCallback(() => {
43
- useDepositAddressStore.setState({ isEnabled: false });
44
- }, []);
45
- const openDepositChannel = useCallback(async () => {
46
- useDepositAddressStore.setState({
47
- shouldOpenDepositChannel: true,
48
- });
49
- }, []);
50
- const closeDepositChannel = useCallback(async () => {
51
- useDepositAddressStore.setState({
52
- shouldOpenDepositChannel: false,
53
- });
54
- }, []);
55
- const getRouteWithDeposit = useMutation(async ({ squidRoute, fromPrice, // We need the non-formatted fromPrice because the mutation will format using token decimals
56
- }) => {
57
- const fromToken = findToken(squidRoute.params.fromToken, fromChain?.chainId);
58
- const toToken = findToken(squidRoute.params.toToken, toChain?.chainId);
59
- const squidRouteFromChain = findChain(squidRoute.params.fromChain);
60
- const route = await getRouteMutation.mutateAsync({
61
- fromChain: squidRoute.params.fromChain,
62
- toChain: squidRoute.params.toChain,
63
- fromToken,
64
- toToken,
65
- sourceUserAddress: squidRoute.params.fromAddress,
66
- destinationAddress: squidRoute.params.toAddress,
67
- fromPrice,
68
- bypassGuardrails: squidRoute.params.bypassGuardrails,
69
- quoteOnly: false,
70
- fromChainType: squidRouteFromChain?.chainType,
71
- });
72
- return route;
73
- });
74
- return {
75
- isEnabled,
76
- isAvailableAsPaymentMethod,
77
- swapWillGenerateDepositAddress,
78
- enable,
79
- disable,
80
- openDepositChannel,
81
- closeDepositChannel,
82
- shouldOpenDepositChannel,
83
- getRouteWithDeposit,
84
- };
85
- }
86
- //# sourceMappingURL=useDepositAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDepositAddress.js","sourceRoot":"","sources":["../../../src/hooks/swap/useDepositAddress.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ChainData } from "@0xsquid/squid-types";
2
- export declare function useNativeTokenForChain(chain?: ChainData): {
3
- nativeToken: import("@0xsquid/squid-types").Token | undefined;
4
- };
@@ -1,26 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { useMemo } from "react";
3
- import { findNativeToken } from "../../services";
4
- import { useSquidTokens } from "./useSquidTokens";
5
- export function useNativeTokenForChain(chain) {
6
- const { evmTokens, cosmosTokens, solanaTokens, bitcoinTokens } = useSquidTokens();
7
- const getTokensForChainType = () => {
8
- switch (chain?.chainType) {
9
- case ChainType.EVM:
10
- return evmTokens;
11
- case ChainType.COSMOS:
12
- return cosmosTokens;
13
- case ChainType.SOLANA:
14
- return solanaTokens;
15
- case ChainType.BTC:
16
- return bitcoinTokens;
17
- default:
18
- return [];
19
- }
20
- };
21
- const nativeTokenForChainType = useMemo(() => {
22
- return findNativeToken(getTokensForChainType(), chain);
23
- }, [chain]);
24
- return { nativeToken: nativeTokenForChainType };
25
- }
26
- //# sourceMappingURL=useNativeTokenForChain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNativeTokenForChain.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useNativeTokenForChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,KAAiB;IACtD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,GAC5D,cAAc,EAAE,CAAC;IAEnB,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,QAAQ,KAAK,EAAE,SAAS,EAAE;YACxB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,SAAS,CAAC;YACnB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,YAAY,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,YAAY,CAAC;YACtB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,aAAa,CAAC;YACvB;gBACE,OAAO,EAAE,CAAC;SACb;IACH,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3C,OAAO,eAAe,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;AAClD,CAAC"}
@@ -1,14 +0,0 @@
1
- import { BitcoinWallet } from "../../core/types/wallet";
2
- export declare const connectPhantomBitcoinWallet: (wallet: BitcoinWallet) => Promise<{
3
- wallet: BitcoinWallet;
4
- address: string;
5
- } | null>;
6
- export declare const connectUnisatBitcoinWallet: (wallet: BitcoinWallet) => Promise<{
7
- wallet: BitcoinWallet;
8
- address: string;
9
- } | null>;
10
- export declare const connectBitcoinWallet: (wallet: BitcoinWallet) => Promise<{
11
- wallet: BitcoinWallet;
12
- address: string;
13
- } | null>;
14
- export declare const isBitcoinAddressValid: (address: string) => boolean;
@@ -1,68 +0,0 @@
1
- import { address as btcAddressLib } from "bitcoinjs-lib";
2
- export const connectPhantomBitcoinWallet = async (wallet) => {
3
- const provider = window?.phantom?.bitcoin;
4
- if (!provider) {
5
- throw new Error("Phantom wallet not found");
6
- }
7
- try {
8
- const response = await provider.requestAccounts();
9
- const paymentAccount = response.find((account) => account.purpose === "payment");
10
- if (!paymentAccount) {
11
- throw new Error("No Phantom BTC payment account found");
12
- }
13
- return {
14
- wallet,
15
- address: paymentAccount.address,
16
- };
17
- }
18
- catch (error) {
19
- console.error("Failed to connect Phantom wallet:", error);
20
- return null;
21
- }
22
- };
23
- export const connectUnisatBitcoinWallet = async (wallet) => {
24
- const provider = window?.unisat;
25
- if (!provider) {
26
- throw new Error("Unisat wallet not found");
27
- }
28
- try {
29
- const accounts = await provider.requestAccounts();
30
- return {
31
- wallet,
32
- address: accounts[0],
33
- };
34
- }
35
- catch (error) {
36
- console.error("Failed to connect Unisat wallet:", error);
37
- return null;
38
- }
39
- };
40
- export const connectBitcoinWallet = async (wallet) => {
41
- switch (wallet.connectorId) {
42
- case "phantomBTC":
43
- return connectPhantomBitcoinWallet(wallet);
44
- case "unisat":
45
- return connectUnisatBitcoinWallet(wallet);
46
- default:
47
- throw new Error("Invalid Bitcoin wallet");
48
- }
49
- };
50
- // Validation taken from Squid API repo
51
- export const isBitcoinAddressValid = (address) => {
52
- try {
53
- if (address.startsWith("bc1p")) {
54
- // this is a bitcoin taproot address type, it has different encoding than other 3 address types
55
- // and requires different validation logic
56
- const decoded = btcAddressLib.fromBech32(address);
57
- return decoded.prefix === "bc" && decoded.version === 1;
58
- }
59
- else {
60
- btcAddressLib.toOutputScript(address);
61
- return true;
62
- }
63
- }
64
- catch (e) {
65
- return false;
66
- }
67
- };
68
- //# sourceMappingURL=bitcoinService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitcoinService.js","sourceRoot":"","sources":["../../../src/services/internal/bitcoinService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAIzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,MAAqB,EAAE,EAAE;IACzE,MAAM,QAAQ,GAAI,MAAc,EAAE,OAAO,EAAE,OAAO,CAAC;IAEnD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IAED,IAAI;QACF,MAAM,QAAQ,GAA4B,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;QAE3E,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAC3C,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QAED,OAAO;YACL,MAAM;YACN,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,MAAqB,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAI,MAAc,EAAE,MAAM,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,IAAI;QACF,MAAM,QAAQ,GAAa,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;QAE5D,OAAO;YACL,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrB,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAqB,EAAE,EAAE;IAClE,QAAQ,MAAM,CAAC,WAAW,EAAE;QAC1B,KAAK,YAAY;YACf,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5C;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;AACH,CAAC,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAW,EAAE;IAChE,IAAI;QACF,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC9B,+FAA+F;YAC/F,0CAA0C;YAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC;SACzD;aAAM;YACL,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;SACb;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { ChainData } from "@0xsquid/squid-types";
2
- import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate";
3
- import { OfflineSigner } from "@cosmjs/proto-signing";
4
- import { SigningStargateClient } from "@cosmjs/stargate";
5
- import { ChainInfo, Keplr } from "@keplr-wallet/types";
6
- import { UseMutationResult } from "@tanstack/react-query";
7
- import { CosmosWallet, Wallet } from "../../core/types/wallet";
8
- /**
9
- * Get the cosmos address for a given chain
10
- * This might pop up a keplr modal to approve the chain
11
- * @param chainId
12
- * @param keplrTypeWallet
13
- * @returns Cosmos address
14
- */
15
- export declare const getAllKeysForSupportedCosmosChains: (chainIds: string[], keplrTypeWallet: Keplr | undefined) => Promise<{
16
- address: string;
17
- chainId: string;
18
- }[]>;
19
- export declare const isCosmosAddressValid: (chainPrefix: string, address: string) => boolean;
20
- export declare const getCosmosSigningClient: ({ chainRpc, cosmosSigner, defaultSigningClient, }: {
21
- chainRpc: string;
22
- cosmosSigner: OfflineSigner | null;
23
- defaultSigningClient: typeof SigningStargateClient | typeof SigningCosmWasmClient;
24
- }) => Promise<SigningCosmWasmClient | SigningStargateClient | null>;
25
- export declare const getCosmosChainInfosObject: (chain: ChainData) => ChainInfo;
26
- type ConnectCosmosWalletContext = {
27
- connectCosmos?: UseMutationResult<string | undefined, unknown, {
28
- chain: ChainData;
29
- wallet?: Wallet;
30
- }, unknown>;
31
- cosmosConnectedWallet: Wallet | undefined;
32
- };
33
- export declare const connectCosmosWallet: (wallet: CosmosWallet, baseChain: ChainData | undefined, { connectCosmos, cosmosConnectedWallet }: ConnectCosmosWalletContext) => Promise<{
34
- wallet: CosmosWallet;
35
- address: string;
36
- } | null>;
37
- export {};
@@ -1,97 +0,0 @@
1
- import { fromBech32 } from "@cosmjs/encoding";
2
- /**
3
- * Get the cosmos address for a given chain
4
- * This might pop up a keplr modal to approve the chain
5
- * @param chainId
6
- * @param keplrTypeWallet
7
- * @returns Cosmos address
8
- */
9
- export const getAllKeysForSupportedCosmosChains = async (chainIds, keplrTypeWallet) => {
10
- const addresses = [];
11
- if (!keplrTypeWallet)
12
- return addresses;
13
- for (const chainId of chainIds) {
14
- try {
15
- const keys = await keplrTypeWallet.getKeysSettled([chainId]);
16
- keys.forEach((key) => {
17
- if (key.status === "fulfilled" && key.value?.bech32Address) {
18
- addresses.push({
19
- address: key.value.bech32Address,
20
- chainId,
21
- });
22
- }
23
- });
24
- }
25
- catch (error) {
26
- console.debug(`Failed to get keys for chain ${chainId}:`, error);
27
- }
28
- }
29
- return addresses;
30
- };
31
- export const isCosmosAddressValid = (chainPrefix, address) => {
32
- try {
33
- if (!address.toLowerCase().startsWith(chainPrefix)) {
34
- throw new Error("Invalid address for this chain");
35
- }
36
- fromBech32(address);
37
- return true;
38
- }
39
- catch (error) {
40
- return false;
41
- }
42
- };
43
- export const getCosmosSigningClient = async ({ chainRpc, cosmosSigner, defaultSigningClient, }) => {
44
- if (!cosmosSigner)
45
- return null;
46
- // const cosmosClient = (await isNomos())
47
- // ? SigningNomosClient.connectWithSigner(chainRpc, cosmosSigner) // use Nomos provider
48
- return defaultSigningClient.connectWithSigner(chainRpc, cosmosSigner); // use default cosmos provider
49
- };
50
- export const getCosmosChainInfosObject = (chain) => {
51
- const cosmosChain = chain;
52
- //
53
- // TODO: In the future, it will be better to do this parsing on backend side.
54
- //
55
- // The `gasPriceStep` field of the `ChainInfo` has been moved under `feeCurrencies`.
56
- // This is automatically handled as of right now, but the upcoming update would potentially cause errors.
57
- delete cosmosChain.gasPriceStep;
58
- // The `coinType` field of the `ChainInfo` is removed. This is automatically handled as of right now,
59
- // but the upcoming update would potentially cause errors.
60
- delete cosmosChain.coinType;
61
- return {
62
- ...cosmosChain,
63
- feeCurrencies: cosmosChain.feeCurrencies.map((feeCurrency) => ({
64
- ...feeCurrency,
65
- // Gas price step is now under feeCurrencies
66
- gasPriceStep: cosmosChain.gasPriceStep,
67
- })),
68
- chainName: cosmosChain.networkName,
69
- chainId: cosmosChain.chainId.toString(),
70
- rpc: cosmosChain.rpc.split("?chain")[0],
71
- };
72
- };
73
- export const connectCosmosWallet = async (wallet, baseChain, { connectCosmos, cosmosConnectedWallet }) => {
74
- // No need to connect to the same wallet
75
- if (wallet.connectorId === cosmosConnectedWallet?.connectorId ||
76
- baseChain === undefined) {
77
- return null;
78
- }
79
- const address = await connectCosmos?.mutateAsync({
80
- chain: baseChain,
81
- wallet: wallet,
82
- });
83
- if (address) {
84
- //TODO: Careful here, commented here because not needed for Wallet component, but might be needed for Widget component
85
- // This setState could be implemented on the Widget side, instead of hooks here
86
- //
87
- // useSwapRoutePersistStore.setState({
88
- // swapRoute: {
89
- // ...useSwapRoutePersistStore.getState().swapRoute,
90
- // destinationAddress: { address },
91
- // },
92
- // });
93
- return { wallet, address };
94
- }
95
- return null;
96
- };
97
- //# sourceMappingURL=cosmosService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cosmosService.js","sourceRoot":"","sources":["../../../src/services/internal/cosmosService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,EACrD,QAAkB,EAClB,eAAkC,EAClC,EAAE;IACF,MAAM,SAAS,GAA2C,EAAE,CAAC;IAE7D,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACxB,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE;oBAC1D,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa;wBAChC,OAAO;qBACR,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;SAClE;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE;IAC3E,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,QAAQ,EACR,YAAY,EACZ,oBAAoB,GAOrB,EAAiE,EAAE;IAClE,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,yCAAyC;IACzC,uFAAuF;IACvF,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAa,CAAC,CAAC,CAAC,8BAA8B;AACxG,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAgB,EAAa,EAAE;IACvE,MAAM,WAAW,GAAG,KAAoB,CAAC;IACzC,EAAE;IACF,6EAA6E;IAC7E,EAAE;IACF,oFAAoF;IACpF,yGAAyG;IACzG,OAAO,WAAW,CAAC,YAAY,CAAC;IAEhC,qGAAqG;IACrG,0DAA0D;IAC1D,OAAO,WAAW,CAAC,QAAQ,CAAC;IAE5B,OAAO;QACL,GAAG,WAAW;QACd,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC7D,GAAG,WAAW;YACd,4CAA4C;YAC5C,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC,CAAC;QACH,SAAS,EAAE,WAAW,CAAC,WAAW;QAClC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;QACvC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC,CAAC;AAeF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAoB,EACpB,SAAgC,EAChC,EAAE,aAAa,EAAE,qBAAqB,EAA8B,EACpE,EAAE;IACF,wCAAwC;IACxC,IACE,MAAM,CAAC,WAAW,KAAK,qBAAqB,EAAE,WAAW;QACzD,SAAS,KAAK,SAAS,EACvB;QACA,OAAO,IAAI,CAAC;KACb;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,WAAW,CAAC;QAC/C,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE;QACX,sHAAsH;QACtH,+EAA+E;QAC/E,EAAE;QACF,sCAAsC;QACtC,iBAAiB;QACjB,wDAAwD;QACxD,uCAAuC;QACvC,OAAO;QACP,MAAM;QACN,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KAC5B;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { ChainData } from "@0xsquid/squid-types";
2
- import { Config, Connector } from "wagmi";
3
- import { ConnectMutateAsync } from "wagmi/query";
4
- import { EvmWallet } from "../../core/types/wallet";
5
- export declare const EvmNetworkNotSupportedErrorCode = 4902;
6
- export declare function addEthereumChain({ chain, provider, }: {
7
- chain: ChainData;
8
- provider: any;
9
- }): Promise<any>;
10
- export declare const connectEvmWallet: (wallet: EvmWallet, { connectEvmAsync, activeEvmConnector, }: {
11
- connectEvmAsync: ConnectMutateAsync<Config, unknown>;
12
- activeEvmConnector: Connector | undefined;
13
- }) => Promise<{
14
- wallet: EvmWallet;
15
- address: `0x${string}`;
16
- } | null>;
@@ -1,40 +0,0 @@
1
- export const EvmNetworkNotSupportedErrorCode = 4902;
2
- export async function addEthereumChain({ chain, provider, }) {
3
- const chainName = chain.rpc.includes("tenderly")
4
- ? `${chain.networkName} Tenderly fork`
5
- : chain.networkName;
6
- const chainParameters = {
7
- chainId: `0x${parseInt(chain.chainId, 10).toString(16)}`,
8
- chainName,
9
- nativeCurrency: chain.nativeCurrency,
10
- rpcUrls: [chain.rpc],
11
- blockExplorerUrls: chain.blockExplorerUrls,
12
- iconUrls: [chain.chainIconURI],
13
- };
14
- try {
15
- return provider.request({
16
- method: "wallet_addEthereumChain",
17
- params: [chainParameters],
18
- });
19
- }
20
- catch (error) {
21
- console.debug("Error adding chain:", error);
22
- }
23
- }
24
- export const connectEvmWallet = async (wallet, { connectEvmAsync, activeEvmConnector, }) => {
25
- if (!wallet.connector) {
26
- throw new Error("Wallet connector is undefined");
27
- }
28
- // No need to connect to the same wallet
29
- if (wallet.connectorId === activeEvmConnector?.id) {
30
- return null;
31
- }
32
- const evmConnectionResult = await connectEvmAsync({
33
- connector: wallet.connector(),
34
- });
35
- return {
36
- wallet,
37
- address: evmConnectionResult.accounts?.[0] ?? "",
38
- };
39
- };
40
- //# sourceMappingURL=evmService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evmService.js","sourceRoot":"","sources":["../../../src/services/internal/evmService.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,gBAAgB;QACtC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IACtB,MAAM,eAAe,GAA8B;QACjD,OAAO,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACxD,SAAS;QACT,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,QAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;KAC/B,CAAC;IAEF,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;YACtB,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,eAAe,CAAC;SAC1B,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAAiB,EACjB,EACE,eAAe,EACf,kBAAkB,GAInB,EACD,EAAE;IACF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,wCAAwC;IACxC,IAAI,MAAM,CAAC,WAAW,KAAK,kBAAkB,EAAE,EAAE,EAAE;QACjD,OAAO,IAAI,CAAC;KACb;IAED,MAAM,mBAAmB,GAAG,MAAM,eAAe,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;KAC9B,CAAC,CAAC;IAEH,OAAO;QACL,MAAM;QACN,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;KACjD,CAAC;AACJ,CAAC,CAAC"}
@@ -1,41 +0,0 @@
1
- import { Squid } from "@0xsquid/sdk";
2
- import { ChainData, RouteResponse } from "@0xsquid/squid-types";
3
- import { Connection } from "@solana/web3.js";
4
- import { ISolanaContextData } from "../../core/providers/SolanaProvider";
5
- import { SolanaWallet } from "../../core/types/wallet";
6
- import { SolanaWalletAdapter } from "../../hooks/solana/useSolana";
7
- export declare const connectSolanaWallet: (wallet: SolanaWallet, baseChain: ChainData | undefined, { connectSolana }: Pick<ISolanaContextData, "connectSolana" | "wallet">) => Promise<{
8
- wallet: SolanaWallet;
9
- address: string;
10
- } | null>;
11
- /**
12
- * Execute a Solana swap transaction
13
- * This will be used for the swap flow - Using Jupiter Dex under the hood
14
- */
15
- export declare const executeSolanaSwap: ({ route, squid, solanaSigner, }: {
16
- route: RouteResponse["route"];
17
- squid?: Squid | undefined;
18
- solanaSigner: SolanaWalletAdapter;
19
- connection: Connection;
20
- sourceUserAddress: string;
21
- }) => Promise<string>;
22
- /**
23
- * Execute a Solana transfer transaction
24
- * This will be used for the deposit flow
25
- */
26
- export declare const executeSolanaTransfer: ({ amount, target, solanaSigner, connection, onSigned, }: {
27
- amount: number | bigint;
28
- target?: string | undefined;
29
- solanaSigner: SolanaWalletAdapter;
30
- connection: Connection;
31
- onSigned?: ((signature: string) => void) | undefined;
32
- }) => Promise<string>;
33
- export declare const isSolanaDirectTransfer: ({ fromChain, route, }: {
34
- fromChain?: ChainData | undefined;
35
- route?: {
36
- estimate: import("@0xsquid/squid-types").Estimate;
37
- transactionRequest?: import("@0xsquid/squid-types").SquidData | undefined;
38
- params: import("@0xsquid/squid-types").RouteRequest;
39
- } | undefined;
40
- }) => boolean;
41
- export declare const isSolanaAddressValid: (address: string) => boolean;
@@ -1,82 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { PublicKey, SystemProgram, Transaction, } from "@solana/web3.js";
3
- export const connectSolanaWallet = async (wallet, baseChain, { connectSolana }) => {
4
- if (!baseChain) {
5
- return null;
6
- }
7
- const address = await connectSolana?.mutateAsync({
8
- chain: baseChain,
9
- wallet,
10
- });
11
- if (address) {
12
- return { wallet, address };
13
- }
14
- return null;
15
- };
16
- /**
17
- * Execute a Solana swap transaction
18
- * This will be used for the swap flow - Using Jupiter Dex under the hood
19
- */
20
- export const executeSolanaSwap = async ({ route, squid, solanaSigner, }) => {
21
- if (!route?.transactionRequest?.data || !squid) {
22
- throw new Error("Invalid parameters");
23
- }
24
- if (!solanaSigner) {
25
- throw new Error("Solana signer not found");
26
- }
27
- const signature = (await squid.executeRoute({
28
- signer: solanaSigner,
29
- route,
30
- }));
31
- return signature.tx;
32
- };
33
- /**
34
- * Execute a Solana transfer transaction
35
- * This will be used for the deposit flow
36
- */
37
- export const executeSolanaTransfer = async ({ amount, target, solanaSigner, connection, onSigned, }) => {
38
- if (!solanaSigner) {
39
- throw new Error("Solana signer not found");
40
- }
41
- if (!solanaSigner.publicKey) {
42
- throw new Error("Signer public key not found");
43
- }
44
- if (!target) {
45
- throw new Error("Target address is required");
46
- }
47
- // Create SOL transfer transaction
48
- const transaction = new Transaction().add(SystemProgram.transfer({
49
- fromPubkey: solanaSigner.publicKey,
50
- toPubkey: new PublicKey(target),
51
- lamports: amount,
52
- }));
53
- // Get recent blockhash for transaction validity window
54
- const latestBlockhash = await connection.getLatestBlockhash();
55
- if (!solanaSigner.publicKey) {
56
- throw new Error("Signer public key not found");
57
- }
58
- // Set transaction properties required for processing
59
- transaction.recentBlockhash = latestBlockhash.blockhash;
60
- transaction.feePayer = solanaSigner.publicKey;
61
- // Get signature first
62
- const { signature } = await solanaSigner.signAndSendTransaction(transaction);
63
- // Call the callback with signature before waiting for confirmation
64
- onSigned?.(signature);
65
- // Wait for confirmation
66
- await connection.confirmTransaction(signature);
67
- return signature;
68
- };
69
- export const isSolanaDirectTransfer = ({ fromChain, route, }) => {
70
- return (fromChain?.chainType === ChainType.SOLANA &&
71
- !route?.transactionRequest?.data);
72
- };
73
- export const isSolanaAddressValid = (address) => {
74
- try {
75
- const pubKey = new PublicKey(address);
76
- return PublicKey.isOnCurve(pubKey.toBytes());
77
- }
78
- catch {
79
- return false;
80
- }
81
- };
82
- //# sourceMappingURL=solanaService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solanaService.js","sourceRoot":"","sources":["../../../src/services/internal/solanaService.ts"],"names":[],"mappings":"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"}