diff --git a/src/test/app/AMMExtended_test.cpp b/src/test/app/AMMExtended_test.cpp index d531140cc..16e66d803 100644 --- a/src/test/app/AMMExtended_test.cpp +++ b/src/test/app/AMMExtended_test.cpp @@ -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))); diff --git a/src/test/jtx/impl/AMMTest.cpp b/src/test/jtx/impl/AMMTest.cpp index 575e2e1d8..7ba567a37 100644 --- a/src/test/jtx/impl/AMMTest.cpp +++ b/src/test/jtx/impl/AMMTest.cpp @@ -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 cfg) { - cfg->PATH_SEARCH_OLD = 7; - cfg->PATH_SEARCH = 7; - cfg->PATH_SEARCH_MAX = 10; - return cfg; - })); + return Env( + *this, + envconfig([](std::unique_ptr cfg) { + cfg->PATH_SEARCH_OLD = 7; + cfg->PATH_SEARCH = 7; + cfg->PATH_SEARCH_MAX = 10; + return cfg; + }), + supported_amendments() - featureXahauGenesis - featureTouch); } Json::Value diff --git a/src/test/rpc/AccountTx_test.cpp b/src/test/rpc/AccountTx_test.cpp index 1ba5e08e7..2685bc953 100644 --- a/src/test/rpc/AccountTx_test.cpp +++ b/src/test/rpc/AccountTx_test.cpp @@ -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"); } diff --git a/src/test/rpc/Subscribe_test.cpp b/src/test/rpc/Subscribe_test.cpp index ac3383a02..fa361e7ad 100644 --- a/src/test/rpc/Subscribe_test.cpp +++ b/src/test/rpc/Subscribe_test.cpp @@ -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] // diff --git a/src/test/rpc/TransactionEntry_test.cpp b/src/test/rpc/TransactionEntry_test.cpp index 87fec0b3a..3ceb832f1 100644 --- a/src/test/rpc/TransactionEntry_test.cpp +++ b/src/test/rpc/TransactionEntry_test.cpp @@ -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"); } diff --git a/src/test/rpc/Transaction_test.cpp b/src/test/rpc/Transaction_test.cpp index df8a5d055..a972caec5 100644 --- a/src/test/rpc/Transaction_test.cpp +++ b/src/test/rpc/Transaction_test.cpp @@ -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 const txn = env.tx(); BEAST_EXPECT( to_string(txn->getTransactionID()) == - "93334A06F509A0E04E908F2E9BA3BD1A00C7B11A91D5EAF20BEF25CE36FCC358"); + "3F8BDE5A5F82C4F4708E5E9255B713E303E6E1A371FD5C7A704AFD1387C23981"); env.close(); std::shared_ptr 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)); } };