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

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 (134) 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 +0 -2
  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 +1 -2
  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 +3 -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 +2 -2
  83. package/dist/services/internal/estimateService.js +1 -1
  84. package/dist/services/internal/transactionService.d.ts +5 -7
  85. package/dist/services/internal/transactionService.js +7 -20
  86. package/dist/services/internal/transactionService.js.map +1 -1
  87. package/dist/services/internal/walletService.d.ts +55 -3
  88. package/dist/services/internal/walletService.js +151 -19
  89. package/dist/services/internal/walletService.js.map +1 -1
  90. package/dist/tests/estimateService.test.js.map +1 -1
  91. package/dist/tests/swapConfig.test.js +18 -55
  92. package/dist/tests/swapConfig.test.js.map +1 -1
  93. package/dist/tests/walletService.test.js +1 -0
  94. package/dist/tests/walletService.test.js.map +1 -1
  95. package/package.json +9 -13
  96. package/dist/core/connectors/bitcoin/helpers.d.ts +0 -5
  97. package/dist/core/connectors/bitcoin/helpers.js +0 -86
  98. package/dist/core/connectors/bitcoin/helpers.js.map +0 -1
  99. package/dist/core/connectors/bitcoin/index.d.ts +0 -6
  100. package/dist/core/connectors/bitcoin/index.js +0 -2
  101. package/dist/core/connectors/bitcoin/index.js.map +0 -1
  102. package/dist/core/connectors/bitcoin/wallets/index.d.ts +0 -2
  103. package/dist/core/connectors/bitcoin/wallets/index.js +0 -3
  104. package/dist/core/connectors/bitcoin/wallets/index.js.map +0 -1
  105. package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +0 -19
  106. package/dist/core/connectors/bitcoin/wallets/phantom.js +0 -54
  107. package/dist/core/connectors/bitcoin/wallets/phantom.js.map +0 -1
  108. package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +0 -11
  109. package/dist/core/connectors/bitcoin/wallets/unisat.js +0 -16
  110. package/dist/core/connectors/bitcoin/wallets/unisat.js.map +0 -1
  111. package/dist/core/providers/SolanaProvider.d.ts +0 -28
  112. package/dist/core/providers/SolanaProvider.js +0 -15
  113. package/dist/core/providers/SolanaProvider.js.map +0 -1
  114. package/dist/hooks/solana/useSolana.d.ts +0 -27
  115. package/dist/hooks/solana/useSolana.js +0 -86
  116. package/dist/hooks/solana/useSolana.js.map +0 -1
  117. package/dist/hooks/swap/useDepositAddress.d.ts +0 -19
  118. package/dist/hooks/swap/useDepositAddress.js +0 -86
  119. package/dist/hooks/swap/useDepositAddress.js.map +0 -1
  120. package/dist/hooks/tokens/useNativeTokenForChain.d.ts +0 -4
  121. package/dist/hooks/tokens/useNativeTokenForChain.js +0 -26
  122. package/dist/hooks/tokens/useNativeTokenForChain.js.map +0 -1
  123. package/dist/services/internal/bitcoinService.d.ts +0 -14
  124. package/dist/services/internal/bitcoinService.js +0 -68
  125. package/dist/services/internal/bitcoinService.js.map +0 -1
  126. package/dist/services/internal/cosmosService.d.ts +0 -37
  127. package/dist/services/internal/cosmosService.js +0 -97
  128. package/dist/services/internal/cosmosService.js.map +0 -1
  129. package/dist/services/internal/evmService.d.ts +0 -16
  130. package/dist/services/internal/evmService.js +0 -40
  131. package/dist/services/internal/evmService.js.map +0 -1
  132. package/dist/services/internal/solanaService.d.ts +0 -41
  133. package/dist/services/internal/solanaService.js +0 -82
  134. package/dist/services/internal/solanaService.js.map +0 -1
