20#include <test/jtx/Env.h>
22#include <xrpld/app/misc/Manifest.h>
23#include <xrpld/app/misc/ValidatorKeys.h>
24#include <xrpld/core/Config.h>
25#include <xrpld/core/ConfigSections.h>
27#include <xrpl/basics/base64.h>
28#include <xrpl/beast/unit_test.h>
42 "paQmjZ37pKKPMrgadBLsuf9ab7Y7EUNzh27LQrZqoexpAs31nJi";
46 "eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n",
47 " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl "
49 "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE"
52 "hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t "
54 "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n",
55 "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n",
56 "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n",
57 "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n"};
60 "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/vCxHXXLplc2GnMhAkE1agqXxBwD"
61 "wDbID6OMSYuM0FDAlpAgNk8SKFn7MO2fdkcwRQIhAOngu9sAKqXYouJ+l2V0W+sAOkVB"
62 "+ZRS6PShlJAfUsXfAiBsVJGesaadOJc/aAZokS1vymGmVrlHPKWX3Yywu6in8HASQKPu"
63 "gBD67kMaRFGvmpATHlGKJdvDFlWPYy5AqDedFv5TJa2w0i21eq3MYywLVJZnFOr7C0kw"
68 "eyJtYW5pZmVzdCI6IkpBQUFBQVZ4SWUyOVVBdzViZFJudHJ1elVkREk4aDNGV1JWZl\n",
69 "k3SXVIaUlKQUhJd3MxdzZzM01oQWtsa1VXQWR2RnFRVGRlSEpvS1pNY0hlS0RzOExo\n",
70 "b3d3bDlHOEdkVGNJbmFka1l3UkFJZ0h2Q01lQU1aSzlqQnV2aFhlaFRLRzVDQ3BBR1\n",
71 "k0bGtvZHRXYW84UGhzR3NDSUREVTA1d1c3bWNiMjlVNkMvTHBpZmgvakZPRGhFR21i\n",
72 "NWF6dTJMVHlqL1pjQkpBbitmNGhtQTQ0U0tYbGtTTUFqak1rSWRyR1Rxa21SNjBzVG\n",
73 "JaTjZOOUYwdk9UV3VYcUZ6eDFoSGIyL0RqWElVZXhDVGlITEcxTG9UdUp1eXdXbk55\n",
74 "RFE9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tleSI6IjkyRDhCNDBGMzYwMTc5MTkwMU\n",
75 "MzQTUzMzI3NzBDMkUwMTA4MDI0NTZFOEM2QkI0NEQ0N0FFREQ0NzJGMDQ2RkYifQ==\n"};
98 auto const tokenSecretKey =
101 auto const tokenPublicKey =
112 BEAST_EXPECT(!k.keys);
113 BEAST_EXPECT(k.manifest.empty());
114 BEAST_EXPECT(!k.configInvalid());
122 if (BEAST_EXPECT(k.keys))
124 BEAST_EXPECT(k.keys->publicKey == seedPublicKey);
125 BEAST_EXPECT(k.keys->secretKey == seedSecretKey);
127 BEAST_EXPECT(k.nodeID == seedNodeID);
128 BEAST_EXPECT(k.manifest.empty());
129 BEAST_EXPECT(!k.configInvalid());
138 BEAST_EXPECT(k.configInvalid());
139 BEAST_EXPECT(!k.keys);
140 BEAST_EXPECT(k.manifest.empty());
149 if (BEAST_EXPECT(k.keys))
151 BEAST_EXPECT(k.keys->publicKey == tokenPublicKey);
152 BEAST_EXPECT(k.keys->secretKey == tokenSecretKey);
154 BEAST_EXPECT(k.nodeID == tokenNodeID);
156 BEAST_EXPECT(!k.configInvalid());
163 BEAST_EXPECT(k.configInvalid());
164 BEAST_EXPECT(!k.keys);
165 BEAST_EXPECT(k.manifest.empty());
175 BEAST_EXPECT(k.configInvalid());
176 BEAST_EXPECT(!k.keys);
177 BEAST_EXPECT(k.manifest.empty());
186 BEAST_EXPECT(k.configInvalid());
187 BEAST_EXPECT(!k.keys);
188 BEAST_EXPECT(k.manifest.empty());
A generic endpoint for log messages.
Section & section(std::string const &name)
Returns the section with the given name.
void append(std::vector< std::string > const &lines)
Append a set of lines to this section.
Validator keys and manifest as set in configuration file.
void run() override
Runs the suite.
std::vector< std::string > const tokenBlob
std::vector< std::string > const invalidTokenBlob
std::string const tokenSecretStr
std::string const tokenManifest
A transaction testing environment.
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::optional< Manifest > deserializeManifest(Slice s, beast::Journal journal)
Constructs Manifest from serialized string.
std::string base64_decode(std::string_view data)
PublicKey derivePublicKey(KeyType type, SecretKey const &sk)
Derive the public key from a secret key.
SecretKey generateSecretKey(KeyType type, Seed const &seed)
Generate a new secret key deterministically.
NodeID calcNodeID(PublicKey const &)
Calculate the 160-bit node ID from a node public key.