Skip to content

Commit

Permalink
fix: swap operation
Browse files Browse the repository at this point in the history
  • Loading branch information
poorphd committed Jul 26, 2024
1 parent 332ff06 commit e7838ed
Showing 1 changed file with 25 additions and 20 deletions.
45 changes: 25 additions & 20 deletions x/coinswap/simulation/operation.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,23 @@ func SimulateMsgSwapOrder(k keeper.Keeper, ak types.AccountKeeper, bk types.Bank
isBuyOrder bool
)

simAccount, _ := simtypes.RandomAcc(r, accs)
err = FundAccount(r, ctx, k, bk, simAccount.Address)
if err != nil {
return simtypes.NoOpMsg(types.ModuleName, TypeMsgSwapOrder, "unable to fund account"), nil, err
}
account := ak.GetAccount(ctx, simAccount.Address)
spendable := bk.SpendableCoins(ctx, account.GetAddress())
standardDenom, _ := k.GetStandardDenom(ctx)

if spendable.IsZero() {
return simtypes.NoOpMsg(
types.ModuleName,
TypeMsgSwapOrder,
"spendable is zero",
), nil, err
}

pools := k.GetAllPools(ctx)
if len(pools) == 0 {
return simtypes.NoOpMsg(
Expand All @@ -284,21 +301,20 @@ func SimulateMsgSwapOrder(k keeper.Keeper, ak types.AccountKeeper, bk types.Bank

pool := pools[r.Intn(len(pools))]

simAccount, _ := simtypes.RandomAcc(r, accs)
err = FundAccount(r, ctx, k, bk, simAccount.Address)
reservePool, err := k.GetPoolBalancesByLptDenom(ctx, pool.LptDenom)
if err != nil {
return simtypes.NoOpMsg(types.ModuleName, TypeMsgSwapOrder, "unable to fund account"), nil, err
return simtypes.NoOpMsg(types.ModuleName, TypeMsgRemoveLiquidity, "inputCoin should exist in the pool"), nil, nil
}
account := ak.GetAccount(ctx, simAccount.Address)
spendable := bk.SpendableCoins(ctx, account.GetAddress())
standardDenom, _ := k.GetStandardDenom(ctx)

if spendable.IsZero() {
standardReserveAmt := reservePool.AmountOf(standardDenom)
tokenReserveAmt := reservePool.AmountOf(pool.CounterpartyDenom)

if !standardReserveAmt.IsPositive() || !tokenReserveAmt.IsPositive() {
return simtypes.NoOpMsg(
types.ModuleName,
TypeMsgSwapOrder,
"spendable is zero",
), nil, err
"reserve pool should be positive",
), nil, nil
}

// sold coin
Expand Down Expand Up @@ -354,17 +370,6 @@ func SimulateMsgSwapOrder(k keeper.Keeper, ak types.AccountKeeper, bk types.Bank
}
}

reservePool, err := k.GetPoolBalancesByLptDenom(ctx, pool.LptDenom)
standardReserveAmt := reservePool.AmountOf(standardDenom)
tokenReserveAmt := reservePool.AmountOf(pool.CounterpartyDenom)
if !standardReserveAmt.IsPositive() || !tokenReserveAmt.IsPositive() {
return simtypes.NoOpMsg(
types.ModuleName,
TypeMsgSwapOrder,
"reserve pool should be positive",
), nil, nil
}

if !outputCoin.Amount.IsPositive() {
return simtypes.NoOpMsg(
types.ModuleName,
Expand Down

0 comments on commit e7838ed

Please sign in to comment.