λκ΅°κ°κ° νμ μλΉ κ³μ’λ‘ μ½μΈμ 보λ΄λ©΄ λ€μκ³Ό κ°μ λͺ κ°μ§ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
https://github.com/tendermint/liquidity/releases/tag/v1.2.5
μ΄ ν μ€νΈλ₯Ό μ€ννλ©΄ ν¨λμ΄ λ°μν©λλ€.
func TestSwapHalfZeroReserve(t *testing.T) {
simapp, ctx := createTestInput()
params := simapp.LiquidityKeeper.GetParams(ctx)
pool, addr, err := createPool(simapp, ctx, sdk.NewInt(1000000), sdk.NewInt(1000000), DenomX, DenomY)
require.NoError(t, err)
pc := simapp.BankKeeper.GetBalance(ctx, addr, pool.PoolCoinDenom)
_, err = simapp.LiquidityKeeper.WithdrawLiquidityPoolToBatch(ctx, types.NewMsgWithdrawWithinBatch(addr, pool.Id, pc))
require.NoError(t, err)
liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper)
liquidity.EndBlocker(ctx, simapp.LiquidityKeeper)
require.True(t, simapp.BankKeeper.GetBalance(ctx, pool.GetReserveAccount(), DenomX).IsZero())
require.True(t, simapp.BankKeeper.GetBalance(ctx, pool.GetReserveAccount(), DenomY).IsZero())
err = simapp.BankKeeper.SendCoins(ctx, addr, pool.GetReserveAccount(), sdk.NewCoins(sdk.NewInt64Coin(DenomX, 10000)))
require.NoError(t, err)
_, err = simapp.LiquidityKeeper.SwapLiquidityPoolToBatch(ctx,
types.NewMsgSwapWithinBatch(
addr, pool.Id, types.DefaultSwapTypeId, sdk.NewInt64Coin(DenomX, 1000), DenomY, sdk.MustNewDecFromStr("1.0"), params.SwapFeeRate), 0)
require.NoError(t, err)
liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper)
liquidity.EndBlocker(ctx, simapp.LiquidityKeeper)
}
κ³ κ°λ ν μ μ€λΉκΈμ΄ 0μΈ νμ΄ μλλΌ ν μ½μΈ κ³΅κΈ μ΄ μλ νλ‘ μ μνλ©΄ μΈκΈλ μν©μμ 체μΈμ΄ ν¨λνλ κ²μ λ°©μ§ν μ μμ΅λλ€.
μμ νκ² μ΅λλ€.
κ³ λ €ν μ μλ κ²μ (μν λͺ¨λμ ν΅ν΄) ν ν° μμ μμ λΈλ리μ€νΈμ μλ λͺ¨λ κ³μ μ μ¬μ©νλ κ²μ΄μ§λ§ μ΄λ μμ μ루μ μ λΉν΄ λ ν° λ³νμ λλ€.
@migueldingli1997 μ²μμλ κ·Έ μ κ·Ό λ°©μμ μκ°νμ§λ§ ReserveAcc
μ νμ΄ μμ λ λμ μΌλ‘ μμ±λκΈ° λλ¬Έμ ꡬνμ blockedAddrs
λ ν° λ³κ²½μ΄ νμνλ€κ³ μκ°ν©λλ€. ν΄κ²° λ°©λ²μ΄ μλμ§ νμΈνκΈ° μν΄ μ΄ μ κ·Ό λ°©μμ κ³μ νμ μ€μ
λλ€.
λ€ λ§μ΅λλ€. μ΄μ λν ν΄κ²° λ°©λ²μ νλμ λͺ¨λ κ³μ (μ λ€μμ€ μ μμ±λκ³ μ μ ν μ νμ΄ μμ)λ§ μ¬μ©νλ κ²μ΄μ§λ§ μνμ 맑기λ λμ μ λμ± λͺ¨λμ κ° νμ λν μ€λΉκΈ μμ‘μ μΆμ ν΄μΌ ν©λλ€. κΈ°μ€ μΉμ. κ·Έλ¬λ μ΄κ²μ΄ λ°λμ§νμ§ μμ μ μμμ μ΄ν΄ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
κ³ κ°λ ν μ μ€λΉκΈμ΄ 0μΈ νμ΄ μλλΌ ν μ½μΈ κ³΅κΈ μ΄ μλ νλ‘ μ μνλ©΄ μΈκΈλ μν©μμ 체μΈμ΄ ν¨λνλ κ²μ λ°©μ§ν μ μμ΅λλ€.
μμ νκ² μ΅λλ€.