Fix differences such as LedgerHash that occurred due to NetworkID in ltFeeSettings

This commit is contained in:
tequ
2025-12-01 19:28:23 +09:00
parent b9d966dd32
commit f6fe33103c
6 changed files with 62 additions and 57 deletions

View File

@@ -1478,7 +1478,6 @@ private:
auto const AUD = gw["AUD"];
env.fund(XRP(10'000), alice, bob, carol, gw);
env(rate(gw, 1.1));
env.close();
env.trust(AUD(2'000), bob, carol);
env(pay(gw, carol, AUD(51)));
env.close();
@@ -1888,7 +1887,7 @@ private:
{
// simple IOU/IOU offer
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
fund(
env,
@@ -1899,7 +1898,6 @@ private:
Fund::All);
AMM ammBob(env, bob, BTC(100), USD(150));
env.close();
env(pay(alice, carol, USD(50)), path(~USD), sendmax(BTC(50)));
@@ -1987,11 +1985,10 @@ private:
}
{
// test unfunded offers are removed when payment succeeds
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
env.fund(XRP(10'000), alice, carol, gw);
env.fund(XRP(10'000), bob);
env.close();
env.trust(USD(1'000), alice, bob, carol);
env.trust(BTC(1'000), alice, bob, carol);
env.trust(EUR(1'000), alice, bob, carol);
@@ -2374,7 +2371,7 @@ private:
{
// payment via AMM
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
fund(
env,
@@ -2400,7 +2397,6 @@ private:
GBP(1'120),
STAmount{USD, UINT64_C(892'8571428571429), -13},
amm.tokens()));
// 25% of 85.7142USD is paid in tr fee
// 85.7142*1.25 = 107.1428USD
BEAST_EXPECT(expectLine(
@@ -3208,7 +3204,7 @@ private:
testcase("RippleState Freeze");
using namespace test::jtx;
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
Account const G1{"G1"};
Account const alice{"alice"};
@@ -3262,8 +3258,7 @@ private:
env(trust(G1, bob["USD"](0), tfSetFreeze));
auto affected = env.meta()->getJson(
JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(
affected, 2u + 1u))) // 2u + 1u(Issuer Account as Touch)
if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
return;
auto ff =
affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
@@ -3281,11 +3276,10 @@ private:
env(offer(bob, G1["USD"](5), XRP(25)));
auto affected = env.meta()->getJson(
JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(
affected, 4u + 1u))) // 4u + 1u(Issuer Account as Touch)
if (!BEAST_EXPECT(checkArraySize(affected, 4u)))
return;
auto ff =
affected[3u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
BEAST_EXPECT(
ff[sfHighLimit.fieldName] ==
bob["USD"](100).value().getJson(JsonOptions::none));
@@ -3352,8 +3346,7 @@ private:
env(trust(G1, bob["USD"](0), tfClearFreeze));
auto affected = env.meta()->getJson(
JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(
affected, 2u + 1u))) // 2u + 1u(Issuer Account as Touch)
if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
return;
auto ff =
affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
@@ -3510,7 +3503,7 @@ private:
testcase("Offers for Frozen Trust Lines");
using namespace test::jtx;
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
Account G1{"G1"};
Account A2{"A2"};
@@ -3555,11 +3548,10 @@ private:
BEAST_EXPECT(info[jss::amm][jss::asset2_frozen].asBool());
auto affected =
env.meta()->getJson(JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(
affected, 2u + 1u))) // 2u + 1u(Issuer Account as Touch)
if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
return;
auto ff =
affected[0u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
BEAST_EXPECT(
ff[sfHighLimit.fieldName] ==
G1["USD"](0).value().getJson(JsonOptions::none));
@@ -3579,10 +3571,9 @@ private:
env(trust(G1, A4["USD"](0), tfSetFreeze));
affected =
env.meta()->getJson(JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(
affected, 2u + 1u))) // 2u + 1u(Issuer Account as Touch)
if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
return;
ff = affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
ff = affected[0u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
BEAST_EXPECT(
ff[sfLowLimit.fieldName] ==
G1["USD"](0).value().getJson(JsonOptions::none));
@@ -3596,7 +3587,7 @@ private:
env.meta()->getJson(JsonOptions::none)[sfAffectedNodes.fieldName];
if (!BEAST_EXPECT(checkArraySize(affected, 8u)))
return;
auto created = affected[5u][sfCreatedNode.fieldName];
auto created = affected[0u][sfCreatedNode.fieldName];
BEAST_EXPECT(
created[sfNewFields.fieldName][jss::Account] == A2.human());
env.close();
@@ -3778,10 +3769,9 @@ private:
auto const CNY = gw["CNY"];
{
Env env(*this, features);
Env env(*this, features - featureXahauGenesis - featureTouch);
env.fund(XRP(10'000), alice, bob, carol, gw);
env.close();
env.trust(USD(10'000), alice, bob, carol);
env(pay(gw, bob, USD(100)));

View File

@@ -167,12 +167,15 @@ AMMTest::pathTestEnv()
// These tests were originally written with search parameters that are
// different from the current defaults. This function creates an env
// with the search parameters that the tests were written for.
return Env(*this, envconfig([](std::unique_ptr<Config> cfg) {
cfg->PATH_SEARCH_OLD = 7;
cfg->PATH_SEARCH = 7;
cfg->PATH_SEARCH_MAX = 10;
return cfg;
}));
return Env(
*this,
envconfig([](std::unique_ptr<Config> cfg) {
cfg->PATH_SEARCH_OLD = 7;
cfg->PATH_SEARCH = 7;
cfg->PATH_SEARCH_MAX = 10;
return cfg;
}),
supported_amendments() - featureXahauGenesis - featureTouch);
}
Json::Value

View File

@@ -115,7 +115,9 @@ class AccountTx_test : public beast::unit_test::suite
testcase("Parameters APIv" + std::to_string(apiVersion));
using namespace test::jtx;
Env env(*this, supported_amendments() - featureXahauGenesis);
Env env(
*this,
supported_amendments() - featureXahauGenesis - fixHookAPI20251128);
Account A1{"A1"};
env.fund(XRP(10000), A1);
env.close();
@@ -164,8 +166,8 @@ class AccountTx_test : public beast::unit_test::suite
(payment[jss::validated] == true) &&
(payment[jss::ledger_index] == 3) &&
(payment[jss::ledger_hash] ==
"6B1FECE09EE027F4D035A1C0DDE3562E527606AF97B57EF3B"
"E259617D67C8F37") &&
"5476DCD816EA04CBBA57D47BBF1FC58A5217CC93A5ADD79CB"
"580A5AFDD727E33") &&
(payment[jss::close_time_iso] ==
"2000-01-01T00:00:10Z");
}

View File

@@ -315,7 +315,8 @@ public:
using namespace std::chrono_literals;
using namespace jtx;
Env env(*this);
Env env(
*this, supported_amendments() - featureXahauGenesis - featureTouch);
auto wsc = makeWSClient(env.app().config());
Json::Value stream{Json::objectValue};
@@ -342,15 +343,15 @@ public:
// Check stream update for payment transaction
BEAST_EXPECT(wsc->findMsg(5s, [&](auto const& jv) {
return jv[jss::meta]["AffectedNodes"][2u]["CreatedNode"]
return jv[jss::meta]["AffectedNodes"][1u]["CreatedNode"]
["NewFields"][jss::Account] //
== Account("alice").human() &&
jv[jss::close_time_iso] //
== "2000-01-01T00:00:10Z" &&
jv[jss::validated] == true && //
jv[jss::ledger_hash] ==
"3BD88B8E93BED46C0B1ACB2C46687DE29F19F9BB82DE6C3D8CC491D6AE"
"DEE517" && //
"0F1A9E0C109ADEF6DA2BDE19217C12BBEC57174CBDBD212B0EBDC1CEDB"
"853185" && //
!jv[jss::inLedger] &&
jv[jss::ledger_index] == 3 && //
jv[jss::tx_json][jss::TransactionType] //

View File

@@ -150,7 +150,11 @@ class TransactionEntry_test : public beast::unit_test::suite
{
testcase("Basic request API version " + std::to_string(apiVersion));
using namespace test::jtx;
Env env{*this, supported_amendments() - featureXahauGenesis};
Env env{
*this,
supported_amendments() - featureXahauGenesis - featureTouch -
fixHookAPI20251128,
};
auto check_tx = [this, &env, apiVersion](
int index,
@@ -279,7 +283,7 @@ class TransactionEntry_test : public beast::unit_test::suite
"TransactionType" : "AccountSet",
"TxnSignature" : "3044022007B35E3B99460534FF6BC3A66FBBA03591C355CC38E38588968E87CCD01BE229022071A443026DE45041B55ABB1CC76812A87EA701E475BBB7E165513B4B242D3474",
})",
"5E8D88365131CA2EA3E0ADAFFB4A927D16B3820744D60B1303A6D9398358693D",
"ADB727BCC74B29421BB01B847740B179B8A0ED3248D76A89ED2E39B02C427784",
"2000-01-01T00:00:10Z");
check_tx(
env.closed()->seq(),
@@ -293,7 +297,7 @@ class TransactionEntry_test : public beast::unit_test::suite
"TransactionType" : "AccountSet",
"TxnSignature" : "3045022100C8857FC0759A2AC0D2F320684691A66EAD252EAED9EF88C79791BC58BFCC9D860220421722286487DD0ED6BBA626CE6FCBDD14289F7F4726870C3465A4054C2702D7",
})",
"5E8D88365131CA2EA3E0ADAFFB4A927D16B3820744D60B1303A6D9398358693D",
"ADB727BCC74B29421BB01B847740B179B8A0ED3248D76A89ED2E39B02C427784",
"2000-01-01T00:00:10Z");
env.trust(A2["USD"](1000), A1);
@@ -328,7 +332,7 @@ class TransactionEntry_test : public beast::unit_test::suite
"TransactionType" : "Payment",
"TxnSignature" : "3044022033D9EBF7F02950AF2F6B13C07AEE641C8FEBDD540A338FCB9027A965A4AED35B02206E4E227DCC226A3456C0FEF953449D21645A24EB63CA0BB7C5B62470147FD1D1",
})",
"41DB005149858C9BE599AE98FE1DF5BD4E9E0265B53DD4792532E9296A0773B6",
"3A6E375BFDFF029A571AFBB3BC46C4F52963FAF043B406D0E59A7194C1A8F98E",
"2000-01-01T00:00:20Z");
check_tx(
@@ -350,7 +354,7 @@ class TransactionEntry_test : public beast::unit_test::suite
"TransactionType" : "Payment",
"TxnSignature" : "30450221008A722B7F16EDB2348886E88ED4EC682AE9973CC1EE0FF37C93BB2CEC821D3EDF022059E464472031BA5E0D88A93E944B6A8B8DB3E1D5E5D1399A805F615789DB0BED",
})",
"41DB005149858C9BE599AE98FE1DF5BD4E9E0265B53DD4792532E9296A0773B6",
"3A6E375BFDFF029A571AFBB3BC46C4F52963FAF043B406D0E59A7194C1A8F98E",
"2000-01-01T00:00:20Z");
env(offer(A2, XRP(100), A2["USD"](1)));
@@ -379,7 +383,7 @@ class TransactionEntry_test : public beast::unit_test::suite
"TransactionType" : "OfferCreate",
"TxnSignature" : "304502210093FC93ACB77B4E3DE3315441BD010096734859080C1797AB735EB47EBD541BD102205020BB1A7C3B4141279EE4C287C13671E2450EA78914EFD0C6DB2A18344CD4F2",
})",
"87622B7BC61E8CD01E7C5FC5198CA5A255F8468983CE1E19245FEE3068D97968",
"73D6C8E66E0DC22F3E6F7D39BF795A6831BEB412823A986C7CC19470C93557C0",
"2000-01-01T00:00:30Z");
}

View File

@@ -772,7 +772,7 @@ class Transaction_test : public beast::unit_test::suite
using namespace test::jtx;
using std::to_string;
Env env{*this};
Env env{*this, features};
Account const alice{"alice"};
Account const alie{"alie"};
Account const gw{"gw"};
@@ -821,8 +821,8 @@ class Transaction_test : public beast::unit_test::suite
BEAST_EXPECT(result[jss::result][jss::ledger_index] == 4);
BEAST_EXPECT(
result[jss::result][jss::ledger_hash] ==
"34BBC578F3A4EB6FC6C192C38F99EADD512316B32FA60B425764F1F9602DBB"
"00");
"B41882E20F0EC6228417D28B9AE0F33833645D35F6799DFB782AC97FC4BB51"
"D2");
}
for (auto memberIt = expected.begin(); memberIt != expected.end();
@@ -846,7 +846,7 @@ class Transaction_test : public beast::unit_test::suite
}
void
testBinaryRequest(unsigned apiVersion)
testBinaryRequest(FeatureBitset features, unsigned apiVersion)
{
testcase(
"Test binary request API version " + std::to_string(apiVersion));
@@ -854,16 +854,17 @@ class Transaction_test : public beast::unit_test::suite
using namespace test::jtx;
using std::to_string;
Env env{*this};
Env env{*this, features};
Account const alice{"alice"};
Account const gw{"gw"};
auto const USD{gw["USD"]};
env.fund(XRP(1000000), alice, gw);
std::shared_ptr<STTx const> const txn = env.tx();
BEAST_EXPECT(
to_string(txn->getTransactionID()) ==
"93334A06F509A0E04E908F2E9BA3BD1A00C7B11A91D5EAF20BEF25CE36FCC358");
"3F8BDE5A5F82C4F4708E5E9255B713E303E6E1A371FD5C7A704AFD1387C23981");
env.close();
std::shared_ptr<STObject const> meta =
env.closed()->txRead(txn->getTransactionID()).second;
@@ -897,8 +898,8 @@ class Transaction_test : public beast::unit_test::suite
result[jss::result][jss::meta_blob] == expected_meta_blob);
BEAST_EXPECT(
result[jss::result][jss::ledger_hash] ==
"6BE57FA882745536BF528B09E0BAD3F31FC7CDA0284DDD0E0B97540550"
"FFBECF");
"2D5150E5A5AA436736A732291E437ABF01BC9E206C2DF3C77C4F856915"
"7905AA");
BEAST_EXPECT(
result[jss::result][jss::close_time_iso] ==
"2000-01-01T00:00:10Z");
@@ -918,9 +919,11 @@ public:
run() override
{
using namespace test::jtx;
forAllApiVersions(
std::bind_front(&Transaction_test::testBinaryRequest, this));
forAllApiVersions(std::bind_front(
&Transaction_test::testBinaryRequest,
this,
supported_amendments() - featureXahauGenesis - fixHookAPI20251128));
return;
FeatureBitset const all{supported_amendments()};
testWithFeats(all);
}
@@ -932,8 +935,10 @@ public:
testRangeCTIDRequest(features);
testCTIDValidation(features);
testCTIDRPC(features);
forAllApiVersions(
std::bind_front(&Transaction_test::testRequest, this, features));
forAllApiVersions(std::bind_front(
&Transaction_test::testRequest,
this,
features - featureXahauGenesis - featureTouch));
}
};