rubic-sdk 4.30.0-alpha-design.17-fix-gas.3 → 4.30.0-alpha-design.17-fix-gas.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -184854,7 +184854,7 @@ class DebridgeCrossChainProvider extends cross_chain_provider_1.CrossChainProvid
184854
184854
  }
184855
184855
  };
184856
184856
  const gasData = options.gasCalculation === 'enabled'
184857
- ? await debridge_cross_chain_trade_1.DebridgeCrossChainTrade.getGasData(from, to, requestParams)
184857
+ ? await debridge_cross_chain_trade_1.DebridgeCrossChainTrade.getGasData(from, to, requestParams, options.receiverAddress)
184858
184858
  : null;
184859
184859
  return {
184860
184860
  trade: new debridge_cross_chain_trade_1.DebridgeCrossChainTrade({
@@ -184982,25 +184982,25 @@ const bridge_type_1 = __webpack_require__(/*! ../common/models/bridge-type */ ".
184982
184982
  const portal_address_1 = __webpack_require__(/*! ./constants/portal-address */ "./src/features/cross-chain/calculation-manager/providers/debridge-provider/constants/portal-address.ts");
184983
184983
  const debridge_cross_chain_provider_1 = __webpack_require__(/*! ./debridge-cross-chain-provider */ "./src/features/cross-chain/calculation-manager/providers/debridge-provider/debridge-cross-chain-provider.ts");
184984
184984
  const mete_router_abi_1 = __webpack_require__(/*! ../symbiosis-provider/constants/mete-router-abi */ "./src/features/cross-chain/calculation-manager/providers/symbiosis-provider/constants/mete-router-abi.ts");
184985
+ const convert_gas_price_1 = __webpack_require__(/*! ../../utils/convert-gas-price */ "./src/features/cross-chain/calculation-manager/utils/convert-gas-price.ts");
184985
184986
  const decode_method_1 = __webpack_require__(/*! ../../utils/decode-method */ "./src/features/cross-chain/calculation-manager/utils/decode-method.ts");
184986
184987
  const on_chain_trade_type_1 = __webpack_require__(/*! ../../../../on-chain/calculation-manager/providers/common/models/on-chain-trade-type */ "./src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts");
184987
184988
  const constants_1 = __webpack_require__(/*! ../../../../on-chain/calculation-manager/providers/dexes/common/oneinch-abstract/constants */ "./src/features/on-chain/calculation-manager/providers/dexes/common/oneinch-abstract/constants.ts");
184988
- const convert_gas_price_1 = __webpack_require__(/*! ../../utils/convert-gas-price */ "./src/features/cross-chain/calculation-manager/utils/convert-gas-price.ts");
184989
184989
  /**
184990
184990
  * Calculated DeBridge cross-chain trade.
184991
184991
  */
184992
184992
  class DebridgeCrossChainTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade {
184993
184993
  /** @internal */
184994
- static async getGasData(from, to, transactionRequest) {
184994
+ static async getGasData(from, toToken, transactionRequest, receiverAddress) {
184995
184995
  const fromBlockchain = from.blockchain;
184996
184996
  const walletAddress = injector_1.Injector.web3PrivateService.getWeb3PrivateByBlockchain(fromBlockchain).address;
184997
184997
  if (!walletAddress) {
184998
184998
  return null;
184999
184999
  }
185000
185000
  try {
185001
- const { contractAddress, contractAbi, methodName, methodArguments, value } = await new DebridgeCrossChainTrade({
185001
+ const { data, value, to } = await new DebridgeCrossChainTrade({
185002
185002
  from,
185003
- to,
185003
+ to: toToken,
185004
185004
  transactionRequest,
185005
185005
  gasData: null,
185006
185006
  priceImpact: 0,
@@ -185010,12 +185010,13 @@ class DebridgeCrossChainTrade extends evm_cross_chain_trade_1.EvmCrossChainTrade
185010
185010
  transitAmount: new bignumber_js_1.default(NaN),
185011
185011
  cryptoFeeToken: from,
185012
185012
  onChainTrade: null
185013
- }, evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS, []).getContractParams({}, true);
185013
+ }, evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS, []).getTransactionRequest(receiverAddress);
185014
185014
  const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(fromBlockchain);
185015
- const [gasLimit, gasDetails] = await Promise.all([
185016
- web3Public.getEstimatedGas(contractAbi, contractAddress, methodName, methodArguments, walletAddress, value),
185017
- (0, convert_gas_price_1.convertGasDataToBN)(await injector_1.Injector.gasPriceApi.getGasPrice(from.blockchain))
185018
- ]);
185015
+ const gasLimit = await web3Public.getEstimatedGasByData(walletAddress, to, {
185016
+ data,
185017
+ value
185018
+ });
185019
+ const gasDetails = (0, convert_gas_price_1.convertGasDataToBN)(await injector_1.Injector.gasPriceApi.getGasPrice(from.blockchain));
185019
185020
  if (!gasLimit?.isFinite()) {
185020
185021
  return null;
185021
185022
  }
@@ -198745,6 +198746,7 @@ const evm_web3_pure_1 = __webpack_require__(/*! ../../../../../../../core/blockc
198745
198746
  const token_native_address_proxy_1 = __webpack_require__(/*! ../../../../../../common/utils/token-native-address-proxy */ "./src/features/common/utils/token-native-address-proxy.ts");
198746
198747
  const rubic_proxy_contract_address_1 = __webpack_require__(/*! ../../../../../../cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address */ "./src/features/cross-chain/calculation-manager/providers/common/constants/rubic-proxy-contract-address.ts");
198747
198748
  const on_chain_trade_type_1 = __webpack_require__(/*! ../../../common/models/on-chain-trade-type */ "./src/features/on-chain/calculation-manager/providers/common/models/on-chain-trade-type.ts");
198749
+ const get_gas_fee_info_1 = __webpack_require__(/*! ../../../common/utils/get-gas-fee-info */ "./src/features/on-chain/calculation-manager/providers/common/utils/get-gas-fee-info.ts");
198748
198750
  const evm_provider_default_options_1 = __webpack_require__(/*! ../on-chain-provider/evm-on-chain-provider/constants/evm-provider-default-options */ "./src/features/on-chain/calculation-manager/providers/dexes/common/on-chain-provider/evm-on-chain-provider/constants/evm-provider-default-options.ts");
198749
198751
  const evm_on_chain_provider_1 = __webpack_require__(/*! ../on-chain-provider/evm-on-chain-provider/evm-on-chain-provider */ "./src/features/on-chain/calculation-manager/providers/dexes/common/on-chain-provider/evm-on-chain-provider/evm-on-chain-provider.ts");
198750
198752
  const sync_swap_abstract_trade_1 = __webpack_require__(/*! ./sync-swap-abstract-trade */ "./src/features/on-chain/calculation-manager/providers/dexes/common/sync-swap-abstract/sync-swap-abstract-trade.ts");
@@ -198797,7 +198799,15 @@ class SyncSwapAbstractProvider extends evm_on_chain_provider_1.EvmOnChainProvide
198797
198799
  path: [from, ...transitTokens, toToken],
198798
198800
  bestPathWithAmounts: bestRoute
198799
198801
  };
198800
- return new sync_swap_abstract_trade_1.SyncSwapAbstractTrade(tradeStruct, fullOptions.providerAddress, this.dexContractAddress);
198802
+ try {
198803
+ const gasPriceInfo = await this.getGasPriceInfo();
198804
+ const gasLimit = await sync_swap_abstract_trade_1.SyncSwapAbstractTrade.getGasLimit(tradeStruct, this.dexContractAddress);
198805
+ const gasFeeInfo = (0, get_gas_fee_info_1.getGasFeeInfo)(gasLimit, gasPriceInfo);
198806
+ return new sync_swap_abstract_trade_1.SyncSwapAbstractTrade({ ...tradeStruct, gasFeeInfo }, fullOptions.providerAddress, this.dexContractAddress);
198807
+ }
198808
+ catch {
198809
+ return new sync_swap_abstract_trade_1.SyncSwapAbstractTrade(tradeStruct, fullOptions.providerAddress, this.dexContractAddress);
198810
+ }
198801
198811
  }
198802
198812
  async getAvailablePools(from, toToken) {
198803
198813
  return sync_swap_factory_1.SyncSwapFactory.fetchRoutePools(from.address, toToken.address, this.walletAddress || evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS, this.vault, this.factories.map(address => address.toLowerCase()), this.routeTokens.map(address => address.toLowerCase()), this.masterAddress, this.routerHelperContract, this.blockchain);
@@ -198829,7 +198839,6 @@ const evm_on_chain_trade_1 = __webpack_require__(/*! ../../../common/on-chain-tr
198829
198839
  const constants_1 = __webpack_require__(/*! ../oneinch-abstract/constants */ "./src/features/on-chain/calculation-manager/providers/dexes/common/oneinch-abstract/constants.ts");
198830
198840
  const sync_swap_abi_1 = __webpack_require__(/*! ./sync-swap-abi */ "./src/features/on-chain/calculation-manager/providers/dexes/common/sync-swap-abstract/sync-swap-abi.ts");
198831
198841
  class SyncSwapAbstractTrade extends evm_on_chain_trade_1.EvmOnChainTrade {
198832
- // @TODO need to start using this method.
198833
198842
  /** @internal */
198834
198843
  static async getGasLimit(tradeStruct, dexContractAddress) {
198835
198844
  const fromBlockchain = tradeStruct.from.blockchain;