mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-23 07:10:53 +00:00
fix: Assorted MPT/DEX fixes (#7299)
Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
6ca2fb84d4
commit
26cc683ec1
@@ -3778,6 +3778,21 @@ private:
|
||||
BEAST_EXPECT(amm.expectBalances(XRP(1'000), USD(500), amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(env, carol_, 1, {{Amounts{XRP(100), USD(55)}}}));
|
||||
}
|
||||
else if (!features[featureMPTokensV2])
|
||||
{
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'909),
|
||||
STAmount{USD, UINT64_C(550'000000055), -9},
|
||||
amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env,
|
||||
carol_,
|
||||
1,
|
||||
{{Amounts{XRPAmount{9'090'909}, STAmount{USD, 4'99999995, -8}}}}));
|
||||
BEAST_EXPECT(
|
||||
env.balance(carol_, USD) ==
|
||||
STAmount(USD, UINT64_C(29'949'94999999494), -11));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Post-amendment the transfer fee is taken into account
|
||||
@@ -3788,19 +3803,19 @@ private:
|
||||
// quality.
|
||||
// AMM offer ~50USD/91XRP
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'909),
|
||||
STAmount{USD, UINT64_C(550'000000055), -9},
|
||||
XRPAmount(909'090'910),
|
||||
STAmount{USD, UINT64_C(549'99999945), -8},
|
||||
amm.tokens()));
|
||||
// Offer ~91XRP/49.99USD
|
||||
// Offer ~91XRP/50USD
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env,
|
||||
carol_,
|
||||
1,
|
||||
{{Amounts{XRPAmount{9'090'909}, STAmount{USD, 4'99999995, -8}}}}));
|
||||
{{Amounts{XRPAmount{9'090'910}, STAmount{USD, 5'0000005, -7}}}}));
|
||||
// Carol pays 0.1% fee on ~50USD =~ 0.05USD
|
||||
BEAST_EXPECT(
|
||||
env.balance(carol_, USD) ==
|
||||
STAmount(USD, UINT64_C(29'949'94999999494), -11));
|
||||
STAmount(USD, UINT64_C(29'949'95000060055), -11));
|
||||
}
|
||||
},
|
||||
{{XRP(1'000), USD(500)}},
|
||||
@@ -6451,7 +6466,7 @@ private:
|
||||
BEAST_EXPECT(expectOffers(env, bob_, 1, {{Amounts{USD(1), XRPAmount(500)}}}));
|
||||
BEAST_EXPECT(expectOffers(env, carol_, 1, {{Amounts{XRP(100), USD(55)}}}));
|
||||
}
|
||||
else
|
||||
else if (!features[featureMPTokensV2])
|
||||
{
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'909),
|
||||
@@ -6464,6 +6479,19 @@ private:
|
||||
{{Amounts{XRPAmount{9'090'909}, STAmount{USD, 4'99999995, -8}}}}));
|
||||
BEAST_EXPECT(expectOffers(env, bob_, 1, {{Amounts{USD(1), XRPAmount(500)}}}));
|
||||
}
|
||||
else
|
||||
{
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'910),
|
||||
STAmount{USD, UINT64_C(549'99999945), -8},
|
||||
amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env,
|
||||
carol_,
|
||||
1,
|
||||
{{Amounts{XRPAmount{9'090'910}, STAmount{USD, 5'0000005, -7}}}}));
|
||||
BEAST_EXPECT(expectOffers(env, bob_, 1, {{Amounts{USD(1), XRPAmount(500)}}}));
|
||||
}
|
||||
}
|
||||
|
||||
// There is no blocking offer, the same AMM liquidity is consumed
|
||||
@@ -6475,10 +6503,30 @@ private:
|
||||
AMM const amm(env, alice_, XRP(1'000), USD(500));
|
||||
env(offer(carol_, XRP(100), USD(55)));
|
||||
env.close();
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'909), STAmount{USD, UINT64_C(550'000000055), -9}, amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env, carol_, 1, {{Amounts{XRPAmount{9'090'909}, STAmount{USD, 4'99999995, -8}}}}));
|
||||
if (!features[featureMPTokensV2])
|
||||
{
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'909),
|
||||
STAmount{USD, UINT64_C(550'000000055), -9},
|
||||
amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env,
|
||||
carol_,
|
||||
1,
|
||||
{{Amounts{XRPAmount{9'090'909}, STAmount{USD, 4'99999995, -8}}}}));
|
||||
}
|
||||
else
|
||||
{
|
||||
BEAST_EXPECT(amm.expectBalances(
|
||||
XRPAmount(909'090'910),
|
||||
STAmount{USD, UINT64_C(549'99999945), -8},
|
||||
amm.tokens()));
|
||||
BEAST_EXPECT(expectOffers(
|
||||
env,
|
||||
carol_,
|
||||
1,
|
||||
{{Amounts{XRPAmount{9'090'910}, STAmount{USD, 5'0000005, -7}}}}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7400,6 +7448,7 @@ private:
|
||||
testFlags();
|
||||
testRippling();
|
||||
testAMMAndCLOB(all);
|
||||
testAMMAndCLOB(all - featureMPTokensV2);
|
||||
testAMMAndCLOB(all - fixAMMv1_1 - fixAMMv1_3);
|
||||
testTradingFee(all);
|
||||
testTradingFee(all - fixAMMv1_3);
|
||||
@@ -7419,8 +7468,10 @@ private:
|
||||
testOverflowOffer(all - fixAMMv1_1 - fixAMMv1_3);
|
||||
testSwapRounding();
|
||||
testFixChangeSpotPriceQuality(all);
|
||||
testFixChangeSpotPriceQuality(all - featureMPTokensV2);
|
||||
testFixChangeSpotPriceQuality(all - fixAMMv1_1 - fixAMMv1_3);
|
||||
testFixAMMOfferBlockedByLOB(all);
|
||||
testFixAMMOfferBlockedByLOB(all - featureMPTokensV2);
|
||||
testFixAMMOfferBlockedByLOB(all - fixAMMv1_1 - fixAMMv1_3);
|
||||
testLPTokenBalance(all);
|
||||
testLPTokenBalance(all - fixAMMv1_3);
|
||||
|
||||
Reference in New Issue
Block a user