@silentswap/react 0.1.47 → 0.1.48

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.
@@ -702,9 +702,6 @@ export function useBridgeExecution(walletClient, connector, solanaConnector, sol
702
702
  });
703
703
  // Handle bridge execution based on selected provider
704
704
  if (selectedProvider === 'debridge') {
705
- // Note: allowanceTarget is not needed here because approval is already handled
706
- // in executeSwap before bridge execution (matching Svelte silentswap.ts line 985-986).
707
- // DeBridge will provide its own allowanceTarget from the response if needed.
708
705
  try {
709
706
  return await executeDebridgeBridge(sourceChainId, sourceTokenAddress, isSourceNative, bridgeUsdcAmount, depositCalldata, evmSignerAddress, // Use EVM signer address for deposit calldata
710
707
  allowanceTarget ?? '', // From solve phase; create-tx with enableEstimate:false is used for approval when needed
@@ -712,12 +709,19 @@ export function useBridgeExecution(walletClient, connector, solanaConnector, sol
712
709
  walletClient, connector, setCurrentStep, onStatus);
713
710
  }
714
711
  catch (error) {
715
- console.warn('DeBridge execution failed, falling back to relay.link bridge:', error instanceof Error ? error.message : String(error));
716
- // On deBridge execution failure, fall back to relay.link using the same USDC amount.
717
- // This matches the requirement: if deBridge quote/order fails, use relay quote/bridge.
718
- return await executeRelayBridge(walletClient, connector, sourceChainId, sourceTokenAddress, isSourceNative, bridgeUsdcAmount, approveUsdcCalldata, depositCalldata, evmUserForBridge, // Use wallet account address for bridge quotes
719
- depositorAddress, // Pass environment-based depositor address
720
- setCurrentStep, onStatus);
712
+ // Only fall back to relay if deBridge failed BEFORE sending a transaction.
713
+ // If a deBridge tx was already confirmed on-chain, falling back would cause
714
+ // a double bridge execution (both deBridge and relay processing funds).
715
+ const msg = error instanceof Error ? error.message : String(error);
716
+ const txAlreadySent = msg.includes('DeBridge transaction failed:') ||
717
+ msg.includes('DeBridge transaction timed out') ||
718
+ msg.includes('Missing deBridge order ID');
719
+ if (txAlreadySent) {
720
+ // Transaction was sent — do NOT fall back, propagate the error
721
+ throw error;
722
+ }
723
+ console.warn('DeBridge quote/setup failed, falling back to relay.link bridge:', msg);
724
+ return await executeRelayBridge(walletClient, connector, sourceChainId, sourceTokenAddress, isSourceNative, bridgeUsdcAmount, approveUsdcCalldata, depositCalldata, evmUserForBridge, depositorAddress, setCurrentStep, onStatus);
721
725
  }
722
726
  }
723
727
  else if (selectedProvider === 'relay') {
@@ -160,6 +160,7 @@ export function useTransaction({ walletClient, connector, solanaConnector, solan
160
160
  status: 'pending',
161
161
  txHashes: [],
162
162
  requestId,
163
+ provider: 'relay',
163
164
  };
164
165
  }
165
166
  else {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@silentswap/react",
3
3
  "type": "module",
4
- "version": "0.1.47",
4
+ "version": "0.1.48",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -24,8 +24,8 @@
24
24
  "dependencies": {
25
25
  "@bigmi/core": "^0.6.5",
26
26
  "@ensdomains/ensjs": "^4.2.0",
27
- "@silentswap/sdk": "0.1.47",
28
- "@silentswap/ui-kit": "0.1.47",
27
+ "@silentswap/sdk": "workspace:*",
28
+ "@silentswap/ui-kit": "workspace:*",
29
29
  "@solana/codecs-strings": "^5.1.0",
30
30
  "@solana/kit": "^5.1.0",
31
31
  "@solana/rpc": "^5.1.0",