rubic-sdk 4.51.1 → 4.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. package/dist/rubic-sdk.min.js +31 -6
  2. package/dist/rubic-sdk.min.js.map +1 -1
  3. package/lib/features/common/providers/symbiosis/services/symbiosis-api-service.js +6 -1
  4. package/lib/features/common/providers/symbiosis/services/symbiosis-api-service.js.map +1 -1
  5. package/lib/features/cross-chain/calculation-manager/providers/common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade.d.ts +1 -0
  6. package/lib/features/cross-chain/calculation-manager/providers/common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade.js +7 -1
  7. package/lib/features/cross-chain/calculation-manager/providers/common/proxy-cross-chain-evm-facade/proxy-cross-chain-evm-trade.js.map +1 -1
  8. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.d.ts +1 -1
  9. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.js +1 -0
  10. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.js.map +1 -1
  11. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.d.ts +2 -1
  12. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js +10 -3
  13. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-provider.js.map +1 -1
  14. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.d.ts +1 -0
  15. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.js +7 -1
  16. package/lib/features/cross-chain/calculation-manager/providers/symbiosis-provider/symbiosis-cross-chain-trade.js.map +1 -1
  17. package/lib/features/on-chain/calculation-manager/providers/dexes/linea/horizondex/horizondex-provider.d.ts +1 -1
  18. package/package.json +1 -1
@@ -189462,6 +189462,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
189462
189462
  exports.SymbiosisApiService = void 0;
189463
189463
  const errors_1 = __webpack_require__(/*! ../../../../../common/errors */ "./src/common/errors/index.ts");
189464
189464
  const decorators_1 = __webpack_require__(/*! ../../../../../common/utils/decorators */ "./src/common/utils/decorators/index.ts");
189465
+ const blockchain_name_1 = __webpack_require__(/*! ../../../../../core/blockchain/models/blockchain-name */ "./src/core/blockchain/models/blockchain-name.ts");
189466
+ const blockchain_id_1 = __webpack_require__(/*! ../../../../../core/blockchain/utils/blockchains-info/constants/blockchain-id */ "./src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts");
189465
189467
  const injector_1 = __webpack_require__(/*! ../../../../../core/injector/injector */ "./src/core/injector/injector.ts");
189466
189468
  const symbiosis_api_common_1 = __webpack_require__(/*! ../constants/symbiosis-api-common */ "./src/features/common/providers/symbiosis/constants/symbiosis-api-common.ts");
