Skip to content

Commit

Permalink
Fix bugs pack (#563)
Browse files Browse the repository at this point in the history
  • Loading branch information
Doctor-Cyclone authored Feb 12, 2024
2 parents 73e75d4 + 88649cf commit a7f1dc7
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 6 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rubic-sdk",
"version": "4.55.2",
"version": "4.55.3",
"description": "Simplify dApp creation",
"main": "lib/index.js",
"types": "lib/index.d.ts",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class EvmBridgersCrossChainTrade extends EvmCrossChainTrade {
},
providerAddress || EvmWeb3Pure.EMPTY_ADDRESS,
[]
).getContractParams({ receiverAddress });
).getContractParams({ receiverAddress }, true);

const [proxyGasLimit, proxyGasDetails] = await Promise.all([
web3Public.getEstimatedGas(
Expand Down Expand Up @@ -93,7 +93,8 @@ export class EvmBridgersCrossChainTrade extends EvmCrossChainTrade {
toTokenAmountMin,
walletAddress,
providerAddress,
{ receiverAddress, fromAddress: walletAddress }
{ receiverAddress, fromAddress: walletAddress },
true
);

const defaultGasLimit = await web3Public.getEstimatedGasByData(
Expand Down Expand Up @@ -242,7 +243,8 @@ export class EvmBridgersCrossChainTrade extends EvmCrossChainTrade {
}

protected async getContractParams(
options: MarkRequired<GetContractParamsOptions, 'receiverAddress'>
options: MarkRequired<GetContractParamsOptions, 'receiverAddress'>,
skipAmountChangeCheck: boolean = false
): Promise<ContractParams> {
const fromWithoutFee = getFromWithoutFee(
this.from,
Expand All @@ -256,7 +258,8 @@ export class EvmBridgersCrossChainTrade extends EvmCrossChainTrade {
this.toTokenAmountMin,
this.walletAddress,
this.providerAddress,
options
options,
skipAmountChangeCheck
);

const encodedData = transactionData.data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ import { Web3Pure } from 'src/core/blockchain/web3-pure/web3-pure';
import { Injector } from 'src/core/injector/injector';
import { bridgersNativeAddress } from 'src/features/common/providers/bridgers/constants/bridgers-native-address';
import { toBridgersBlockchain } from 'src/features/common/providers/bridgers/constants/to-bridgers-blockchain';
import {
BridgersQuoteRequest,
BridgersQuoteResponse
} from 'src/features/common/providers/bridgers/models/bridgers-quote-api';
import {
BridgersSwapRequest,
BridgersSwapResponse
Expand All @@ -15,6 +19,7 @@ import { createTokenNativeAddressProxy } from 'src/features/common/utils/token-n
import { BridgersCrossChainSupportedBlockchain } from 'src/features/cross-chain/calculation-manager/providers/bridgers-provider/constants/bridgers-cross-chain-supported-blockchain';
import { EvmBridgersTransactionData } from 'src/features/cross-chain/calculation-manager/providers/bridgers-provider/evm-bridgers-trade/models/evm-bridgers-transaction-data';
import { TronBridgersTransactionData } from 'src/features/cross-chain/calculation-manager/providers/bridgers-provider/tron-bridgers-trade/models/tron-bridgers-transaction-data';
import { EvmCrossChainTrade } from 'src/features/cross-chain/calculation-manager/providers/common/emv-cross-chain-trade/evm-cross-chain-trade';
import { GetContractParamsOptions } from 'src/features/cross-chain/calculation-manager/providers/common/models/get-contract-params-options';
import { MarkRequired } from 'ts-essentials';

Expand All @@ -27,7 +32,8 @@ export async function getMethodArgumentsAndTransactionData<
toTokenAmountMin: BigNumber,
walletAddress: string,
providerAddress: string,
options: MarkRequired<GetContractParamsOptions, 'receiverAddress'>
options: MarkRequired<GetContractParamsOptions, 'receiverAddress'>,
skipAmountChangeCheck: boolean = false
): Promise<{
methodArguments: unknown[];
transactionData: T;
Expand Down Expand Up @@ -58,6 +64,29 @@ export async function getMethodArgumentsAndTransactionData<
);
const transactionData = swapData.data.txData;

if (!skipAmountChangeCheck) {
const quoteRequest: BridgersQuoteRequest = {
fromTokenAddress,
toTokenAddress,
fromTokenAmount: fromWithoutFee.stringWeiAmount,
fromTokenChain: toBridgersBlockchain[from.blockchain],
toTokenChain: toBridgersBlockchain[to.blockchain]
};
const quoteResponse = await Injector.httpClient.post<BridgersQuoteResponse>(
'https://sswap.swft.pro/api/sswap/quote',
quoteRequest
);
const transactionQuoteData = quoteResponse.data?.txData;

if (transactionQuoteData?.amountOutMin) {
EvmCrossChainTrade.checkAmountChange(
'value' in transactionData ? transactionData : { data: '', to: '', value: '' },
transactionQuoteData.amountOutMin,
Web3Pure.toWei(toTokenAmountMin, to.decimals)
);
}
}

const dstTokenAddress = BlockchainsInfo.isTronBlockchainName(to.blockchain)
? TronWeb3Pure.addressToHex(to.address)
: to.address;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ export class LifiProvider extends AggregatorOnChainProvider {
const routeOptions: RouteOptions = {
order: 'RECOMMENDED',
slippage: fullOptions.slippageTolerance,
maxPriceImpact: 0.5,
exchanges: {
deny: lifiDisabledProviders.concat('openocean')
}
Expand Down

0 comments on commit a7f1dc7

Please sign in to comment.