@0xsquid/react-hooks 8.7.1 → 8.7.2-beta-bitcoin-solana-xrpl.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.
- package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +3 -0
- package/dist/core/connectors/bitcoin/wallets/phantom.d.ts +3 -1
- package/dist/core/connectors/bitcoin/wallets/unisat.d.ts +3 -0
- package/dist/core/types/bitcoin.d.ts +3 -0
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +1 -1
- package/dist/{index-Dgqm3ZeG.js → index-BOXqAr2r.js} +194 -150
- package/dist/index-BOXqAr2r.js.map +1 -0
- package/dist/{index-DQERpZr8.js → index-CpphPhUS.js} +193 -149
- package/dist/index-CpphPhUS.js.map +1 -0
- package/dist/{index.es-BKxEl9R1.js → index.es-BOb7ZHW7.js} +2 -2
- package/dist/{index.es-BKxEl9R1.js.map → index.es-BOb7ZHW7.js.map} +1 -1
- package/dist/{index.es-DOFFrTzb.js → index.es-DBsq8Frv.js} +2 -2
- package/dist/{index.es-DOFFrTzb.js.map → index.es-DBsq8Frv.js.map} +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +2 -2
- package/dist/{secretService-DXExZJnA.js → secretService-DN6Mr9e8.js} +2 -2
- package/dist/{secretService-DXExZJnA.js.map → secretService-DN6Mr9e8.js.map} +1 -1
- package/dist/{secretService-CqdaN_la.js → secretService-Dg30HRy1.js} +2 -2
- package/dist/{secretService-CqdaN_la.js.map → secretService-Dg30HRy1.js.map} +1 -1
- package/dist/services/internal/solanaService.d.ts +16 -9
- package/dist/services/internal/transactionService.d.ts +1 -2
- package/dist/{stellarService.client-BmkrPHkP.js → stellarService.client-B9bDVrW_.js} +2 -2
- package/dist/{stellarService.client-BmkrPHkP.js.map → stellarService.client-B9bDVrW_.js.map} +1 -1
- package/dist/{stellarService.client-eK7yYyOR.js → stellarService.client-CybwDtEp.js} +2 -2
- package/dist/{stellarService.client-eK7yYyOR.js.map → stellarService.client-CybwDtEp.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-DQERpZr8.js.map +0 -1
- package/dist/index-Dgqm3ZeG.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChainType, ActionType,
|
|
1
|
+
import { ChainType, ActionType, BridgeType, SquidDataType, BridgeProvider, FeeType } from '@0xsquid/squid-types';
|
|
2
2
|
import { zeroAddress as zeroAddress$1, parseUnits, formatUnits, isAddress, SwitchChainError, UserRejectedRequestError, erc20Abi, getAddress, defineChain, encodeFunctionData } from 'viem';
|
|
3
3
|
import React, { useMemo, useCallback, useState, useEffect, createContext, useContext, useRef } from 'react';
|
|
4
4
|
import { useQuery, useMutation, useQueries, useQueryClient, QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
@@ -4735,6 +4735,9 @@ class KeplrConnector {
|
|
|
4735
4735
|
address: account,
|
|
4736
4736
|
};
|
|
4737
4737
|
}
|
|
4738
|
+
async signPsbt(_) {
|
|
4739
|
+
throw new Error("Method not implemented.");
|
|
4740
|
+
}
|
|
4738
4741
|
}
|
|
4739
4742
|
|
|
4740
4743
|
bitcoin.initEccLib(ecc);
|
|
@@ -4849,10 +4852,8 @@ class PhantomConnector {
|
|
|
4849
4852
|
async sendBTC(to, amount) {
|
|
4850
4853
|
const { address } = await this.requestAccount();
|
|
4851
4854
|
const { psbtHex } = await createSendBtcPsbt(address, to, amount);
|
|
4852
|
-
const {
|
|
4853
|
-
|
|
4854
|
-
throw new BitcoinConnectorTransactionFailedError();
|
|
4855
|
-
return { txHash: txId };
|
|
4855
|
+
const { txHash } = await this.signPsbt(psbtHex);
|
|
4856
|
+
return { txHash };
|
|
4856
4857
|
}
|
|
4857
4858
|
async signPsbt(psbtHex) {
|
|
4858
4859
|
const { address: paymentAddress } = await this.requestAccount();
|
|
@@ -4873,8 +4874,10 @@ class PhantomConnector {
|
|
|
4873
4874
|
const signedPsbt = bitcoin.Psbt.fromBuffer(signedPsbtBytes);
|
|
4874
4875
|
signedPsbt.finalizeAllInputs();
|
|
4875
4876
|
const tx = signedPsbt.extractTransaction();
|
|
4876
|
-
const
|
|
4877
|
-
|
|
4877
|
+
const txHash = await broadcastTx(tx.toHex());
|
|
4878
|
+
if (!txHash)
|
|
4879
|
+
throw new BitcoinConnectorTransactionFailedError();
|
|
4880
|
+
return { txHash };
|
|
4878
4881
|
}
|
|
4879
4882
|
}
|
|
4880
4883
|
|
|
@@ -4903,6 +4906,9 @@ class UnisatConnector {
|
|
|
4903
4906
|
address: account,
|
|
4904
4907
|
};
|
|
4905
4908
|
}
|
|
4909
|
+
async signPsbt(_) {
|
|
4910
|
+
throw new Error("Method not implemented.");
|
|
4911
|
+
}
|
|
4906
4912
|
}
|
|
4907
4913
|
|
|
4908
4914
|
var XrplTransactionType;
|
|
@@ -21113,10 +21119,6 @@ function isCoralBridgeAction(action) {
|
|
|
21113
21119
|
function sleep(ms) {
|
|
21114
21120
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
21115
21121
|
}
|
|
21116
|
-
const isDepositRoute = (route) => {
|
|
21117
|
-
return (!!route &&
|
|
21118
|
-
route.transactionRequest?.type === SquidDataType.ChainflipDepositAddress);
|
|
21119
|
-
};
|
|
21120
21122
|
/**
|
|
21121
21123
|
* Checks if the route contains a Chainflip bridge action
|
|
21122
21124
|
*/
|
|
@@ -21324,11 +21326,11 @@ const isSolanaAddressValid = (address) => {
|
|
|
21324
21326
|
* Execute a Solana swap transaction
|
|
21325
21327
|
* This will be used for the swap flow - Using Jupiter Dex under the hood
|
|
21326
21328
|
*/
|
|
21327
|
-
const executeSolanaSwap = async ({
|
|
21328
|
-
if (!
|
|
21329
|
-
throw new Error("Invalid
|
|
21329
|
+
const executeSolanaSwap = async ({ transactionRequest, signer, connection, }) => {
|
|
21330
|
+
if (!isOnChainTxData(transactionRequest)) {
|
|
21331
|
+
throw new Error("Invalid transaction request");
|
|
21330
21332
|
}
|
|
21331
|
-
const swapRequest =
|
|
21333
|
+
const swapRequest = transactionRequest.data;
|
|
21332
21334
|
const swapTransactionBuf = Buffer.from(swapRequest, "base64");
|
|
21333
21335
|
// TODO: fix types
|
|
21334
21336
|
// const transaction = VersionedTransaction.deserialize(
|
|
@@ -21336,15 +21338,9 @@ const executeSolanaSwap = async ({ route, signer, connection, onSigned, }) => {
|
|
|
21336
21338
|
// );
|
|
21337
21339
|
const transaction = VersionedTransaction.deserialize(swapTransactionBuf);
|
|
21338
21340
|
try {
|
|
21339
|
-
const
|
|
21341
|
+
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash();
|
|
21340
21342
|
const signature = await signer.sendTransaction(transaction, connection);
|
|
21341
|
-
|
|
21342
|
-
await connection.confirmTransaction({
|
|
21343
|
-
signature,
|
|
21344
|
-
blockhash: latestBlockhash.blockhash,
|
|
21345
|
-
lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
|
|
21346
|
-
});
|
|
21347
|
-
return signature;
|
|
21343
|
+
return { signature, blockhash, lastValidBlockHeight };
|
|
21348
21344
|
}
|
|
21349
21345
|
catch (error) {
|
|
21350
21346
|
console.error("Solana swap failed:", error);
|
|
@@ -21358,10 +21354,9 @@ const executeSolanaSwap = async ({ route, signer, connection, onSigned, }) => {
|
|
|
21358
21354
|
* @param signer - Solana wallet adapter instance
|
|
21359
21355
|
* @param connection - Solana RPC connection
|
|
21360
21356
|
* @param sourceToken - Token information (undefined for native SOL)
|
|
21361
|
-
* @param onSigned - Optional callback triggered when transaction is signed
|
|
21362
21357
|
* @returns Transaction signature
|
|
21363
21358
|
*/
|
|
21364
|
-
const executeSolanaTransfer = async ({ amount, target, signer, connection, sourceToken,
|
|
21359
|
+
const executeSolanaTransfer = async ({ amount, target, signer, connection, sourceToken, }) => {
|
|
21365
21360
|
// Validate signer and target address
|
|
21366
21361
|
if (!signer.publicKey) {
|
|
21367
21362
|
throw new Error("Signer public key not found");
|
|
@@ -21401,15 +21396,17 @@ const executeSolanaTransfer = async ({ amount, target, signer, connection, sourc
|
|
|
21401
21396
|
transaction.recentBlockhash = blockhash;
|
|
21402
21397
|
transaction.feePayer = signer.publicKey;
|
|
21403
21398
|
const signature = await signer.sendTransaction(transaction, connection);
|
|
21404
|
-
|
|
21405
|
-
|
|
21406
|
-
|
|
21407
|
-
|
|
21408
|
-
|
|
21409
|
-
|
|
21410
|
-
|
|
21411
|
-
});
|
|
21412
|
-
|
|
21399
|
+
return { signature, blockhash, lastValidBlockHeight };
|
|
21400
|
+
};
|
|
21401
|
+
const executeSolanaDepositAddressCalldata = async ({ transactionRequest, signer, connection, }) => {
|
|
21402
|
+
if (!isOnChainTxData(transactionRequest)) {
|
|
21403
|
+
throw new Error("Invalid transaction request");
|
|
21404
|
+
}
|
|
21405
|
+
const tx = Transaction.from(Buffer.from(transactionRequest.data, "base64"));
|
|
21406
|
+
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash();
|
|
21407
|
+
tx.recentBlockhash = blockhash;
|
|
21408
|
+
const signature = await signer.sendTransaction(tx, connection);
|
|
21409
|
+
return { signature, blockhash, lastValidBlockHeight };
|
|
21413
21410
|
};
|
|
21414
21411
|
|
|
21415
21412
|
var StellarHorizonAssetType;
|
|
@@ -23294,7 +23291,7 @@ const filterViewableTokens = (tokens, config, direction) => {
|
|
|
23294
23291
|
};
|
|
23295
23292
|
const getSecretNetworkBalances = async (chainData, cosmosAddress, squidTokens, keplrTypeWallet) => {
|
|
23296
23293
|
const squidSecretTokens = squidTokens.filter((t) => t.chainId === CHAIN_IDS.SECRET);
|
|
23297
|
-
const { fetchAllSecretBalances } = await import('./secretService-
|
|
23294
|
+
const { fetchAllSecretBalances } = await import('./secretService-Dg30HRy1.js');
|
|
23298
23295
|
return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
|
|
23299
23296
|
};
|
|
23300
23297
|
function getTokenAssetsKey(token) {
|
|
@@ -26692,7 +26689,7 @@ function useStellarWallets() {
|
|
|
26692
26689
|
try {
|
|
26693
26690
|
const { allowAllModules: initializeAllModules } = await import('@creit.tech/stellar-wallets-kit');
|
|
26694
26691
|
const { LedgerModule } = await import('@creit.tech/stellar-wallets-kit/modules/ledger.module');
|
|
26695
|
-
const { formatStellarWallet } = await import('./stellarService.client-
|
|
26692
|
+
const { formatStellarWallet } = await import('./stellarService.client-B9bDVrW_.js');
|
|
26696
26693
|
const modules = [...initializeAllModules(), new LedgerModule()];
|
|
26697
26694
|
const promises = modules.map(async (module) => {
|
|
26698
26695
|
const isAvailable = await module.isAvailable();
|
|
@@ -29335,7 +29332,6 @@ function timeout(ms, promise) {
|
|
|
29335
29332
|
|
|
29336
29333
|
const DEFAULT_REFRESH_INTERVAL_MS$1 = 15000;
|
|
29337
29334
|
const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS$1, }) => {
|
|
29338
|
-
const { isChainTypeConnected } = useWallet();
|
|
29339
29335
|
const isNativeToken = token?.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
|
|
29340
29336
|
const userAddressParsed = userAddress;
|
|
29341
29337
|
// Only fetch using useBalance if it's a native token
|
|
@@ -29348,7 +29344,7 @@ const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshInter
|
|
|
29348
29344
|
isNativeToken &&
|
|
29349
29345
|
!!chain &&
|
|
29350
29346
|
chain.chainType === ChainType.EVM &&
|
|
29351
|
-
|
|
29347
|
+
isWalletAddressValid(chain, userAddress),
|
|
29352
29348
|
refetchInterval: refreshIntervalMs,
|
|
29353
29349
|
retry: 2,
|
|
29354
29350
|
},
|
|
@@ -29362,10 +29358,10 @@ const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshInter
|
|
|
29362
29358
|
args: [userAddressParsed],
|
|
29363
29359
|
chainId: Number(chain?.chainId),
|
|
29364
29360
|
query: {
|
|
29365
|
-
enabled:
|
|
29366
|
-
enabled &&
|
|
29361
|
+
enabled: enabled &&
|
|
29367
29362
|
!!userAddress &&
|
|
29368
|
-
!isNativeToken
|
|
29363
|
+
!isNativeToken &&
|
|
29364
|
+
isWalletAddressValid(chain, userAddress),
|
|
29369
29365
|
refetchInterval: refreshIntervalMs,
|
|
29370
29366
|
retry: 2,
|
|
29371
29367
|
},
|
|
@@ -29535,12 +29531,12 @@ function useNativeTokenForChain(chain) {
|
|
|
29535
29531
|
}
|
|
29536
29532
|
|
|
29537
29533
|
const useEvmNativeBalance = ({ address, chain, }) => {
|
|
29538
|
-
const { isChainTypeConnected } = useWallet();
|
|
29539
29534
|
const { data: nativeEvmBalance, isLoading } = useBalance({
|
|
29540
29535
|
address: address,
|
|
29541
29536
|
chainId: Number(chain?.chainId),
|
|
29542
29537
|
query: {
|
|
29543
|
-
enabled:
|
|
29538
|
+
enabled: chain?.chainType === ChainType.EVM &&
|
|
29539
|
+
isWalletAddressValid(chain, address),
|
|
29544
29540
|
refetchInterval: 10000,
|
|
29545
29541
|
staleTime: 5000,
|
|
29546
29542
|
refetchOnWindowFocus: true,
|
|
@@ -29562,13 +29558,13 @@ const useEvmNativeBalance = ({ address, chain, }) => {
|
|
|
29562
29558
|
};
|
|
29563
29559
|
};
|
|
29564
29560
|
const useCosmosNativeBalance = ({ address, chain, }) => {
|
|
29565
|
-
const { isConnected: isCosmosConnected } = useCosmosContext();
|
|
29566
29561
|
const { nativeToken: nativeCosmosToken } = useNativeTokenForChain(chain);
|
|
29567
29562
|
const { balance: rawBalance, isLoading } = useCosmosBalance({
|
|
29568
29563
|
chain,
|
|
29569
29564
|
token: nativeCosmosToken,
|
|
29570
29565
|
userAddress: address,
|
|
29571
|
-
enabled:
|
|
29566
|
+
enabled: chain?.chainType === ChainType.COSMOS &&
|
|
29567
|
+
isWalletAddressValid(chain, address),
|
|
29572
29568
|
refreshIntervalMs: 10000,
|
|
29573
29569
|
});
|
|
29574
29570
|
const balance = useMemo(() => {
|
|
@@ -29616,9 +29612,9 @@ const useSolanaNativeBalance = ({ chain, address, }) => {
|
|
|
29616
29612
|
const balance = await getSolanaNativeBalance(address);
|
|
29617
29613
|
return formatBNToReadable(balance, nativeToken.decimals);
|
|
29618
29614
|
}, {
|
|
29619
|
-
enabled:
|
|
29620
|
-
|
|
29621
|
-
chain
|
|
29615
|
+
enabled: nativeToken?.decimals != null &&
|
|
29616
|
+
chain?.chainType === ChainType.SOLANA &&
|
|
29617
|
+
isWalletAddressValid(chain, address),
|
|
29622
29618
|
refetchInterval: 40000,
|
|
29623
29619
|
staleTime: 20000,
|
|
29624
29620
|
refetchOnWindowFocus: true,
|
|
@@ -29643,6 +29639,8 @@ const useSuiNativeBalance = ({ address, chain, }) => {
|
|
|
29643
29639
|
chain,
|
|
29644
29640
|
token: nativeToken,
|
|
29645
29641
|
userAddress: address,
|
|
29642
|
+
enabled: chain?.chainType === ChainType.SUI &&
|
|
29643
|
+
isWalletAddressValid(chain, address),
|
|
29646
29644
|
});
|
|
29647
29645
|
const balance = useMemo(() => {
|
|
29648
29646
|
if (nativeToken?.decimals && rawBalance) {
|
|
@@ -29663,7 +29661,8 @@ const useXrplNativeBalance = ({ address, chain, }) => {
|
|
|
29663
29661
|
chain,
|
|
29664
29662
|
token: nativeToken,
|
|
29665
29663
|
userAddress: address,
|
|
29666
|
-
enabled: chain?.chainType === ChainType.XRPL
|
|
29664
|
+
enabled: chain?.chainType === ChainType.XRPL &&
|
|
29665
|
+
isWalletAddressValid(chain, address),
|
|
29667
29666
|
});
|
|
29668
29667
|
const balance = useMemo(() => {
|
|
29669
29668
|
if (nativeToken?.decimals && rawBalance) {
|
|
@@ -29684,7 +29683,8 @@ const useStellarNativeBalance = ({ address, chain, }) => {
|
|
|
29684
29683
|
chain,
|
|
29685
29684
|
token: nativeToken,
|
|
29686
29685
|
userAddress: address,
|
|
29687
|
-
enabled: chain?.chainType === ChainType.STELLAR
|
|
29686
|
+
enabled: chain?.chainType === ChainType.STELLAR &&
|
|
29687
|
+
isWalletAddressValid(chain, address),
|
|
29688
29688
|
});
|
|
29689
29689
|
const balance = useMemo(() => {
|
|
29690
29690
|
if (nativeToken?.decimals && rawBalance) {
|
|
@@ -30012,7 +30012,7 @@ function hederaWalletConnect(parameters) {
|
|
|
30012
30012
|
const optionalChains = config.chains.map((x) => x.id);
|
|
30013
30013
|
if (!optionalChains.length)
|
|
30014
30014
|
return;
|
|
30015
|
-
const { EthereumProvider } = await import('./index.es-
|
|
30015
|
+
const { EthereumProvider } = await import('./index.es-DBsq8Frv.js');
|
|
30016
30016
|
const rawProvider = await EthereumProvider.init({
|
|
30017
30017
|
...restParameters,
|
|
30018
30018
|
disableProviderPing: true,
|
|
@@ -31824,7 +31824,7 @@ async function sendTransactionCosmos({ amount, rpcUrl, signer, to, token, native
|
|
|
31824
31824
|
}
|
|
31825
31825
|
async function sendTransactionSolana({ signer, amount, to, token, connection, }) {
|
|
31826
31826
|
const amountBn = BigInt(amount);
|
|
31827
|
-
const txHash = await executeSolanaTransfer({
|
|
31827
|
+
const { signature: txHash } = await executeSolanaTransfer({
|
|
31828
31828
|
amount: amountBn,
|
|
31829
31829
|
connection,
|
|
31830
31830
|
signer,
|
|
@@ -36148,7 +36148,7 @@ const useExecuteTransaction = (squidRoute) => {
|
|
|
36148
36148
|
});
|
|
36149
36149
|
const swapMutationSolana = useMutation(async ({ id, route }) => {
|
|
36150
36150
|
try {
|
|
36151
|
-
if (!route) {
|
|
36151
|
+
if (!route?.transactionRequest) {
|
|
36152
36152
|
throw new Error("Route is required");
|
|
36153
36153
|
}
|
|
36154
36154
|
if (!solanaSigner) {
|
|
@@ -36157,69 +36157,69 @@ const useExecuteTransaction = (squidRoute) => {
|
|
|
36157
36157
|
if (!route.params.fromAddress || !route.params.toAddress) {
|
|
36158
36158
|
throw new Error("From or to address is required");
|
|
36159
36159
|
}
|
|
36160
|
-
|
|
36161
|
-
|
|
36162
|
-
|
|
36163
|
-
|
|
36164
|
-
|
|
36165
|
-
|
|
36166
|
-
|
|
36167
|
-
|
|
36168
|
-
|
|
36160
|
+
let txResult;
|
|
36161
|
+
let transactionIdForStatus;
|
|
36162
|
+
switch (route.transactionRequest.type) {
|
|
36163
|
+
case SquidDataType.ChainflipDepositAddress: {
|
|
36164
|
+
// Means it's a transfer to a deposit address
|
|
36165
|
+
// Instead of a Swap/Contract call using a DEX like Jupiter
|
|
36166
|
+
const depositData = useDepositAddressStore.getState().deposit;
|
|
36167
|
+
if (!depositData?.depositAddress) {
|
|
36168
|
+
throw new Error("Deposit address is required");
|
|
36169
|
+
}
|
|
36170
|
+
txResult = await executeSolanaTransfer({
|
|
36171
|
+
amount: BigInt(route.params.fromAmount),
|
|
36172
|
+
target: depositData.depositAddress,
|
|
36173
|
+
signer: solanaSigner,
|
|
36174
|
+
connection: solanaConnection,
|
|
36175
|
+
sourceToken: findToken(route.params.fromToken, route.params.fromChain),
|
|
36176
|
+
});
|
|
36177
|
+
transactionIdForStatus = depositData.chainflipStatusTrackingId;
|
|
36178
|
+
break;
|
|
36179
|
+
}
|
|
36180
|
+
case SquidDataType.OnChainExecution: {
|
|
36181
|
+
txResult = await executeSolanaSwap({
|
|
36182
|
+
transactionRequest: route.transactionRequest,
|
|
36183
|
+
signer: solanaSigner,
|
|
36184
|
+
connection: solanaConnection,
|
|
36185
|
+
});
|
|
36186
|
+
break;
|
|
36187
|
+
}
|
|
36188
|
+
case SquidDataType.DepositAddressCalldata: {
|
|
36189
|
+
txResult = await executeSolanaDepositAddressCalldata({
|
|
36190
|
+
transactionRequest: route.transactionRequest,
|
|
36191
|
+
signer: solanaSigner,
|
|
36192
|
+
connection: solanaConnection,
|
|
36193
|
+
});
|
|
36194
|
+
break;
|
|
36195
|
+
}
|
|
36196
|
+
default: {
|
|
36197
|
+
throw new Error(`Unhandled transaction type: ${route.transactionRequest.type}`);
|
|
36169
36198
|
}
|
|
36170
|
-
const signature = await executeSolanaTransfer({
|
|
36171
|
-
amount: BigInt(route.params.fromAmount),
|
|
36172
|
-
target: depositData.depositAddress,
|
|
36173
|
-
signer: solanaSigner,
|
|
36174
|
-
connection: solanaConnection,
|
|
36175
|
-
sourceToken: findToken(route.params.fromToken, route?.params?.fromChain),
|
|
36176
|
-
onSigned: (txHash) => {
|
|
36177
|
-
WidgetEvents.getInstance().dispatchSwapExecuteCall(route, txHash);
|
|
36178
|
-
const txParams = setTransactionState({
|
|
36179
|
-
route,
|
|
36180
|
-
txHash,
|
|
36181
|
-
transactionIdForStatus: depositData.chainflipStatusTrackingId,
|
|
36182
|
-
userAddress: sourceUserAddress,
|
|
36183
|
-
status: TransactionStatus.INITIAL_LOADING,
|
|
36184
|
-
sourceStatus: TransactionStatus.ONGOING,
|
|
36185
|
-
id,
|
|
36186
|
-
});
|
|
36187
|
-
if (txParams) {
|
|
36188
|
-
addSwapTransaction({
|
|
36189
|
-
...txParams,
|
|
36190
|
-
params: route.params,
|
|
36191
|
-
estimate: route.estimate,
|
|
36192
|
-
});
|
|
36193
|
-
}
|
|
36194
|
-
},
|
|
36195
|
-
});
|
|
36196
|
-
return signature;
|
|
36197
36199
|
}
|
|
36198
|
-
const signature =
|
|
36200
|
+
const { signature: txHash, blockhash, lastValidBlockHeight } = txResult;
|
|
36201
|
+
WidgetEvents.getInstance().dispatchSwapExecuteCall(route, txHash);
|
|
36202
|
+
const txParams = setTransactionState({
|
|
36199
36203
|
route,
|
|
36200
|
-
|
|
36201
|
-
|
|
36202
|
-
|
|
36203
|
-
|
|
36204
|
-
|
|
36205
|
-
|
|
36206
|
-
|
|
36207
|
-
|
|
36208
|
-
|
|
36209
|
-
|
|
36210
|
-
|
|
36211
|
-
|
|
36212
|
-
|
|
36213
|
-
|
|
36214
|
-
|
|
36215
|
-
|
|
36216
|
-
|
|
36217
|
-
|
|
36218
|
-
});
|
|
36219
|
-
}
|
|
36220
|
-
},
|
|
36204
|
+
txHash,
|
|
36205
|
+
userAddress: sourceUserAddress,
|
|
36206
|
+
status: TransactionStatus.INITIAL_LOADING,
|
|
36207
|
+
sourceStatus: TransactionStatus.ONGOING,
|
|
36208
|
+
id,
|
|
36209
|
+
transactionIdForStatus,
|
|
36210
|
+
});
|
|
36211
|
+
if (txParams) {
|
|
36212
|
+
addSwapTransaction({
|
|
36213
|
+
...txParams,
|
|
36214
|
+
params: route.params,
|
|
36215
|
+
estimate: route.estimate,
|
|
36216
|
+
});
|
|
36217
|
+
}
|
|
36218
|
+
await solanaConnection.confirmTransaction({
|
|
36219
|
+
blockhash,
|
|
36220
|
+
lastValidBlockHeight,
|
|
36221
|
+
signature: txHash,
|
|
36221
36222
|
});
|
|
36222
|
-
return signature;
|
|
36223
36223
|
}
|
|
36224
36224
|
catch (error) {
|
|
36225
36225
|
console.error("Solana transaction failed:", error);
|
|
@@ -36266,47 +36266,91 @@ const useExecuteTransaction = (squidRoute) => {
|
|
|
36266
36266
|
},
|
|
36267
36267
|
});
|
|
36268
36268
|
const swapMutationBitcoin = useMutation(async ({ id, route }) => {
|
|
36269
|
-
|
|
36270
|
-
|
|
36271
|
-
|
|
36272
|
-
}
|
|
36273
|
-
if (!
|
|
36274
|
-
throw new Error(
|
|
36269
|
+
console.log("Validating route", {
|
|
36270
|
+
bitcoinSigner,
|
|
36271
|
+
route,
|
|
36272
|
+
});
|
|
36273
|
+
if (!bitcoinSigner || !route?.transactionRequest) {
|
|
36274
|
+
throw new Error("Need all parameters");
|
|
36275
36275
|
}
|
|
36276
|
-
|
|
36277
|
-
|
|
36278
|
-
|
|
36279
|
-
|
|
36280
|
-
|
|
36281
|
-
|
|
36282
|
-
|
|
36276
|
+
switch (route.transactionRequest.type) {
|
|
36277
|
+
case SquidDataType.ChainflipDepositAddress: {
|
|
36278
|
+
const { depositAddress, amount: sendAmount, chainflipStatusTrackingId, } = useDepositAddressStore.getState().deposit ?? {};
|
|
36279
|
+
const allParamsValid = route && bitcoinSigner && depositAddress && sendAmount;
|
|
36280
|
+
if (!allParamsValid) {
|
|
36281
|
+
throw new Error("Need all parameters");
|
|
36282
|
+
}
|
|
36283
|
+
await changeNetworkIfNeeded.mutateAsync();
|
|
36284
|
+
dispatchSignatureRequestEvent(route);
|
|
36285
|
+
const { txHash } = await bitcoinSigner.sendBTC(depositAddress, Number(sendAmount));
|
|
36286
|
+
if (txHash) {
|
|
36287
|
+
resetQueriesAfterTxSigned();
|
|
36288
|
+
}
|
|
36289
|
+
// Dispatch event so it can be listened from outside the widget
|
|
36290
|
+
WidgetEvents.getInstance().dispatchSwapExecuteCall(route, txHash);
|
|
36291
|
+
if (route.transactionRequest) {
|
|
36292
|
+
const txParams = setTransactionState({
|
|
36293
|
+
route,
|
|
36294
|
+
txHash,
|
|
36295
|
+
// When bridging from Bitcoin we need to send the chainflipId to the status endpoint
|
|
36296
|
+
// instead of the Bitcoin transaction hash
|
|
36297
|
+
transactionIdForStatus: chainflipStatusTrackingId,
|
|
36298
|
+
userAddress: sourceUserAddress,
|
|
36299
|
+
status: TransactionStatus.INITIAL_LOADING,
|
|
36300
|
+
sourceStatus: TransactionStatus.ONGOING,
|
|
36301
|
+
axelarUrl: undefined,
|
|
36302
|
+
id,
|
|
36303
|
+
});
|
|
36304
|
+
if (txParams) {
|
|
36305
|
+
addSwapTransaction({
|
|
36306
|
+
...txParams,
|
|
36307
|
+
params: route.params,
|
|
36308
|
+
estimate: route.estimate,
|
|
36309
|
+
});
|
|
36310
|
+
}
|
|
36311
|
+
}
|
|
36312
|
+
break;
|
|
36283
36313
|
}
|
|
36284
|
-
|
|
36285
|
-
|
|
36286
|
-
|
|
36287
|
-
|
|
36288
|
-
route
|
|
36289
|
-
|
|
36290
|
-
|
|
36291
|
-
|
|
36292
|
-
|
|
36293
|
-
|
|
36294
|
-
|
|
36295
|
-
|
|
36296
|
-
|
|
36297
|
-
|
|
36298
|
-
}
|
|
36299
|
-
|
|
36300
|
-
|
|
36301
|
-
|
|
36302
|
-
|
|
36303
|
-
|
|
36314
|
+
case SquidDataType.DepositAddressCalldata: {
|
|
36315
|
+
console.log(`Route type: ${route.transactionRequest?.type}`);
|
|
36316
|
+
if (!isOnChainTxData(route.transactionRequest)) {
|
|
36317
|
+
console.log("Invalid route data", route.transactionRequest);
|
|
36318
|
+
throw new Error("Invalid route data");
|
|
36319
|
+
}
|
|
36320
|
+
const { data: transactionHex } = route.transactionRequest;
|
|
36321
|
+
await changeNetworkIfNeeded.mutateAsync();
|
|
36322
|
+
dispatchSignatureRequestEvent(route);
|
|
36323
|
+
console.log("Signing psbt", { transactionHex });
|
|
36324
|
+
const { txHash } = await bitcoinSigner.signPsbt(transactionHex);
|
|
36325
|
+
console.log("Signed psbt", { txHash });
|
|
36326
|
+
if (txHash) {
|
|
36327
|
+
resetQueriesAfterTxSigned();
|
|
36328
|
+
}
|
|
36329
|
+
// Dispatch event so it can be listened from outside the widget
|
|
36330
|
+
WidgetEvents.getInstance().dispatchSwapExecuteCall(route, txHash);
|
|
36331
|
+
if (route.transactionRequest) {
|
|
36332
|
+
const txParams = setTransactionState({
|
|
36333
|
+
route,
|
|
36334
|
+
txHash,
|
|
36335
|
+
userAddress: sourceUserAddress,
|
|
36336
|
+
status: TransactionStatus.INITIAL_LOADING,
|
|
36337
|
+
sourceStatus: TransactionStatus.ONGOING,
|
|
36338
|
+
axelarUrl: undefined,
|
|
36339
|
+
id,
|
|
36304
36340
|
});
|
|
36341
|
+
if (txParams) {
|
|
36342
|
+
addSwapTransaction({
|
|
36343
|
+
...txParams,
|
|
36344
|
+
params: route.params,
|
|
36345
|
+
estimate: route.estimate,
|
|
36346
|
+
});
|
|
36347
|
+
}
|
|
36305
36348
|
}
|
|
36349
|
+
break;
|
|
36350
|
+
}
|
|
36351
|
+
default: {
|
|
36352
|
+
throw new Error(`Unhandled route type ${route.transactionRequest.type}`);
|
|
36306
36353
|
}
|
|
36307
|
-
}
|
|
36308
|
-
else {
|
|
36309
|
-
throw new Error("Need all parameters");
|
|
36310
36354
|
}
|
|
36311
36355
|
});
|
|
36312
36356
|
const swapMutationXrpl = useMutation(async ({ id, route }) => {
|
|
@@ -37453,5 +37497,5 @@ const SquidProvider = ({ children, config, placeholder, }) => {
|
|
|
37453
37497
|
React.createElement(CosmosProvider, null, children)))))))))) : (placeholder);
|
|
37454
37498
|
};
|
|
37455
37499
|
|
|
37456
|
-
export { useDepositAddress as $, AxelarStatusResponseType as A, useHederaTokenAssociations as B, CHAIN_IDS as C, DEFAULT_LOCALE as D, useKeyboardNavigation as E, useSquidQueryClient as F, useSquid as G, HistoryTxType as H, useStellarAccountActivation as I, useStellarTrustLine as J, useAddressBookStore as K, useAssetsColorsStore as L, useFavoriteTokensStore as M, Nr as N, useHistoryStore as O, useSendTransactionStore as P, QueryKeys as Q, useConfigStore as R, SquidStatusErrorType as S, TransactionErrorType as T, useSquidStore as U, useSwapRoutePersistStore as V, Wo as W, XamanXrplNetwork as X, useTransactionStore as Y, ConnectingWalletStatus as Z, useWalletStore as _, WindowWalletFlag as a, useGetOnrampPaymentTypes as a$, useSwap as a0, buildUrlSearchParamsFromSwapEvent as a1, parseInitialAssetsFromUrl as a2, useUrlSwapParams as a3, useAllConnectedWalletBalances as a4, useAllTokensWithBalanceForChainType as a5, useCosmosBalance as a6, useEvmBalance as a7, useMultiChainBalance as a8, useMultipleTokenPrices as a9, useSwapTransactionStatus as aA, useAvatar as aB, useHistory as aC, useDebouncedValue as aD, useAddToken as aE, useAutoConnect as aF, useEnsDataForAddress as aG, useEnsSearch as aH, useGnosisContext as aI, useIsSameAddressAndGnosisContext as aJ, useIntegratorContext as aK, useMultiChainWallet as aL, useSigner as aM, useWallet as aN, useWallets as aO, useXrplTrustLine as aP, TX_STATUS_CONSTANTS as aQ, FINAL_TRANSACTION_STATUSES as aR, useGetFiatQuote as aS, useGetOnRampConfig as aT, useExecuteFiatQuote as aU, useFiatOnRampTxStatus as aV, useFiatTransactions as aW, useCurrencyDetails as aX, useCountryDetails as aY, useAvailableQuotes as aZ, useRecommendedQuote as a_, useBitcoinNativeBalance as aa, useCosmosNativeBalance as ab, useEvmNativeBalance as ac, useNativeBalance as ad, useSolanaNativeBalance as ae, useStellarNativeBalance as af, useSuiNativeBalance as ag, useXrplNativeBalance as ah, useNativeTokenForChain as ai, useSingleTokenPrice as aj, useSourceChainGasToken as ak, useSquidTokens as al, useHistoricalData as am, useTokensData as an, useEstimateSendTransaction as ao, useSendTransaction as ap, useSendTransactionGas as aq, useAllTransactionsStatus as ar, useApproval as as, useEstimate as at, useEstimatePriceImpact as au, useExecuteTransaction as av, useGetRoute as aw, useGetRouteWrapper as ax, useRouteWarnings as ay, useSendTransactionStatus as az, chainTypeToZeroAddressMap as b, filterWagmiConnector as b$, useSuggestedFiatAmounts as b0, SquidProvider as b1, EnsService as b2, getXummClient as b3, isXamanXAppContext as b4, getQueryHeaders as b5, getStatusCode as b6, is404Error as b7, assetsBaseUrl as b8, shareSubgraphId as b9, fetchHighestBalanceToken as bA, getInitialOrDefaultTokenAddressForChain as bB, getInitialTokenAddressForChain as bC, filterTokensForDestination as bD, getInitialChainIdFromConfig as bE, getCosmosKey as bF, getKeysSettled as bG, getAllKeysForSupportedCosmosChains as bH, isCosmosAddressValid as bI, getCosmosSigningClient as bJ, getCosmosChainInfosObject as bK, connectCosmosWallet as bL, isFallbackAddressNeeded as bM, suggestChainOrThrow as bN, normalizeError as bO, transactionErrorCode as bP, isUserRejectionError as bQ, getTransactionError as bR, handleTransactionErrorEvents as bS, isSwapRouteError as bT, isStatusError as bU, createQuoteRequestParamsHash as bV, WidgetEvents as bW, EvmNetworkNotSupportedErrorCode as bX, addEthereumChain as bY, parseEvmAddress as bZ, formatEvmWallet as b_, sortTokensBySharedSubgraphIds as ba, getSupportedChainIdsForDirection as bb, filterChains as bc, filterTokens as bd, getTokenImage as be, getNewSwapParamsFromInput as bf, sortAllTokens as bg, findToken as bh, findNativeToken as bi, normalizeIbcAddress as bj, groupTokensBySymbol as bk, groupTokensByChainId as bl, filterViewableTokens as bm, getSecretNetworkBalances as bn, getTokenAssetsKey as bo, fetchAssetsColors as bp, initializeSquidWithAssetsColors as bq, isEmptyObject as br, normalizeTokenSymbol as bs, areTokenSymbolsCompatible as bt, isEvmosChain as bu, resolveChainIdFromAsset as bv, getConfigWithDefaults as bw, randomIntFromInterval as bx, getTokensForChain as by, getFirstAvailableChainId as bz, chainTypeToNativeTokenAddressMap as c, isHistoryTransactionFailed as c$, waitForReceiptWithRetry as c0, getUserCountry as c1, getCountryData as c2, getCurrencyData as c3, adaptiveRound as c4, getSuggestedAmountsForCurrency as c5, HederaExtensionHelper as c6, convertHederaAccountIdToEvmAddress as c7, convertEvmAddressToHederaAccountId as c8, scaleHbarToWei as c9,
|
|
37457
|
-
//# sourceMappingURL=index-
|
|
37500
|
+
export { useDepositAddress as $, AxelarStatusResponseType as A, useHederaTokenAssociations as B, CHAIN_IDS as C, DEFAULT_LOCALE as D, useKeyboardNavigation as E, useSquidQueryClient as F, useSquid as G, HistoryTxType as H, useStellarAccountActivation as I, useStellarTrustLine as J, useAddressBookStore as K, useAssetsColorsStore as L, useFavoriteTokensStore as M, Nr as N, useHistoryStore as O, useSendTransactionStore as P, QueryKeys as Q, useConfigStore as R, SquidStatusErrorType as S, TransactionErrorType as T, useSquidStore as U, useSwapRoutePersistStore as V, Wo as W, XamanXrplNetwork as X, useTransactionStore as Y, ConnectingWalletStatus as Z, useWalletStore as _, WindowWalletFlag as a, useGetOnrampPaymentTypes as a$, useSwap as a0, buildUrlSearchParamsFromSwapEvent as a1, parseInitialAssetsFromUrl as a2, useUrlSwapParams as a3, useAllConnectedWalletBalances as a4, useAllTokensWithBalanceForChainType as a5, useCosmosBalance as a6, useEvmBalance as a7, useMultiChainBalance as a8, useMultipleTokenPrices as a9, useSwapTransactionStatus as aA, useAvatar as aB, useHistory as aC, useDebouncedValue as aD, useAddToken as aE, useAutoConnect as aF, useEnsDataForAddress as aG, useEnsSearch as aH, useGnosisContext as aI, useIsSameAddressAndGnosisContext as aJ, useIntegratorContext as aK, useMultiChainWallet as aL, useSigner as aM, useWallet as aN, useWallets as aO, useXrplTrustLine as aP, TX_STATUS_CONSTANTS as aQ, FINAL_TRANSACTION_STATUSES as aR, useGetFiatQuote as aS, useGetOnRampConfig as aT, useExecuteFiatQuote as aU, useFiatOnRampTxStatus as aV, useFiatTransactions as aW, useCurrencyDetails as aX, useCountryDetails as aY, useAvailableQuotes as aZ, useRecommendedQuote as a_, useBitcoinNativeBalance as aa, useCosmosNativeBalance as ab, useEvmNativeBalance as ac, useNativeBalance as ad, useSolanaNativeBalance as ae, useStellarNativeBalance as af, useSuiNativeBalance as ag, useXrplNativeBalance as ah, useNativeTokenForChain as ai, useSingleTokenPrice as aj, useSourceChainGasToken as ak, useSquidTokens as al, useHistoricalData as am, useTokensData as an, useEstimateSendTransaction as ao, useSendTransaction as ap, useSendTransactionGas as aq, useAllTransactionsStatus as ar, useApproval as as, useEstimate as at, useEstimatePriceImpact as au, useExecuteTransaction as av, useGetRoute as aw, useGetRouteWrapper as ax, useRouteWarnings as ay, useSendTransactionStatus as az, chainTypeToZeroAddressMap as b, filterWagmiConnector as b$, useSuggestedFiatAmounts as b0, SquidProvider as b1, EnsService as b2, getXummClient as b3, isXamanXAppContext as b4, getQueryHeaders as b5, getStatusCode as b6, is404Error as b7, assetsBaseUrl as b8, shareSubgraphId as b9, fetchHighestBalanceToken as bA, getInitialOrDefaultTokenAddressForChain as bB, getInitialTokenAddressForChain as bC, filterTokensForDestination as bD, getInitialChainIdFromConfig as bE, getCosmosKey as bF, getKeysSettled as bG, getAllKeysForSupportedCosmosChains as bH, isCosmosAddressValid as bI, getCosmosSigningClient as bJ, getCosmosChainInfosObject as bK, connectCosmosWallet as bL, isFallbackAddressNeeded as bM, suggestChainOrThrow as bN, normalizeError as bO, transactionErrorCode as bP, isUserRejectionError as bQ, getTransactionError as bR, handleTransactionErrorEvents as bS, isSwapRouteError as bT, isStatusError as bU, createQuoteRequestParamsHash as bV, WidgetEvents as bW, EvmNetworkNotSupportedErrorCode as bX, addEthereumChain as bY, parseEvmAddress as bZ, formatEvmWallet as b_, sortTokensBySharedSubgraphIds as ba, getSupportedChainIdsForDirection as bb, filterChains as bc, filterTokens as bd, getTokenImage as be, getNewSwapParamsFromInput as bf, sortAllTokens as bg, findToken as bh, findNativeToken as bi, normalizeIbcAddress as bj, groupTokensBySymbol as bk, groupTokensByChainId as bl, filterViewableTokens as bm, getSecretNetworkBalances as bn, getTokenAssetsKey as bo, fetchAssetsColors as bp, initializeSquidWithAssetsColors as bq, isEmptyObject as br, normalizeTokenSymbol as bs, areTokenSymbolsCompatible as bt, isEvmosChain as bu, resolveChainIdFromAsset as bv, getConfigWithDefaults as bw, randomIntFromInterval as bx, getTokensForChain as by, getFirstAvailableChainId as bz, chainTypeToNativeTokenAddressMap as c, isHistoryTransactionFailed as c$, waitForReceiptWithRetry as c0, getUserCountry as c1, getCountryData as c2, getCurrencyData as c3, adaptiveRound as c4, getSuggestedAmountsForCurrency as c5, HederaExtensionHelper as c6, convertHederaAccountIdToEvmAddress as c7, convertEvmAddressToHederaAccountId as c8, scaleHbarToWei as c9, isValidIssuedAsset as cA, isValidHorizonAsset as cB, formatTransactionHistoryDate as cC, getAxelarExplorerTxUrl as cD, getSourceExplorerTxUrl as cE, getMainExplorerUrl as cF, formatDistance as cG, formatSeconds as cH, formatSwapTxStatusResponseForStorage as cI, simplifyRouteAction as cJ, fetchSwapTransactionStatus as cK, compareTransactionIds as cL, isCoralBridgeAction as cM, sleep as cN, isChainflipBridgeTransaction as cO, isOnChainTxData as cP, getHistoryTransactionId as cQ, getStepStatuses as cR, getHalfSuccessState as cS, getStepsInfos as cT, getSwapTxStatusRefetchInterval as cU, getSendTxStatusRefetchInterval as cV, chainflipMultihopBridgeType as cW, getBridgeType as cX, getTransactionStatus as cY, getTransactionEndStatus as cZ, isHistoryTransactionPending as c_, scaleWeiToHbar as ca, parseToBigInt as cb, roundNumericValue as cc, formatUnitsRounded as cd, formatTokenAmount as ce, formatUsdAmount as cf, trimExtraDecimals as cg, getNumericValue as ch, cleanAmount as ci, convertTokenAmountToUSD as cj, convertUSDToTokenAmount as ck, calculateTotal24hChange as cl, getRouteExpiry as cm, searchTokens as cn, filterSolanaWallets as co, isSolanaAddressValid as cp, executeSolanaSwap as cq, executeSolanaTransfer as cr, executeSolanaDepositAddressCalldata as cs, isStellarAddressValid as ct, getStellarNetwork as cu, stellarAddressToScVal as cv, getStellarTrustLineAsset as cw, isStellarToken as cx, isStellarIssuedToken as cy, getStellarHorizonApiUrl as cz, definedInWindow as d, isHistoryTransactionWarning as d0, isHistoryTransactionEnded as d1, formatHash as d2, isWalletAddressValid as d3, redirectToExtensionsStore as d4, accessProperty as d5, populateWallets as d6, getDefaultChain as d7, sortWallets as d8, areSameAddress as d9, sortAddressBook as da, calculateTotalUsdBalanceUSD as db, addTokenToWallet as dc, isEvmChainNotSupportedError as dd, getWalletSupportedChainTypes as de, getConnectorForChainType as df, walletSupportsChainType as dg, connectWallet as dh, cancelConnectWallet as di, isProblematicConnector as dj, mergeWallets as dk, isXionSmartContractAddress as dl, isXrplAddressValid as dm, buildXrplTrustSetTx as dn, getXrplNetwork as dp, parseXrplPaymentTx as dq, parseXrplTokenAddress as dr, er as e, formatBNToReadable as f, DEFAULT_ROUTE_REFETCH_INTERVAL as g, destinationAddressResetValue as h, fallbackAddressResetValue as i, nativeCosmosTokenAddress as j, nativeEvmTokenAddress as k, nativeSolanaTokenAddress as l, nativeStellarTokenAddress as m, nativeBitcoinTokenAddress as n, nativeSuiTokenAddress as o, nativeXrplTokenAddress as p, CosmosProvider as q, SendTransactionStatus as r, TransactionStatus as s, useTrackSearchEmpty as t, useCosmosContext as u, useSquidChains as v, walletIconBaseUrl as w, useClient as x, useCosmosForChain as y, useHederaAccountActivation as z };
|
|
37501
|
+
//# sourceMappingURL=index-BOXqAr2r.js.map
|