189467
189469
  class SymbiosisApiService {
@@ -189480,7 +189482,10 @@ class SymbiosisApiService {
189480
189482
  * @param params Swap request body
189481
189483
  */
189482
189484
  static async getCrossChainSwapTx(params) {
189483
- const res = await injector_1.Injector.httpClient.post(`${symbiosis_api_common_1.SYMBIOSIS_API_ENDPOINT}/v1/swapping/exact_in?partnerId=rubic`, params);
189485
+ const url = params.tokenOut.chainId === blockchain_id_1.blockchainId[blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN]
189486
+ ? `${symbiosis_api_common_1.SYMBIOSIS_API_ENDPOINT}/v1/swap`
189487
+ : `${symbiosis_api_common_1.SYMBIOSIS_API_ENDPOINT}/v1/swapping/exact_in?partnerId=rubic`;
189488
+ const res = await injector_1.Injector.httpClient.post(url, params);
189484
189489
  if ('code' in res && 'message' in res) {
189485
189490
  throw new errors_1.RubicSdkError(res.message);
189486
189491
  }
@@ -196002,13 +196007,13 @@ class ProxyCrossChainEvmTrade {
196002
196007
  return web3Public.callContractMethod(rubic_proxy_contract_address_1.rubicProxyContractAddress[fromBlockchain].router, evm_common_cross_chain_abi_1.evmCommonCrossChainAbi, 'approvedDexs');
196003
196008
  }
196004
196009
  static getBridgeData(swapOptions, tradeParams) {
196005
- const receiverAddress = swapOptions?.receiverAddress || tradeParams.walletAddress;
196006
196010
  const toChainId = blockchain_id_1.blockchainId[tradeParams.toTokenAmount.blockchain] || 9999;
196007
196011
  const fromToken = tradeParams.srcChainTrade
196008
196012
  ? tradeParams.srcChainTrade.toTokenAmountMin
196009
196013
  : tradeParams.fromTokenAmount;
196010
196014
  const hasSwapBeforeBridge = tradeParams.srcChainTrade !== null;
196011
196015
  const toAddress = tradeParams.toAddress || tradeParams.toTokenAmount.address;
196016
+ const receiverAddress = ProxyCrossChainEvmTrade.getReceiverAddress(swapOptions?.receiverAddress, tradeParams.walletAddress, toChainId);
196012
196017
  return [
196013
196018
  evm_web3_pure_1.EvmWeb3Pure.randomHex(32),
196014
196019
  tradeParams.type.toLowerCase(),
@@ -196084,6 +196089,12 @@ class ProxyCrossChainEvmTrade {
196084
196089
  throw new unapproved_method_error_1.UnapprovedMethodError(method, routerAddress);
196085
196090
  }
196086
196091
  }
196092
+ static getReceiverAddress(receiverAddress, walletAddress, toChainId) {
196093
+ if (toChainId === blockchain_id_1.blockchainId[blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN]) {
196094
+ return walletAddress;
196095
+ }
196096
+ return receiverAddress || walletAddress;
196097
+ }
196087
196098
  }
196088
196099
  exports.ProxyCrossChainEvmTrade = ProxyCrossChainEvmTrade;
196089
196100
 
@@ -203276,6 +203287,7 @@ exports.symbiosisCrossChainSupportedBlockchains = [
203276
203287
  blockchain_name_1.BLOCKCHAIN_NAME.TRON,
203277
203288
  blockchain_name_1.BLOCKCHAIN_NAME.SCROLL,
203278
203289
  blockchain_name_1.BLOCKCHAIN_NAME.METIS,
203290
+ blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN,
203279
203291
  // Testnets
203280
203292
  blockchain_name_1.BLOCKCHAIN_NAME.GOERLI,
203281
203293
  blockchain_name_1.BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN_TESTNET,
@@ -203402,13 +203414,15 @@ class SymbiosisCrossChainProvider extends cross_chain_provider_1.CrossChainProvi
203402
203414
  }
203403
203415
  return super.areSupportedBlockchains(fromBlockchain, toBlockchain);
203404
203416
  }
203417
+ // eslint-disable-next-line complexity
203405
203418
  async calculate(from, toToken, options) {
203406
203419
  const fromBlockchain = from.blockchain;
203407
203420
  const toBlockchain = toToken.blockchain;
203408
203421
  const useProxy = options?.useProxy?.[this.type] ?? true;
203409
203422
  // @TODO remove Tron check
203410
203423
  if (!this.areSupportedBlockchains(fromBlockchain, toBlockchain) ||
203411
- fromBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.TRON) {
203424
+ fromBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.TRON ||
203425
+ fromBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN) {
203412
203426
  return {
203413
203427
  trade: null,
203414
203428
  error: new errors_1.NotSupportedTokensError(),
@@ -203449,14 +203463,13 @@ class SymbiosisCrossChainProvider extends cross_chain_provider_1.CrossChainProvi
203449
203463
  ...tokenIn,
203450
203464
  amount: fromWithoutFee.stringWeiAmount
203451
203465
  };
203452
- const receiverAddress = options.receiverAddress || fromAddress;
203453
203466
  const deadline = Math.floor(Date.now() / 1000) + 60 * options.deadline;
203454
203467
  const slippageTolerance = options.slippageTolerance * 10000;
203455
203468
  const swapParams = {
203456
203469
  tokenAmountIn: symbiosisTokenAmountIn,
203457
203470
  tokenOut,
203458
203471
  from: fromAddress,
203459
- to: receiverAddress || fromAddress,
203472
+ to: this.getSwapParamsToAddress(options.receiverAddress, fromAddress, toBlockchain),
203460
203473
  revertableAddress: fromAddress,
203461
203474
  slippage: slippageTolerance,
203462
203475
  deadline
@@ -203580,6 +203593,12 @@ class SymbiosisCrossChainProvider extends cross_chain_provider_1.CrossChainProvi
203580
203593
  }
203581
203594
  return routePath;
203582
203595
  }
203596
+ getSwapParamsToAddress(receiverAddress, fromAddress, toBlockchain) {
203597
+ if (toBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN && !receiverAddress) {
203598
+ return 'bc1qvyf8ufqpeyfe6vshfxdrr970rkqfphgz28ulhr';
203599
+ }
203600
+ return receiverAddress || fromAddress;
203601
+ }
203583
203602
  }
203584
203603
  exports.SymbiosisCrossChainProvider = SymbiosisCrossChainProvider;
203585
203604
 
@@ -203837,7 +203856,7 @@ class SymbiosisCrossChainTrade extends evm_cross_chain_trade_1.EvmCrossChainTrad
203837
203856
  ...this.swappingParams,
203838
203857
  from: walletAddress,
203839
203858
  to: receiverAddress || walletAddress,
203840
- revertableAddress: receiverAddress || walletAddress
203859
+ revertableAddress: this.getRevertableAddress(receiverAddress, walletAddress, this.to.blockchain)
203841
203860
  };
203842
203861
  const tradeData = await symbiosis_api_service_1.SymbiosisApiService.getCrossChainSwapTx(params);
203843
203862
  const config = {
@@ -203850,6 +203869,12 @@ class SymbiosisCrossChainTrade extends evm_cross_chain_trade_1.EvmCrossChainTrad
203850
203869
  }
203851
203870
  return config;
203852
203871
  }
203872
+ getRevertableAddress(receiverAddress, walletAddress, toBlockchain) {
203873
+ if (toBlockchain === blockchain_name_1.BLOCKCHAIN_NAME.BITCOIN) {
203874
+ return walletAddress;
203875
+ }
203876
+ return receiverAddress || walletAddress;
203877
+ }
203853
203878
  }
203854
203879
  exports.SymbiosisCrossChainTrade = SymbiosisCrossChainTrade;
203855
203880