@@ -1,86 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/connectors/bitcoin/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export * from "./wallets";
2
- export interface BitcoinConnector {
3
- sendBTC(to: string, amount: number): Promise<{
4
- txHash: string;
5
- }>;
6
- }
@@ -1,2 +0,0 @@
1
- export * from "./wallets";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/connectors/bitcoin/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -1,2 +0,0 @@
1
- export { PhantomConnector } from "./phantom";
2
- export { UnisatConnector } from "./unisat";
@@ -1,3 +0,0 @@
1
- export { PhantomConnector } from "./phantom";
2
- export { UnisatConnector } from "./unisat";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -1,19 +0,0 @@
1
- import { BitcoinConnector } from "..";
2
- export interface PhantomBitcoinAccount {
3
- address: string;
4
- publicKey: string;
5
- addressType: "p2tr" | "p2wpkh" | "p2sh" | "p2pkh";
6
- purpose: "payment" | "ordinals";
7
- }
8
- export declare class PhantomConnector implements BitcoinConnector {
9
- get getProvider(): any | undefined;
10
- getAccounts(): Promise<{
11
- paymentAddress: string;
12
- }>;
13
- sendBTC(to: string, amount: number): Promise<{
14
- txHash: string;
15
- }>;
16
- signPsbt(psbtHex: string): Promise<{
17
- txId: string | undefined;
18
- }>;
19
- }
@@ -1,54 +0,0 @@
1
- import * as bitcoin from "bitcoinjs-lib";
2
- import { broadcastTx, createSendBtcPsbt, fromHexString } from "../helpers";
3
- const MAINNET = bitcoin.networks.bitcoin;
4
- export class PhantomConnector {
5
- get getProvider() {
6
- const provider = window?.phantom?.bitcoin;
7
- if (!provider) {
8
- throw new Error("Phantom wallet not found");
9
- }
10
- return provider;
11
- }
12
- async getAccounts() {
13
- const phantomAccounts = await this.getProvider.requestAccounts();
14
- if (!phantomAccounts)
15
- throw new Error("No accounts found");
16
- const payment = phantomAccounts.find((account) => account.purpose === "payment");
17
- if (!payment)
18
- throw new Error("No payment account found");
19
- return {
20
- paymentAddress: payment.address,
21
- };
22
- }
23
- async sendBTC(to, amount) {
24
- const { paymentAddress } = await this.getAccounts();
25
- const { psbtHex } = await createSendBtcPsbt(paymentAddress, to, amount);
26
- const { txId } = await this.signPsbt(psbtHex);
27
- if (!txId)
28
- throw new Error("Error sending BTC");
29
- return { txHash: txId };
30
- }
31
- async signPsbt(psbtHex) {
32
- const { paymentAddress } = await this.getAccounts();
33
- const toSignPsbt = bitcoin.Psbt.fromHex(String(psbtHex), {
34
- network: MAINNET,
35
- });
36
- const inputs = toSignPsbt.data.inputs;
37
- const inputsToSign = [
38
- {
39
- // Need to sign each input with the payment address
40
- address: paymentAddress,
41
- signingIndexes: inputs.map((_, index) => index),
42
- },
43
- ];
44
- const signedPsbtBytes = await this.getProvider.signPSBT(fromHexString(psbtHex), {
45
- inputsToSign,
46
- });
47
- const signedPsbt = bitcoin.Psbt.fromBuffer(signedPsbtBytes);
48
- signedPsbt.finalizeAllInputs();
49
- const tx = signedPsbt.extractTransaction();
50
- const txId = await broadcastTx(tx.toHex());
51
- return { txId };
52
- }
53
- }
54
- //# sourceMappingURL=phantom.js.map
@@ -1 +0,0 @@
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,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;AASzC,MAAM,OAAO,gBAAgB;IAC3B,IAAW,WAAW;QACpB,MAAM,QAAQ,GAAI,MAAc,EAAE,OAAO,EAAE,OAAO,CAAC;QAEnD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC7C;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW;QAGf,MAAM,eAAe,GACnB,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAClC,CAAC,OAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAChE,CAAC;QAEF,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,OAAO;YACL,cAAc,EAAE,OAAO,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAc;QACtC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAG5B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpD,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,GAAe,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CACjE,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"}
@@ -1,11 +0,0 @@
1
- import { BitcoinConnector } from "..";
2
- interface UnisatProvider {
3
- sendBitcoin: (to: string, amount: number) => Promise<string>;
4
- }
5
- export declare class UnisatConnector implements BitcoinConnector {
6
- get getProvider(): UnisatProvider;
7
- sendBTC(to: string, amount: number): Promise<{
8
- txHash: string;
9
- }>;
10
- }
11
- export {};
@@ -1,16 +0,0 @@
1
- export class UnisatConnector {
2
- get getProvider() {
3
- const provider = window?.unisat;
4
- if (!provider) {
5
- throw new Error("Unisat wallet not found");
6
- }
7
- return provider;
8
- }
9
- async sendBTC(to, amount) {
10
- const txHash = await this.getProvider.sendBitcoin(to, amount);
11
- if (!txHash)
12
- throw new Error("Transaction failed");
13
- return { txHash };
14
- }
15
- }
16
- //# sourceMappingURL=unisat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unisat.js","sourceRoot":"","sources":["../../../../../src/core/connectors/bitcoin/wallets/unisat.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,eAAe;IAC1B,IAAW,WAAW;QACpB,MAAM,QAAQ,GAAI,MAAc,EAAE,MAAM,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;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;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEnD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -1,28 +0,0 @@
1
- import { ChainData } from "@0xsquid/squid-types";
2
- import { Connection } from "@solana/web3.js";
3
- import { UseMutationResult } from "@tanstack/react-query";
4
- import React, { ReactNode } from "react";
5
- import { SolanaWalletAdapter } from "../../hooks/solana/useSolana";
6
- import { SolanaWallet } from "../types/wallet";
7
- export interface ConnectSolanaParams {
8
- chain: ChainData;
9
- wallet: SolanaWallet;
10
- }
11
- export interface ISolanaContextData {
12
- wallet?: SolanaWallet;
13
- connectSolana: UseMutationResult<string | undefined, unknown, {
14
- chain: ChainData;
15
- wallet?: SolanaWallet;
16
- }>;
17
- isConnected: boolean;
18
- clearData: () => void;
19
- solanaWalletObject?: SolanaWalletAdapter;
20
- solanaAddress?: string;
21
- signer?: SolanaWalletAdapter;
22
- connection: Connection;
23
- }
24
- export declare const SolanaContext: React.Context<ISolanaContextData | undefined>;
25
- export declare const SolanaProvider: React.FC<{
26
- children: ReactNode;
27
- }>;
28
- export declare const useSolanaContext: () => ISolanaContextData;
@@ -1,15 +0,0 @@
1
- import React, { createContext, useContext } from "react";
2
- import { useSolana } from "../../hooks/solana/useSolana";
3
- export const SolanaContext = createContext(undefined);
4
- export const SolanaProvider = ({ children, }) => {
5
- const solanaHook = useSolana();
6
- return (React.createElement(SolanaContext.Provider, { value: solanaHook }, children));
7
- };
8
- export const useSolanaContext = () => {
9
- const context = useContext(SolanaContext);
10
- if (!context) {
11
- throw new Error("useSolanaContext must be used within a SolanaProvider");
12
- }
13
- return context;
14
- };
15
- //# sourceMappingURL=SolanaProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolanaProvider.js","sourceRoot":"","sources":["../../../src/core/providers/SolanaProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAuB,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAuB9E,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CACxC,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAsC,CAAC,EAChE,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;IAE/B,OAAO,CACL,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,IACtC,QAAQ,CACc,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAuB,EAAE;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { WalletName } from "@solana/wallet-adapter-base";
2
- import { PublicKey, VersionedTransaction } from "@solana/web3.js";
3
- import { ISolanaContextData } from "../../core/providers/SolanaProvider";
4
- export interface SolanaWalletEvents {
5
- connect(publicKey: PublicKey): void;
6
- disconnect(): void;
7
- accountChanged(publicKey: PublicKey | null): void;
8
- }
9
- export interface SolanaWalletAdapter {
10
- publicKey: PublicKey | null;
11
- connecting: boolean;
12
- connected: boolean;
13
- name: WalletName;
14
- connect(): Promise<{
15
- publicKey: PublicKey;
16
- }>;
17
- disconnect(): Promise<void>;
18
- signAndSendTransaction(transaction: VersionedTransaction): Promise<{
19
- signature: string;
20
- }>;
21
- signTransaction(transaction: VersionedTransaction): Promise<VersionedTransaction>;
22
- signAllTransactions(transactions: VersionedTransaction[]): Promise<VersionedTransaction[]>;
23
- signMessage(message: Uint8Array): Promise<Uint8Array>;
24
- on<E extends keyof SolanaWalletEvents>(event: E, listener: SolanaWalletEvents[E]): void;
25
- off<E extends keyof SolanaWalletEvents>(event: E, listener: SolanaWalletEvents[E]): void;
26
- }
27
- export declare const useSolana: () => ISolanaContextData;
@@ -1,86 +0,0 @@
1
- import { ChainType } from "@0xsquid/squid-types";
2
- import { Connection } from "@solana/web3.js";
3
- import { useMutation } from "@tanstack/react-query";
4
- import { useCallback, useEffect, useMemo, useRef } from "react";
5
- import { SOLANA_RPC_URL } from "../../core/constants";
6
- import { getDescendantProp } from "../../services/internal/walletService";
7
- import { useClient } from "../client/useClient";
8
- import { useWalletStore } from "../store/useWalletStore";
9
- export const useSolana = () => {
10
- // Get current Solana wallet state from global store
11
- const solanaWalletState = useWalletStore((state) => state.connectedWalletsByChainType[ChainType.SOLANA]);
12
- const solanaAddress = solanaWalletState.address;
13
- const isConnected = !!solanaAddress;
14
- const solanaConnectedWallet = solanaWalletState.wallet;
15
- const { clientWindow, isClient } = useClient();
16
- const window = clientWindow;
17
- const { setConnectedWallet, disconnectWallet } = useWalletStore();
18
- // Safely access wallet provider from window object
19
- const solanaWalletObject = useMemo(() => {
20
- if (isClient && solanaConnectedWallet?.windowFlag) {
21
- return getDescendantProp(window, solanaConnectedWallet.windowFlag);
22
- }
23
- return undefined;
24
- }, [solanaConnectedWallet, isClient, window]);
25
- const connectSolana = useMutation(async ({ chain, wallet, }) => {
26
- const selectedWallet = wallet ?? solanaConnectedWallet;
27
- if (!selectedWallet || !chain) {
28
- return undefined;
29
- }
30
- const walletObject = getDescendantProp(window, selectedWallet.windowFlag);
31
- if (!walletObject) {
32
- return undefined;
33
- }
34
- try {
35
- const response = await walletObject.connect();
36
- const address = response.publicKey.toString();
37
- if (address) {
38
- setConnectedWallet(selectedWallet, address);
39
- return address;
40
- }
41
- }
42
- catch (error) {
43
- console.error(error);
44
- }
45
- return undefined;
46
- });
47
- // Clear wallet connection data
48
- const clearData = useCallback(() => {
49
- disconnectWallet(ChainType.SOLANA);
50
- }, [disconnectWallet]);
51
- // Handle wallet account changes (e.g., user switches accounts)
52
- const handleAccountChange = useCallback((publicKey) => {
53
- if (publicKey && solanaConnectedWallet) {
54
- setConnectedWallet(solanaConnectedWallet, publicKey.toString());
55
- }
56
- else {
57
- clearData();
58
- }
59
- }, [clearData, setConnectedWallet, solanaConnectedWallet]);
60
- // Set up event listeners for wallet account changes
61
- useEffect(() => {
62
- if (solanaWalletObject) {
63
- solanaWalletObject.on("accountChanged", handleAccountChange);
64
- return () => {
65
- solanaWalletObject.off("accountChanged", handleAccountChange);
66
- };
67
- }
68
- }, [solanaWalletObject, handleAccountChange]);
69
- const getSigner = useCallback(() => {
70
- if (!solanaWalletObject || !solanaAddress)
71
- return undefined;
72
- return solanaWalletObject;
73
- }, [solanaWalletObject, solanaAddress]);
74
- const connectionRef = useRef(new Connection(SOLANA_RPC_URL));
75
- return {
76
- connectSolana,
77
- isConnected,
78
- clearData,
79
- solanaWalletObject,
80
- solanaAddress,
81
- signer: getSigner(),
82
- wallet: solanaConnectedWallet,
83
- connection: connectionRef.current,
84
- };
85
- };
86
- //# sourceMappingURL=useSolana.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSolana.js","sourceRoot":"","sources":["../../../src/hooks/solana/useSolana.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { RouteResponse } from "@0xsquid/squid-types";
2
- export declare function useDepositAddress(): {
3
- isEnabled: boolean;
4
- isAvailableAsPaymentMethod: boolean;
5
- swapWillGenerateDepositAddress: boolean;
6
- enable: () => void;
7
- disable: () => void;
8
- openDepositChannel: () => Promise<void>;
9
- closeDepositChannel: () => Promise<void>;
10
- shouldOpenDepositChannel: boolean;
11
- getRouteWithDeposit: import("@tanstack/react-query").UseMutationResult<{
12
- estimate: import("@0xsquid/squid-types").Estimate;
13
- transactionRequest?: import("@0xsquid/squid-types").SquidData | undefined;
14
- params: import("@0xsquid/squid-types").RouteRequest;
15
- } | undefined, unknown, {
16
- squidRoute: RouteResponse["route"];
17
- fromPrice: string;
18
- }, unknown>;
19
- };
@@ -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