Skip to content

Commit e541254

Browse files
committed
chore: right swap swap fee fix
1 parent fe21ff7 commit e541254

File tree

1 file changed

+9
-8
lines changed
  • spec/app/ics-101-interchain-liquidity

1 file changed

+9
-8
lines changed

spec/app/ics-101-interchain-liquidity/README.md

+9-8
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)