21#include <xrpl/protocol/Feature.h>
31 using namespace test::jtx;
34 Env env{*
this, supported_amendments() - fixMasterKeyAsRegularKey};
35 Account
const alice(
"alice");
36 Account
const bob(
"bob");
37 env.fund(XRP(10000), alice, bob);
39 env(regkey(alice, bob));
40 auto const ar = env.le(alice);
42 ar->isFieldPresent(sfRegularKey) &&
43 (ar->getAccountID(sfRegularKey) == bob.id()));
45 env(noop(alice), sig(bob));
46 env(noop(alice), sig(alice));
50 env(noop(alice), sig(bob));
59 env(noop(alice), sig(bob));
60 env(noop(alice), sig(alice));
63 env(regkey(alice, disabled));
65 env(noop(alice), sig(alice));
71 using namespace test::jtx;
74 Env env{*
this, supported_amendments() | fixMasterKeyAsRegularKey};
75 Account
const alice(
"alice");
76 Account
const bob(
"bob");
77 env.fund(XRP(10000), alice, bob);
79 env(regkey(alice, bob));
80 env(noop(alice), sig(bob));
81 env(noop(alice), sig(alice));
85 env(noop(alice), sig(bob));
94 env(noop(alice), sig(bob));
95 env(noop(alice), sig(alice));
98 env(regkey(alice, disabled));
100 env(noop(alice), sig(alice));
106 using namespace test::jtx;
110 "Set regular key to master key (before fixMasterKeyAsRegularKey)");
111 Env env{*
this, supported_amendments() - fixMasterKeyAsRegularKey};
112 Account
const alice(
"alice");
113 env.fund(XRP(10000), alice);
116 env(regkey(alice, alice), sig(alice));
124 env.enableFeature(fixMasterKeyAsRegularKey);
126 env(noop(alice), sig(alice));
130 env(regkey(alice, disabled));
137 using namespace test::jtx;
140 "Set regular key to master key (after fixMasterKeyAsRegularKey)");
141 Env env{*
this, supported_amendments() | fixMasterKeyAsRegularKey};
142 Account
const alice(
"alice");
143 env.fund(XRP(10000), alice);
152 using namespace test::jtx;
156 Account
const alice(
"alice");
157 Account
const bob(
"bob");
158 env.fund(XRP(10000), alice, bob);
160 auto ar = env.le(alice);
162 ar->isFieldPresent(sfFlags) &&
165 env(regkey(alice, bob), sig(alice), fee(0));
169 ar->isFieldPresent(sfFlags) &&
176 env.trust(bob[
"USD"](1), alice);
177 env(pay(bob, alice, bob[
"USD"](1)));
180 ar->isFieldPresent(sfFlags) &&
187 using namespace test::jtx;
191 Account
const alice(
"alice");
192 Account
const bob(
"bob");
193 env.fund(XRP(10000), alice, bob);
195 auto jv = regkey(alice, bob);
203 using namespace test::jtx;
208 env.fund(XRP(1000), alice);
212 env(ticket::create(alice, 4));
218 env(regkey(alice, alie), ticket::use(--ticketSeq));
224 ticket::use(--ticketSeq));
233 BEAST_EXPECT(env.seq(alice) == aliceSeq + 1);
238 ticket::use(--ticketSeq));
242 env(regkey(alice, disabled), sig(alie), ticket::use(--ticketSeq));
247 env(noop(alice), sig(alice), ter(
tesSUCCESS));
testcase_t testcase
Memberspace for declaring test cases.
void testDisableMasterKeyAfterFix()
void testDisableRegularKeyAfterFix()
void run() override
Runs the suite.
void testDisableMasterKey()
void testDisabledRegularKey()
void testTicketRegularKey()
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
constexpr std::uint32_t asfDisableMaster
constexpr std::uint32_t tfUniversalMask