From f2a9cc933ee7ce0076a6dcddb369c2466d00a348 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Thu, 30 Nov 2023 15:02:18 -0700 Subject: [PATCH 1/8] fix: use tc auto limit on streaming swaps --- .../ThorchainSwapper/utils/addSlippageToMemo.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts b/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts index 6cc111131a0..2dd160645bb 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts @@ -2,7 +2,7 @@ import type { ChainId } from '@shapeshiftoss/caip' import { BigNumber, bn } from 'lib/bignumber/bignumber' import { subtractBasisPointAmount } from 'state/slices/tradeQuoteSlice/utils' -import { DEFAULT_STREAMING_NUM_SWAPS, LIMIT_PART_DELIMITER, MEMO_PART_DELIMITER } from './constants' +import { MEMO_PART_DELIMITER } from './constants' import { assertIsValidMemo } from './makeSwapMemo/assertIsValidMemo' export const addSlippageToMemo = ({ @@ -13,7 +13,6 @@ export const addSlippageToMemo = ({ isStreaming, chainId, affiliateBps, - streamingInterval, }: { expectedAmountOutThorBaseUnit: string affiliateFeesThorBaseUnit: string @@ -22,10 +21,13 @@ export const addSlippageToMemo = ({ chainId: ChainId affiliateBps: string isStreaming: boolean - streamingInterval: number }) => { if (!quotedMemo) throw new Error('no memo provided') + // always use TC auto stream quote (0 limit = 5bps - 50bps, sometimes up to 100bps) + // see: https://discord.com/channels/838986635756044328/1166265575941619742/1166500062101250100 + if (isStreaming) return quotedMemo + // the missing element is the original limit with (optional, missing) streaming parameters const [prefix, pool, address, , affiliate, memoAffiliateBps] = quotedMemo.split(MEMO_PART_DELIMITER) @@ -38,13 +40,7 @@ export const addSlippageToMemo = ({ BigNumber.ROUND_DOWN, ) - const updatedLimitComponent = isStreaming - ? [limitWithManualSlippage, streamingInterval, DEFAULT_STREAMING_NUM_SWAPS].join( - LIMIT_PART_DELIMITER, - ) - : [limitWithManualSlippage] - - const memo = [prefix, pool, address, updatedLimitComponent, affiliate, memoAffiliateBps].join( + const memo = [prefix, pool, address, limitWithManualSlippage, affiliate, memoAffiliateBps].join( MEMO_PART_DELIMITER, ) From e798ddae7fd4d27936afecc78cb67a7c9ef371b6 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:50:47 -0700 Subject: [PATCH 2/8] no display of min expected after slippage for streaming swaps --- .../TradeConfirm/ReceiveSummary.tsx | 77 ++++++++++--------- .../components/TradeConfirm/TradeConfirm.tsx | 20 ++--- .../components/TradeInput/TradeInput.tsx | 2 + 3 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/components/MultiHopTrade/components/TradeConfirm/ReceiveSummary.tsx b/src/components/MultiHopTrade/components/TradeConfirm/ReceiveSummary.tsx index b9aec899669..dd0da5c75fe 100644 --- a/src/components/MultiHopTrade/components/TradeConfirm/ReceiveSummary.tsx +++ b/src/components/MultiHopTrade/components/TradeConfirm/ReceiveSummary.tsx @@ -18,7 +18,8 @@ import type { TextPropTypes } from 'components/Text/Text' import { getChainAdapterManager } from 'context/PluginProvider/chainAdapterSingleton' import { bnOrZero } from 'lib/bignumber/bignumber' import { fromBaseUnit } from 'lib/math' -import type { AmountDisplayMeta, ProtocolFee } from 'lib/swapper/types' +import { THORCHAIN_STREAM_SWAP_SOURCE } from 'lib/swapper/swappers/ThorchainSwapper/constants' +import type { AmountDisplayMeta, ProtocolFee, SwapSource } from 'lib/swapper/types' import { SwapperName } from 'lib/swapper/types' import type { PartialRecord } from 'lib/utils' import { isSome } from 'lib/utils' @@ -42,6 +43,7 @@ type ReceiveSummaryProps = { slippageDecimalPercentage: string swapperName: string donationAmount?: string + swapSource?: SwapSource } & RowProps const tradeFeeSourceTranslation: TextPropTypes['translation'] = [ @@ -62,6 +64,7 @@ export const ReceiveSummary: FC = memo( swapperName, isLoading, donationAmount, + swapSource, ...rest }) => { const translate = useTranslate() @@ -237,41 +240,43 @@ export const ReceiveSummary: FC = memo( )} - <> - - - - - - - - - - - {isAmountPositive && - hasIntermediaryTransactionOutputs && - intermediaryTransactionOutputsParsed?.map( - ({ amountCryptoPrecision, symbol, chainName }) => ( - - - - ), - )} - - - - + {swapSource !== THORCHAIN_STREAM_SWAP_SOURCE && ( + <> + + + + + + + + + + + {isAmountPositive && + hasIntermediaryTransactionOutputs && + intermediaryTransactionOutputsParsed?.map( + ({ amountCryptoPrecision, symbol, chainName }) => ( + + + + ), + )} + + + + + )} diff --git a/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx b/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx index 5fdad799fab..39cb2f341f5 100644 --- a/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx +++ b/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx @@ -384,24 +384,26 @@ export const TradeConfirm = () => { swapperName={swapperName ?? ''} intermediaryTransactionOutputs={tradeQuoteStep?.intermediaryTransactionOutputs} donationAmount={donationAmount} + swapSource={tradeQuoteStep?.source} /> ), [ - translate, - sellAmountBeforeFeesCryptoPrecision, - sellAsset?.symbol, - sellAmountBeforeFeesUserCurrency, - buyAsset?.symbol, buyAmountAfterFeesCryptoPrecision, buyAmountBeforeFeesCryptoPrecision, - tradeQuoteStep?.feeData.protocolFees, - tradeQuoteStep?.intermediaryTransactionOutputs, + buyAsset?.symbol, + donationAmount, + netBuyAmountUserCurrency, + sellAmountBeforeFeesCryptoPrecision, + sellAmountBeforeFeesUserCurrency, + sellAsset?.symbol, shapeShiftFee, slippageDecimal, - netBuyAmountUserCurrency, swapperName, - donationAmount, + tradeQuoteStep?.source, + tradeQuoteStep?.feeData.protocolFees, + tradeQuoteStep?.intermediaryTransactionOutputs, + translate, ], ) diff --git a/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx b/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx index ddd45c0c225..b27ad00e409 100644 --- a/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx +++ b/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx @@ -367,6 +367,7 @@ export const TradeInput = memo(() => { donationAmount={donationAmount} slippageDecimalPercentage={slippageDecimal} swapperName={activeSwapperName ?? ''} + swapSource={tradeQuoteStep?.source} /> ) : null} {isModeratePriceImpact && ( @@ -420,6 +421,7 @@ export const TradeInput = memo(() => { slippageDecimal, totalNetworkFeeFiatPrecision, totalProtocolFees, + tradeQuoteStep, ], ) From 6423466a372b230d87d84f4dcff8139833915352 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 11:09:28 -0700 Subject: [PATCH 3/8] dynamic slippage bps and update expected amount out --- .../ThorchainSwapper/utils/getL1quote.ts | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts b/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts index 9cc999e46ad..044870d5875 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts @@ -22,10 +22,7 @@ import { assertGetCosmosSdkChainAdapter } from 'lib/utils/cosmosSdk' import { assertGetEvmChainAdapter } from 'lib/utils/evm' import { THOR_PRECISION } from 'lib/utils/thorchain/constants' import { assertGetUtxoChainAdapter } from 'lib/utils/utxo' -import { - convertDecimalPercentageToBasisPoints, - subtractBasisPointAmount, -} from 'state/slices/tradeQuoteSlice/utils' +import { convertDecimalPercentageToBasisPoints } from 'state/slices/tradeQuoteSlice/utils' import { THORCHAIN_STREAM_SWAP_SOURCE } from '../constants' import type { ThorTradeQuote } from '../getThorTradeQuote/getTradeQuote' @@ -55,7 +52,7 @@ export const getL1quote = async ( const inputSlippageBps = convertDecimalPercentageToBasisPoints( slippageTolerancePercentage ?? getDefaultSlippageDecimalPercentageForSwapper(SwapperName.Thorchain), - ).toString() + ) const maybeSwapQuote = await getQuote({ sellAsset, @@ -109,15 +106,15 @@ export const getL1quote = async ( const getRouteValues = (quote: ThornodeQuoteResponseSuccess, isStreaming: boolean) => ({ source: isStreaming ? THORCHAIN_STREAM_SWAP_SOURCE : SwapperName.Thorchain, quote, - // expected receive amount after slippage (no affiliate_fee or liquidity_fee taken out of this value) - // TODO: slippage is currently being applied on expected_amount_out which is emit_asset - outbound_fee, - // should slippage actually be applied on emit_asset? - expectedAmountOutThorBaseUnit: subtractBasisPointAmount( - quote.expected_amount_out, - quote.fees.slippage_bps, - ), + // don't take affiliate fee into account, this will be displayed as a separate line item + expectedAmountOutThorBaseUnit: bnOrZero(quote.expected_amount_out) + .plus(bnOrZero(quote.fees.affiliate)) + .toFixed(), isStreaming, affiliateBps: quote.fees.affiliate === '0' ? '0' : requestedAffiliateBps, + // always use TC auto stream quote (0 limit = 5bps - 50bps, sometimes up to 100bps) + // see: https://discord.com/channels/838986635756044328/1166265575941619742/1166500062101250100 + slippageBps: isStreaming ? bn(0) : inputSlippageBps, estimatedExecutionTimeMs: quote.total_swap_seconds ? 1000 * quote.total_swap_seconds : undefined, @@ -187,6 +184,7 @@ export const getL1quote = async ( isStreaming, estimatedExecutionTimeMs, affiliateBps, + slippageBps, }): Promise => { const rate = getRouteRate(expectedAmountOutThorBaseUnit) const buyAmountBeforeFeesCryptoBaseUnit = getRouteBuyAmount(quote) @@ -195,11 +193,10 @@ export const getL1quote = async ( expectedAmountOutThorBaseUnit, affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, - slippageBps: inputSlippageBps, + slippageBps, chainId: sellAsset.chainId, affiliateBps, isStreaming, - streamingInterval, }) const { data, router } = await getEvmThorTxInfo({ sellAsset, @@ -272,6 +269,7 @@ export const getL1quote = async ( isStreaming, estimatedExecutionTimeMs, affiliateBps, + slippageBps, }): Promise => { const rate = getRouteRate(expectedAmountOutThorBaseUnit) const buyAmountBeforeFeesCryptoBaseUnit = getRouteBuyAmount(quote) @@ -280,11 +278,10 @@ export const getL1quote = async ( expectedAmountOutThorBaseUnit, affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, - slippageBps: inputSlippageBps, + slippageBps, isStreaming, chainId: sellAsset.chainId, affiliateBps, - streamingInterval, }) const { vault, opReturnData, pubkey } = await getUtxoThorTxInfo({ sellAsset, @@ -364,6 +361,7 @@ export const getL1quote = async ( isStreaming, estimatedExecutionTimeMs, affiliateBps, + slippageBps, }): ThorTradeQuote => { const rate = getRouteRate(expectedAmountOutThorBaseUnit) const buyAmountBeforeFeesCryptoBaseUnit = getRouteBuyAmount(quote) @@ -378,11 +376,10 @@ export const getL1quote = async ( expectedAmountOutThorBaseUnit, affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, - slippageBps: inputSlippageBps, + slippageBps, isStreaming, chainId: sellAsset.chainId, affiliateBps, - streamingInterval, }) return { From 50caa0837fd3c38e3ffd97fb646112014b0aba29 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 11:56:22 -0700 Subject: [PATCH 4/8] handle affiliate fee in expected amount out --- .../swappers/ThorchainSwapper/utils/addSlippageToMemo.ts | 6 +----- .../swapper/swappers/ThorchainSwapper/utils/getL1quote.ts | 3 --- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts b/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts index 2dd160645bb..bb919df803f 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/utils/addSlippageToMemo.ts @@ -7,7 +7,6 @@ import { assertIsValidMemo } from './makeSwapMemo/assertIsValidMemo' export const addSlippageToMemo = ({ expectedAmountOutThorBaseUnit, - affiliateFeesThorBaseUnit, quotedMemo, slippageBps, isStreaming, @@ -15,7 +14,6 @@ export const addSlippageToMemo = ({ affiliateBps, }: { expectedAmountOutThorBaseUnit: string - affiliateFeesThorBaseUnit: string quotedMemo: string | undefined slippageBps: BigNumber.Value chainId: ChainId @@ -33,9 +31,7 @@ export const addSlippageToMemo = ({ quotedMemo.split(MEMO_PART_DELIMITER) const limitWithManualSlippage = subtractBasisPointAmount( - bn(expectedAmountOutThorBaseUnit) - .minus(affiliateFeesThorBaseUnit) - .toFixed(0, BigNumber.ROUND_DOWN), + bn(expectedAmountOutThorBaseUnit).toFixed(0, BigNumber.ROUND_DOWN), slippageBps, BigNumber.ROUND_DOWN, ) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts b/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts index 044870d5875..8322b02a7a5 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/utils/getL1quote.ts @@ -191,7 +191,6 @@ export const getL1quote = async ( const updatedMemo = addSlippageToMemo({ expectedAmountOutThorBaseUnit, - affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, slippageBps, chainId: sellAsset.chainId, @@ -276,7 +275,6 @@ export const getL1quote = async ( const updatedMemo = addSlippageToMemo({ expectedAmountOutThorBaseUnit, - affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, slippageBps, isStreaming, @@ -374,7 +372,6 @@ export const getL1quote = async ( const updatedMemo = addSlippageToMemo({ expectedAmountOutThorBaseUnit, - affiliateFeesThorBaseUnit: quote.fees.affiliate, quotedMemo: quote.memo, slippageBps, isStreaming, From 7fd2cae0d595ce96c7531ac06aad2bdb9faac03a Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:15:17 -0700 Subject: [PATCH 5/8] resort --- .../MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx b/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx index 6cd97e80fb7..18c74c0df18 100644 --- a/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx +++ b/src/components/MultiHopTrade/components/TradeConfirm/TradeConfirm.tsx @@ -421,9 +421,9 @@ export const TradeConfirm = () => { shapeShiftFee, slippageDecimal, swapperName, - tradeQuoteStep?.source, tradeQuoteStep?.feeData.protocolFees, tradeQuoteStep?.intermediaryTransactionOutputs, + tradeQuoteStep?.source, translate, ], ) From ea2fb6a1c3c2398405190ccf3eb46f84d7d93dcc Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:16:20 -0700 Subject: [PATCH 6/8] more explicit dependency --- .../MultiHopTrade/components/TradeInput/TradeInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx b/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx index 500f5712ece..6bd3bedafcd 100644 --- a/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx +++ b/src/components/MultiHopTrade/components/TradeInput/TradeInput.tsx @@ -456,7 +456,7 @@ export const TradeInput = memo(() => { slippageDecimal, totalNetworkFeeFiatPrecision, totalProtocolFees, - tradeQuoteStep, + tradeQuoteStep?.source, ], ) From 36c9d0438f60481bd12760ac0833a9bcaeac4fe6 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:09:00 -0700 Subject: [PATCH 7/8] fix tests --- .../getThorTradeQuote/getTradeQuote.test.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts b/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts index 2f2e32041e9..e34f1240872 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts @@ -49,17 +49,17 @@ const expectedQuoteResponse: Omit[] = [ affiliateBps: '0', potentialAffiliateBps: '0', isStreaming: false, - rate: '137845.94361267605633802817', + rate: '144114.94366197183098591549', data: '0x', router: '0x3624525075b88B24ecc29CE226b0CEc1fFcB6976', - memo: '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:9360638:ss:0', + memo: '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:9786345:ss:0', steps: [ { estimatedExecutionTimeMs: 1600000, allowanceContract: '0x3624525075b88B24ecc29CE226b0CEc1fFcB6976', sellAmountIncludingProtocolFeesCryptoBaseUnit: '713014679420', buyAmountBeforeFeesCryptoBaseUnit: '114321610000000000', - buyAmountAfterFeesCryptoBaseUnit: '97870619965000000', + buyAmountAfterFeesCryptoBaseUnit: '102321610000000000', feeData: { protocolFees: { [ETH.assetId]: { @@ -70,7 +70,7 @@ const expectedQuoteResponse: Omit[] = [ }, networkFeeCryptoBaseUnit: '400000', }, - rate: '137845.94361267605633802817', + rate: '144114.94366197183098591549', source: SwapperName.Thorchain, buyAsset: ETH, sellAsset: FOX_MAINNET, @@ -83,17 +83,17 @@ const expectedQuoteResponse: Omit[] = [ affiliateBps: '0', potentialAffiliateBps: '0', isStreaming: true, - rate: '151555.07377464788732394366', + rate: '158199.45070422535211267606', data: '0x', router: '0x3624525075b88B24ecc29CE226b0CEc1fFcB6976', - memo: '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:10291578/10/0:ss:0', + memo: '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:0/10/0:ss:0', steps: [ { estimatedExecutionTimeMs: 1600000, allowanceContract: '0x3624525075b88B24ecc29CE226b0CEc1fFcB6976', sellAmountIncludingProtocolFeesCryptoBaseUnit: '713014679420', buyAmountBeforeFeesCryptoBaseUnit: '124321610000000000', - buyAmountAfterFeesCryptoBaseUnit: '107604102380000000', + buyAmountAfterFeesCryptoBaseUnit: '112321610000000000', feeData: { protocolFees: { [ETH.assetId]: { @@ -104,7 +104,7 @@ const expectedQuoteResponse: Omit[] = [ }, networkFeeCryptoBaseUnit: '400000', }, - rate: '151555.07377464788732394366', + rate: '158199.45070422535211267606', source: `${SwapperName.Thorchain} • Streaming`, buyAsset: ETH, sellAsset: FOX_MAINNET, @@ -167,6 +167,7 @@ describe('getTradeQuote', () => { if ((url as string).includes('streaming_interval')) { mockThorQuote.data.expected_amount_out = '11232161' mockThorQuote.data.fees.slippage_bps = 420 + mockThorQuote.data.memo = '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:0/10/0:ss:0' } return Promise.resolve(Ok(mockThorQuote)) From fd2697a8eafc1a5c2b67b574c52f1f7f12cbc87d Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:47:37 -0700 Subject: [PATCH 8/8] and lint --- .../ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts b/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts index e34f1240872..ae7ea93c82c 100644 --- a/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts +++ b/src/lib/swapper/swappers/ThorchainSwapper/getThorTradeQuote/getTradeQuote.test.ts @@ -167,7 +167,8 @@ describe('getTradeQuote', () => { if ((url as string).includes('streaming_interval')) { mockThorQuote.data.expected_amount_out = '11232161' mockThorQuote.data.fees.slippage_bps = 420 - mockThorQuote.data.memo = '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:0/10/0:ss:0' + mockThorQuote.data.memo = + '=:ETH.ETH:0x32DBc9Cf9E8FbCebE1e0a2ecF05Ed86Ca3096Cb6:0/10/0:ss:0' } return Promise.resolve(Ok(mockThorQuote))