diff --git a/package.json b/package.json index 097af343a0..d8982d85a6 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "ngx-cookie-service": "^16.0.0", "querystring-es3": "^0.2.1", "rpc-websockets": "7.9.0", - "rubic-sdk": "5.52.6", + "rubic-sdk": "5.52.7", "rxjs": "7.8.1", "ts-cacheable": "^1.0.5", "viem": "^1.21.1", diff --git a/src/app/features/trade/services/cross-chain/cross-chain.service.ts b/src/app/features/trade/services/cross-chain/cross-chain.service.ts index d20429d50f..5c1afa4530 100644 --- a/src/app/features/trade/services/cross-chain/cross-chain.service.ts +++ b/src/app/features/trade/services/cross-chain/cross-chain.service.ts @@ -90,7 +90,7 @@ export class CrossChainService { let providers: CrossChainCalculatedTradeData[] = []; const { fromToken, toToken, fromAmount, fromBlockchain, toBlockchain } = this.swapFormService.inputValue; - const disabledProviders = this.getDisabledProviders(disabledTradeTypes, fromBlockchain); + // const disabledProviders = this.getDisabledProviders(disabledTradeTypes, fromBlockchain); return forkJoin([ this.sdkService.deflationTokenManager.isDeflationToken(new Token(fromToken)), this.tokensService.getAndUpdateTokenPrice(fromToken, true), @@ -110,7 +110,7 @@ export class CrossChainService { of(toSdkCompatibleToken), of(tokenState), this.getOptions( - disabledProviders, + disabledTradeTypes, fromSdkCompatibleToken, toSdkCompatibleToken, fromAmount.actualValue @@ -180,13 +180,14 @@ export class CrossChainService { const queryRangoDisabledBridges = this.queryParamsService.disabledRangoBridges; const queryDisabledTradeTypes = this.queryParamsService.disabledCrossChainProviders; - const disabledProviders = Array.from( + const disabledProvidersFromApiAndQuery = Array.from( new Set([ ...disabledTradeTypes, ...(apiDisabledTradeTypes || []), ...(queryDisabledTradeTypes || []) ]) ); + const calculateGas = this.authService.userAddress; const timeout = this.calculateTimeoutForChains(); const providerAddress = await this.proxyService.getIntegratorAddress( @@ -194,6 +195,12 @@ export class CrossChainService { fromAmount, toSdkToken ); + + const disabledProviders = this.getDisabledProviders( + disabledProvidersFromApiAndQuery, + fromSdkToken.blockchain + ); + const options: CrossChainManagerCalculationOptions = { fromSlippageTolerance: slippageTolerance / 2, toSlippageTolerance: slippageTolerance / 2, @@ -496,11 +503,27 @@ export class CrossChainService { Object.values(notEvmChangeNowBlockchainsList) as BlockchainName[] ).includes(fromBlockchain); + let disabledProviders = [...disabledTradesTypes]; + if (isNonEvmCNChain && this.iframeService.isIframe) { - return [...disabledTradesTypes, CROSS_CHAIN_TRADE_TYPE.CHANGENOW]; + disabledProviders = [...disabledProviders, CROSS_CHAIN_TRADE_TYPE.CHANGENOW]; + } + + const referral = this.sessionStorage.getItem('referral'); + + if (referral) { + const integratorAddress = this.sessionStorage.getItem(referral.toLowerCase()); + + if (integratorAddress) { + disabledProviders = [ + ...disabledProviders, + CROSS_CHAIN_TRADE_TYPE.SIMPLE_SWAP, + CROSS_CHAIN_TRADE_TYPE.CHANGELLY + ]; + } } - return disabledTradesTypes; + return disabledProviders; } private async sendPreTradeInfo(trade: CrossChainTrade): Promise { diff --git a/src/app/features/trade/services/proxy-fee-service/proxy-fee.service.ts b/src/app/features/trade/services/proxy-fee-service/proxy-fee.service.ts index e4506374f9..2f215211c9 100644 --- a/src/app/features/trade/services/proxy-fee-service/proxy-fee.service.ts +++ b/src/app/features/trade/services/proxy-fee-service/proxy-fee.service.ts @@ -40,22 +40,22 @@ export class ProxyFeeService { toToken: PriceToken ): Promise { try { + const fromPriceAmount = fromToken.price.multipliedBy(fromAmount); const referral = this.sessionStorage.getItem('referral'); + if ((fromPriceAmount.lte(0) || !fromPriceAmount.isFinite()) && !referral) { + return this.handlePromoIntegrator(fromToken, toToken, percentAddress.default); + } + if (fromPriceAmount.lte(100) && fromPriceAmount.isFinite()) { + return this.handlePromoIntegrator(fromToken, toToken, percentAddress.zeroFee); + } + if (referral) { const referralIntegrator = await this.getIntegratorByReferralName(referral); if (referralIntegrator) return referralIntegrator; } - const fromPriceAmount = fromToken.price.multipliedBy(fromAmount); - if (fromPriceAmount.lte(0) || !fromPriceAmount.isFinite()) { - return this.handlePromoIntegrator(fromToken, toToken, percentAddress.default); - } - if (fromPriceAmount.lte(100)) { - return this.handlePromoIntegrator(fromToken, toToken, percentAddress.zeroFee); - } - const fromType = this.getTokenType(fromToken); if (!fromType) { throw new Error('Failed to fetch token from backend'); diff --git a/yarn.lock b/yarn.lock index 3e8a2cf4aa..2cad6829b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17366,10 +17366,10 @@ rpc-websockets@^9.0.2: bufferutil "^4.0.1" utf-8-validate "^5.0.2" -rubic-sdk@5.52.6: - version "5.52.6" - resolved "https://registry.yarnpkg.com/rubic-sdk/-/rubic-sdk-5.52.6.tgz#cf1adcc3677a9d0f6e5f1a74c91dfa5dfead1281" - integrity sha512-mwZeudIcCfvYO7gm4hjcSQb3SlqxfNkp0RR02zvTS6go4kksFSEmDc939tyYUCLU1J5vl2WnTjFD1RMQpo9YuA== +rubic-sdk@5.52.7: + version "5.52.7" + resolved "https://registry.yarnpkg.com/rubic-sdk/-/rubic-sdk-5.52.7.tgz#bfeb1c1f496f6a6edd492661c5ee140f4bd1ff7a" + integrity sha512-mGSSdjnU/3J8in/HJW6RwtBP4l25LSr4nyiv4fYSY1Gqin87iE/s7JKXk9b69WwHRgF0T/SZgFkAb0Vy++n+AQ== dependencies: "@1inch/limit-order-protocol-utils" "3.0.1" "@arbitrum/sdk" "^3.1.3"