1#include <test/jtx/Env.h>
2#include <test/jtx/envconfig.h>
3#include <test/unit_test/utils.h>
5#include <xrpld/app/misc/ValidatorKeys.h>
6#include <xrpld/core/Config.h>
8#include <xrpl/basics/base64.h>
9#include <xrpl/beast/unit_test/suite.h>
10#include <xrpl/beast/utility/Journal.h>
11#include <xrpl/config/Constants.h>
12#include <xrpl/protocol/KeyType.h>
13#include <xrpl/protocol/PublicKey.h>
14#include <xrpl/protocol/SecretKey.h>
15#include <xrpl/protocol/Seed.h>
16#include <xrpl/protocol/UintTypes.h>
17#include <xrpl/protocol/tokens.h>
18#include <xrpl/server/Manifest.h>
34 " eyJ2YWxpZGF0aW9uX3NlY3JldF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT\n",
35 " \tQzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYTlkYWY2IiwibWFuaWZl \n",
36 "\tc3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE\n",
37 "\t hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG\t \t\n",
38 "bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2\n",
39 "hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1\n",
40 "NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj\n",
41 "VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==\n",
45 "JAAAAAFxIe1FtwmimvGtH2iCcMJqC9gVFKilGfw1/vCxHXXLplc2GnMhAkE1agqXxBwD"
46 "wDbID6OMSYuM0FDAlpAgNk8SKFn7MO2fdkcwRQIhAOngu9sAKqXYouJ+l2V0W+sAOkVB"
47 "+ZRS6PShlJAfUsXfAiBsVJGesaadOJc/aAZokS1vymGmVrlHPKWX3Yywu6in8HASQKPu"
48 "gBD67kMaRFGvmpATHlGKJdvDFlWPYy5AqDedFv5TJa2w0i21eq3MYywLVJZnFOr7C0kw"
53 "eyJtYW5pZmVzdCI6IkpBQUFBQVZ4SWUyOVVBdzViZFJudHJ1elVkREk4aDNGV1JWZl\n",
54 "k3SXVIaUlKQUhJd3MxdzZzM01oQWtsa1VXQWR2RnFRVGRlSEpvS1pNY0hlS0RzOExo\n",
55 "b3d3bDlHOEdkVGNJbmFka1l3UkFJZ0h2Q01lQU1aSzlqQnV2aFhlaFRLRzVDQ3BBR1\n",
56 "k0bGtvZHRXYW84UGhzR3NDSUREVTA1d1c3bWNiMjlVNkMvTHBpZmgvakZPRGhFR21i\n",
57 "NWF6dTJMVHlqL1pjQkpBbitmNGhtQTQ0U0tYbGtTTUFqak1rSWRyR1Rxa21SNjBzVG\n",
58 "JaTjZOOUYwdk9UV3VYcUZ6eDFoSGIyL0RqWElVZXhDVGlITEcxTG9UdUp1eXdXbk55\n",
59 "RFE9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tleSI6IjkyRDhCNDBGMzYwMTc5MTkwMU\n",
60 "MzQTUzMzI3NzBDMkUwMTA4MDI0NTZFOEM2QkI0NEQ0N0FFREQ0NzJGMDQ2RkYifQ==\n",
80 auto const tokenSecretKey =
96 BEAST_EXPECT(!k.
keys);
106 if (BEAST_EXPECT(k.
keys); k.
keys.has_value())
108 BEAST_EXPECT(k.
keys->publicKey == seedPublicKey);
111 BEAST_EXPECT(k.
nodeID == seedNodeID);
123 BEAST_EXPECT(!k.
keys);
133 if (BEAST_EXPECT(k.
keys); k.
keys.has_value())
135 BEAST_EXPECT(k.
keys->publicKey == tokenPublicKey);
138 BEAST_EXPECT(k.
nodeID == tokenNodeID);
148 BEAST_EXPECT(!k.
keys);
160 BEAST_EXPECT(!k.
keys);
171 BEAST_EXPECT(!k.
keys);
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.
virtual beast::Journal getJournal(std::string const &name)=0
Validator keys and manifest as set in configuration file.
bool configInvalid() const
std::optional< Keys > keys
std::string const tokenSecretStr_
std::vector< std::string > const invalidTokenBlob_
void run() override
Runs the suite.
std::vector< std::string > const tokenBlob_
std::string const tokenManifest_
A transaction testing environment.
bool equal(STAmount const &sa1, STAmount const &sa2)
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
BEAST_DEFINE_TESTSUITE(AMMClawback, app, xrpl)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::string base64Decode(std::string_view data)
PublicKey derivePublicKey(KeyType type, SecretKey const &sk)
Derive the public key from a secret key.
std::optional< AccountID > parseBase58(std::string const &s)
Parse AccountID from checked, base58 string.
SecretKey generateSecretKey(KeyType type, Seed const &seed)
Generate a new secret key deterministically.
std::optional< Manifest > deserializeManifest(Slice s, beast::Journal journal)
Constructs Manifest from serialized string.
NodeID calcNodeID(PublicKey const &)
Calculate the 160-bit node ID from a node public key.
BaseUInt< 160, detail::NodeIDTag > NodeID
NodeID is a 160-bit hash representing one node.
static constexpr auto kValidationSeed
static constexpr auto kValidatorToken