@@ -24,6 +24,23 @@ namespace ripple {
2424namespace test {
2525struct GenesisMint_test : public beast ::unit_test::suite
2626{
27+ // Close the ledger until doVoting for FeatureHookFeeV2 is called
28+ void
29+ incLgrSeqForGasPriceEnabled (jtx::Env& env)
30+ {
31+ if (!env.current ()->rules ().enabled (featureHookFeeV2))
32+ return ;
33+
34+ BEAST_EXPECT (!env.le (keylet::fees ())->isFieldPresent (sfHookGasPrice));
35+
36+ auto const seq = env.current ()->info ().seq ;
37+ BEAST_EXPECT (seq <= 256 );
38+ for (int i = seq; i <= 256 ; ++i)
39+ env.close ();
40+ env.close ();
41+ BEAST_EXPECT (env.le (keylet::fees ())->getFieldU32 (sfHookGasPrice) > 0 );
42+ }
43+
2744 void
2845 validateEmittedTxn (jtx::Env& env, std::string result, uint64_t lineno)
2946 {
@@ -95,6 +112,8 @@ struct GenesisMint_test : public beast::unit_test::suite
95112 using namespace std ::literals::chrono_literals;
96113
97114 Env env{*this , envconfig (), features};
115+ incLgrSeqForGasPriceEnabled (env);
116+
98117 auto const alice = Account (" alice" );
99118 auto const bob = Account (" bob" );
100119 auto const invoker = Account (" invoker" );
@@ -139,6 +158,8 @@ struct GenesisMint_test : public beast::unit_test::suite
139158 features,
140159 nullptr ,
141160 beast::severities::kDisabled };
161+ incLgrSeqForGasPriceEnabled (env);
162+
142163 auto const alice = Account (" alice" );
143164 auto const bob = Account (" bob" );
144165 auto const invoker = Account (" invoker" );
@@ -233,14 +254,20 @@ struct GenesisMint_test : public beast::unit_test::suite
233254 auto acc = env.le (keylet::account (carol.id ()));
234255 BEAST_EXPECT (
235256 acc->getFieldAmount (sfBalance).xrp ().drops () == 67890000000ULL );
236- BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 60 );
257+ if (env.current ()->rules ().enabled (featureHookFeeV2))
258+ BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 2610 );
259+ else
260+ BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 60 );
237261 }
238262
239263 {
240264 auto acc = env.le (keylet::account (david.id ()));
241265 BEAST_EXPECT (
242266 acc->getFieldAmount (sfBalance).xrp ().drops () == 12345000000ULL );
243- BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 60 );
267+ if (env.current ()->rules ().enabled (featureHookFeeV2))
268+ BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 2610 );
269+ else
270+ BEAST_EXPECT (acc->getFieldU32 (sfSequence) == 60 );
244271 }
245272
246273 // lots of entries
@@ -646,6 +673,8 @@ struct GenesisMint_test : public beast::unit_test::suite
646673 using namespace std ::literals::chrono_literals;
647674
648675 Env env{*this , envconfig (), features};
676+ incLgrSeqForGasPriceEnabled (env);
677+
649678 auto const alice = Account (" alice" );
650679 auto const bob = Account (" bob" );
651680 env.fund (XRP (10000 ), alice, bob);
@@ -668,6 +697,8 @@ struct GenesisMint_test : public beast::unit_test::suite
668697 using namespace std ::literals::chrono_literals;
669698
670699 Env env{*this , envconfig (), features};
700+ incLgrSeqForGasPriceEnabled (env);
701+
671702 auto const alice = Account (" alice" );
672703 auto const bob = Account (" bob" );
673704 env.fund (XRP (10000 ), alice, bob);
@@ -700,6 +731,7 @@ struct GenesisMint_test : public beast::unit_test::suite
700731 testWithFeats (sa);
701732 testWithFeats (sa - fixXahauV1);
702733 testWithFeats (sa - fixHookAPI20251128);
734+ testWithFeats (sa - featureHookFeeV2);
703735 }
704736};
705737
0 commit comments