Skip to content

Commit 71a0f42

Browse files
committed
fix: 🐛 support asym adds
1 parent 53a24d9 commit 71a0f42

File tree

2 files changed

+64
-8
lines changed

2 files changed

+64
-8
lines changed

cmd/siftest/test.go

+32-4
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,44 @@ func TestAddLiquidity(clientCtx client.Context, txf tx.Factory, key keyring.Info
101101
poolAfter.Pool.ExternalAssetBalance.Sub(poolBefore.Pool.ExternalAssetBalance).String()))
102102
}
103103

104+
pmtpParams, err := clpQueryClient.GetPmtpParams(context.Background(), &clptypes.PmtpParamsReq{})
105+
if err != nil {
106+
return err
107+
}
108+
109+
swapFeeParams, err := clpQueryClient.GetSwapFeeParams(context.Background(), &clptypes.SwapFeeParamsReq{})
110+
if err != nil {
111+
return err
112+
}
113+
114+
// get native swap fee rate
115+
sellNativeSwapFeeRate := swapFeeParams.DefaultSwapFeeRate
116+
for _, tokenParam := range swapFeeParams.TokenParams {
117+
if tokenParam.Asset == clptypes.GetSettlementAsset().Symbol {
118+
sellNativeSwapFeeRate = tokenParam.SwapFeeRate
119+
break
120+
}
121+
}
122+
123+
// get external token swap fee rate
124+
buyNativeSwapFeeRate := swapFeeParams.DefaultSwapFeeRate
125+
for _, tokenParam := range swapFeeParams.TokenParams {
126+
if tokenParam.Asset == msg.ExternalAsset.Symbol {
127+
buyNativeSwapFeeRate = tokenParam.SwapFeeRate
128+
break
129+
}
130+
}
131+
104132
// calculate expected result
105-
newPoolUnits, lpUnits, err := clpkeeper.CalculatePoolUnits(
133+
newPoolUnits, lpUnits, _, _, err := clpkeeper.CalculatePoolUnits(
106134
poolBefore.Pool.PoolUnits,
107135
poolBefore.Pool.NativeAssetBalance,
108136
poolBefore.Pool.ExternalAssetBalance,
109137
msg.NativeAssetAmount,
110138
msg.ExternalAssetAmount,
111-
18,
112-
sdk.NewDecWithPrec(5, 5),
113-
sdk.NewDecWithPrec(5, 4))
139+
sellNativeSwapFeeRate,
140+
buyNativeSwapFeeRate,
141+
pmtpParams.PmtpRateParams.PmtpCurrentRunningRate)
114142
if err != nil {
115143
return err
116144
}

cmd/siftest/verify.go

+32-4
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,46 @@ func VerifyAdd(clientCtx client.Context, from string, height uint64, nativeAmoun
100100
return err
101101
}
102102

103+
pmtpParams, err := clpQueryClient.GetPmtpParams(context.Background(), &clptypes.PmtpParamsReq{})
104+
if err != nil {
105+
return err
106+
}
107+
108+
swapFeeParams, err := clpQueryClient.GetSwapFeeParams(context.Background(), &clptypes.SwapFeeParamsReq{})
109+
if err != nil {
110+
return err
111+
}
112+
113+
// get native swap fee rate
114+
sellNativeSwapFeeRate := swapFeeParams.DefaultSwapFeeRate
115+
for _, tokenParam := range swapFeeParams.TokenParams {
116+
if tokenParam.Asset == clptypes.GetSettlementAsset().Symbol {
117+
sellNativeSwapFeeRate = tokenParam.SwapFeeRate
118+
break
119+
}
120+
}
121+
122+
// get external token swap fee rate
123+
buyNativeSwapFeeRate := swapFeeParams.DefaultSwapFeeRate
124+
for _, tokenParam := range swapFeeParams.TokenParams {
125+
if tokenParam.Asset == externalAsset {
126+
buyNativeSwapFeeRate = tokenParam.SwapFeeRate
127+
break
128+
}
129+
}
130+
103131
// Calculate expected values
104132
nativeAssetDepth := poolBefore.Pool.NativeAssetBalance.Add(poolBefore.Pool.NativeLiabilities)
105133
externalAssetDepth := poolBefore.Pool.ExternalAssetBalance.Add(poolBefore.Pool.ExternalLiabilities)
106-
_ /*newPoolUnits*/, lpUnits, err := clpkeeper.CalculatePoolUnits(
134+
_ /*newPoolUnits*/, lpUnits, _, _, err := clpkeeper.CalculatePoolUnits(
107135
poolBefore.Pool.PoolUnits,
108136
nativeAssetDepth,
109137
externalAssetDepth,
110138
nativeAmount,
111139
externalAmount,
112-
18,
113-
sdk.NewDecWithPrec(5, 5),
114-
sdk.NewDecWithPrec(5, 4))
140+
sellNativeSwapFeeRate,
141+
buyNativeSwapFeeRate,
142+
pmtpParams.PmtpRateParams.PmtpCurrentRunningRate)
115143
if err != nil {
116144
return err
117145
}

0 commit comments

Comments
 (0)