@@ -406,7 +406,8 @@ class InterchainMarketMaker {
406406 const balanceOut = assetOut .balance .amount
407407 const weightIn = assetIn .weight / 100
408408 const weightOut = assetOut .weight / 100
409- const amount = balanceIn * ((balanceOut / (balanceOut - amountOut .amount ) ** (weightOut / weightIn ) - 1 ))
409+
410+ const amount = balanceIn * ((balanceOut / (balanceOut - this .minusFees (amountOut .amount )) ** (weightOut / weightIn ) - 1 ))
410411
411412 abortTransactionUnless (amountIn .amount > amount )
412413
@@ -1183,37 +1184,37 @@ function swap(msg: MsgSwapRequest): MsgSwapResponse {
11831184
11841185 const amm = new InterchainMarketMaker (pool );
11851186
1186- let tokenOut : sdk .Coin | undefined ;
1187+ let swappedToken : sdk .Coin | undefined ;
11871188 let tokenIn: sdk .Coin | undefined ;
11881189 let msgType: SwapMessageType ;
11891190 let expected: number
11901191
11911192 switch (msg .swapType ) {
11921193 case " LEFT" :
11931194 msgType = " LEFT_SWAP" ;
1194- tokenOut = amm .leftSwap (msg .tokenIn , msg .tokenOut .denom );
1195- expected = msg . tokenOut . amount * ( 1 - msg . slippage );
1195+ swappedToken = amm .leftSwap (msg .tokenIn , msg .tokenOut .denom );
1196+
11961197 break ;
11971198 case " RIGHT" :
11981199 msgType = " RIGHT_SWAP" ;
1199- tokenOut = amm .rightSwap (msg .tokenIn , msg .tokenOut );
1200+ swappedToken = amm .rightSwap (msg .tokenIn , msg .tokenOut );
12001201 expected = msg .tokenIn .amount * (1 - msg .slippage );
12011202 break ;
12021203 default :
12031204 abortTransactionUnless (false );
12041205 }
12051206
12061207
1207- abortTransactionUnless (tokenOut ?.amount ? <= 0 );
1208- abortTransactionUnless (tokenOut ?.amount ?.gte (expected ));
1208+ abortTransactionUnless (swappedToken ?.amount ? <= 0 );
1209+ abortTransactionUnless (swappedToken ?.amount ?.gte (expected ));
12091210
12101211 const lockErr = store .lockTokens (pool .counterPartyPort , pool .counterPartyChannel , msg .sender , msg .tokenIn );
12111212 abortTransactionUnless (lockErr === undefined );
12121213
12131214 const packet : IBCSwapPacketData = {
12141215 type: msgType ,
12151216 data: marshalJSON (msg ),
1216- stateChange: { out: [tokenOut ] },
1217+ stateChange: { out: [swappedToken ] },
12171218 };
12181219
12191220 const sendPacketErr = store .sendIBCSwapPacket (
0 commit comments