mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-03 08:46:46 +00:00
refactor: Enable clang-tidy readability-identifier-naming check (#6571)
This commit is contained in:
@@ -42,12 +42,12 @@
|
||||
|
||||
namespace xrpl::test {
|
||||
|
||||
class Simulate_test : public beast::unit_test::suite
|
||||
class Simulate_test : public beast::unit_test::Suite
|
||||
{
|
||||
void
|
||||
checkBasicReturnValidity(
|
||||
Json::Value const& result,
|
||||
Json::Value const& tx,
|
||||
json::Value const& result,
|
||||
json::Value const& tx,
|
||||
int const expectedSequence,
|
||||
std::string const& expectedFee)
|
||||
{
|
||||
@@ -57,29 +57,29 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECT(result.isMember(jss::engine_result_message));
|
||||
BEAST_EXPECT(result.isMember(jss::tx_json) || result.isMember(jss::tx_blob));
|
||||
|
||||
Json::Value tx_json;
|
||||
json::Value txJson;
|
||||
if (result.isMember(jss::tx_json))
|
||||
{
|
||||
tx_json = result[jss::tx_json];
|
||||
txJson = result[jss::tx_json];
|
||||
}
|
||||
else
|
||||
{
|
||||
auto const unHexed = strUnHex(result[jss::tx_blob].asString());
|
||||
SerialIter sitTrans(makeSlice(*unHexed)); // NOLINT(bugprone-unchecked-optional-access)
|
||||
tx_json = STObject(std::ref(sitTrans), sfGeneric).getJson(JsonOptions::none);
|
||||
txJson = STObject(std::ref(sitTrans), kSF_GENERIC).getJson(JsonOptions::KNone);
|
||||
}
|
||||
BEAST_EXPECT(tx_json[jss::TransactionType] == tx[jss::TransactionType]);
|
||||
BEAST_EXPECT(tx_json[jss::Account] == tx[jss::Account]);
|
||||
BEAST_EXPECT(tx_json[jss::SigningPubKey] == tx.get(jss::SigningPubKey, ""));
|
||||
BEAST_EXPECT(tx_json[jss::TxnSignature] == tx.get(jss::TxnSignature, ""));
|
||||
BEAST_EXPECT(tx_json[jss::Fee] == tx.get(jss::Fee, expectedFee));
|
||||
BEAST_EXPECT(tx_json[jss::Sequence] == tx.get(jss::Sequence, expectedSequence));
|
||||
BEAST_EXPECT(txJson[jss::TransactionType] == tx[jss::TransactionType]);
|
||||
BEAST_EXPECT(txJson[jss::Account] == tx[jss::Account]);
|
||||
BEAST_EXPECT(txJson[jss::SigningPubKey] == tx.get(jss::SigningPubKey, ""));
|
||||
BEAST_EXPECT(txJson[jss::TxnSignature] == tx.get(jss::TxnSignature, ""));
|
||||
BEAST_EXPECT(txJson[jss::Fee] == tx.get(jss::Fee, expectedFee));
|
||||
BEAST_EXPECT(txJson[jss::Sequence] == tx.get(jss::Sequence, expectedSequence));
|
||||
}
|
||||
|
||||
void
|
||||
checkBasicReturnValidity(
|
||||
Json::Value const& result,
|
||||
Json::Value const& tx,
|
||||
json::Value const& result,
|
||||
json::Value const& tx,
|
||||
int const expectedSequence,
|
||||
XRPAmount const& expectedFee)
|
||||
{
|
||||
@@ -90,13 +90,13 @@ class Simulate_test : public beast::unit_test::suite
|
||||
void
|
||||
testTx(
|
||||
jtx::Env& env,
|
||||
Json::Value const& tx,
|
||||
std::function<void(Json::Value const&, Json::Value const&)> const& validate,
|
||||
json::Value const& tx,
|
||||
std::function<void(json::Value const&, json::Value const&)> const& validate,
|
||||
bool testSerialized = true)
|
||||
{
|
||||
env.close();
|
||||
|
||||
Json::Value params;
|
||||
json::Value params;
|
||||
params[jss::tx_json] = tx;
|
||||
validate(env.rpc("json", "simulate", to_string(params)), tx);
|
||||
|
||||
@@ -112,17 +112,17 @@ class Simulate_test : public beast::unit_test::suite
|
||||
// will crash
|
||||
STParsedJSONObject const parsed(std::string(jss::tx_json), tx);
|
||||
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
|
||||
auto const tx_blob = strHex(parsed.object->getSerializer().peekData());
|
||||
auto const txBlob = strHex(parsed.object->getSerializer().peekData());
|
||||
if (BEAST_EXPECT(parsed.object.has_value()))
|
||||
{
|
||||
Json::Value params;
|
||||
params[jss::tx_blob] = tx_blob;
|
||||
json::Value params;
|
||||
params[jss::tx_blob] = txBlob;
|
||||
validate(env.rpc("json", "simulate", to_string(params)), tx);
|
||||
params[jss::binary] = true;
|
||||
validate(env.rpc("json", "simulate", to_string(params)), tx);
|
||||
}
|
||||
validate(env.rpc("simulate", tx_blob), tx);
|
||||
validate(env.rpc("simulate", tx_blob, "binary"), tx);
|
||||
validate(env.rpc("simulate", txBlob), tx);
|
||||
validate(env.rpc("simulate", txBlob, "binary"), tx);
|
||||
}
|
||||
|
||||
BEAST_EXPECTS(env.current()->txCount() == 0, std::to_string(env.current()->txCount()));
|
||||
@@ -131,18 +131,18 @@ class Simulate_test : public beast::unit_test::suite
|
||||
void
|
||||
testTxJsonMetadataField(
|
||||
jtx::Env& env,
|
||||
Json::Value const& tx,
|
||||
json::Value const& tx,
|
||||
std::function<void(
|
||||
Json::Value const&,
|
||||
Json::Value const&,
|
||||
Json::Value const&,
|
||||
Json::Value const&)> const& validate,
|
||||
Json::Value const& expectedMetadataKey,
|
||||
Json::Value const& expectedMetadataValue)
|
||||
json::Value const&,
|
||||
json::Value const&,
|
||||
json::Value const&,
|
||||
json::Value const&)> const& validate,
|
||||
json::Value const& expectedMetadataKey,
|
||||
json::Value const& expectedMetadataValue)
|
||||
{
|
||||
env.close();
|
||||
|
||||
Json::Value params;
|
||||
json::Value params;
|
||||
params[jss::tx_json] = tx;
|
||||
validate(
|
||||
env.rpc("json", "simulate", to_string(params)),
|
||||
@@ -155,14 +155,14 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECTS(env.current()->txCount() == 0, std::to_string(env.current()->txCount()));
|
||||
}
|
||||
|
||||
static Json::Value
|
||||
getJsonMetadata(Json::Value txResult)
|
||||
static json::Value
|
||||
getJsonMetadata(json::Value txResult)
|
||||
{
|
||||
if (txResult.isMember(jss::meta_blob))
|
||||
{
|
||||
auto unHexed = strUnHex(txResult[jss::meta_blob].asString());
|
||||
SerialIter sitTrans(makeSlice(*unHexed)); // NOLINT(bugprone-unchecked-optional-access)
|
||||
return STObject(std::ref(sitTrans), sfGeneric).getJson(JsonOptions::none);
|
||||
return STObject(std::ref(sitTrans), kSF_GENERIC).getJson(JsonOptions::KNone);
|
||||
}
|
||||
|
||||
return txResult[jss::meta];
|
||||
@@ -179,7 +179,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
{
|
||||
// No params
|
||||
Json::Value const params = Json::objectValue;
|
||||
json::Value const params = json::ObjectValue;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
resp[jss::result][jss::error_message] ==
|
||||
@@ -187,8 +187,8 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Providing both `tx_json` and `tx_blob`
|
||||
Json::Value params = Json::objectValue;
|
||||
params[jss::tx_json] = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_json] = json::ObjectValue;
|
||||
params[jss::tx_blob] = "1200";
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -198,7 +198,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// `binary` isn't a boolean
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_blob] = "1200";
|
||||
params[jss::binary] = "100";
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -206,7 +206,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Invalid `tx_blob`
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_blob] = "12";
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -214,8 +214,8 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Empty `tx_json`
|
||||
Json::Value params = Json::objectValue;
|
||||
params[jss::tx_json] = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_json] = json::ObjectValue;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
@@ -223,17 +223,17 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// No tx.Account
|
||||
Json::Value params = Json::objectValue;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::Payment;
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params = json::ObjectValue;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::Payment;
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Missing field 'tx.Account'.");
|
||||
}
|
||||
{
|
||||
// Empty `tx_blob`
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_blob] = "";
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -241,7 +241,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Non-string `tx_blob`
|
||||
Json::Value params;
|
||||
json::Value params;
|
||||
params[jss::tx_blob] = 1.1;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -249,7 +249,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Non-object `tx_json`
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::tx_json] = "";
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -258,55 +258,55 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// `seed` field included
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::seed] = "random_data";
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'seed'.");
|
||||
}
|
||||
{
|
||||
// `secret` field included
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::secret] = "random_data";
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'secret'.");
|
||||
}
|
||||
{
|
||||
// `seed_hex` field included
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::seed_hex] = "random_data";
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'seed_hex'.");
|
||||
}
|
||||
{
|
||||
// `passphrase` field included
|
||||
Json::Value params = Json::objectValue;
|
||||
json::Value params = json::ObjectValue;
|
||||
params[jss::passphrase] = "random_data";
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'passphrase'.");
|
||||
}
|
||||
{
|
||||
// Invalid transaction
|
||||
Json::Value params = Json::objectValue;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::Payment;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params = json::ObjectValue;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::Payment;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
@@ -315,11 +315,11 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Bad account
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = "badAccount";
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = "badAccount";
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECTS(
|
||||
@@ -329,48 +329,48 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Account doesn't exist for Sequence autofill
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = alice.human();
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = alice.human();
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Source account not found.");
|
||||
}
|
||||
{
|
||||
// Invalid Signers field
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
tx_json[sfSigners] = "1";
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
txJson[sfSigners] = "1";
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'tx.Signers'.");
|
||||
}
|
||||
{
|
||||
// Invalid Signers field
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
tx_json[sfSigners] = Json::arrayValue;
|
||||
tx_json[sfSigners].append("1");
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
txJson[sfSigners] = json::ArrayValue;
|
||||
txJson[sfSigners].append("1");
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error_message] == "Invalid field 'tx.Signers[0]'.");
|
||||
}
|
||||
{
|
||||
// Invalid transaction
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
tx_json["foo"] = "bar";
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
txJson["foo"] = "bar";
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
@@ -378,20 +378,20 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// non-`"binary"` second param for CLI
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = alice.human();
|
||||
auto const resp = env.rpc("simulate", to_string(tx_json), "1");
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = alice.human();
|
||||
auto const resp = env.rpc("simulate", to_string(txJson), "1");
|
||||
BEAST_EXPECT(resp[jss::error_message] == "Invalid parameters.");
|
||||
}
|
||||
{
|
||||
// Signed transaction
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
tx_json[jss::TxnSignature] = "1200ABCD";
|
||||
params[jss::tx_json] = tx_json;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
txJson[jss::TxnSignature] = "1200ABCD";
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
@@ -399,21 +399,21 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
{
|
||||
// Signed multisig transaction
|
||||
Json::Value params;
|
||||
Json::Value tx_json = Json::objectValue;
|
||||
tx_json[jss::TransactionType] = jss::AccountSet;
|
||||
tx_json[jss::Account] = env.master.human();
|
||||
tx_json[sfSigners] = Json::arrayValue;
|
||||
json::Value params;
|
||||
json::Value txJson = json::ObjectValue;
|
||||
txJson[jss::TransactionType] = jss::AccountSet;
|
||||
txJson[jss::Account] = env.master.human();
|
||||
txJson[sfSigners] = json::ArrayValue;
|
||||
{
|
||||
Json::Value signer;
|
||||
json::Value signer;
|
||||
signer[jss::Account] = alice.human();
|
||||
signer[jss::SigningPubKey] = alice.human();
|
||||
signer[jss::TxnSignature] = "1200ABCD";
|
||||
Json::Value signerOuter;
|
||||
json::Value signerOuter;
|
||||
signerOuter[sfSigner] = signer;
|
||||
tx_json[sfSigners].append(signerOuter);
|
||||
txJson[sfSigners].append(signerOuter);
|
||||
}
|
||||
params[jss::tx_json] = tx_json;
|
||||
params[jss::tx_json] = txJson;
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(
|
||||
@@ -443,7 +443,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env(noop(alice));
|
||||
|
||||
{
|
||||
Json::Value params;
|
||||
json::Value params;
|
||||
params[jss::tx_json] = noop(alice);
|
||||
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
@@ -451,7 +451,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
if (BEAST_EXPECT(result.isMember(jss::error)))
|
||||
{
|
||||
BEAST_EXPECT(result[jss::error] == "highFee");
|
||||
BEAST_EXPECT(result[jss::error_code] == rpcHIGH_FEE);
|
||||
BEAST_EXPECT(result[jss::error_code] == RpcHighFee);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -474,11 +474,11 @@ class Simulate_test : public beast::unit_test::suite
|
||||
auto const seq = env.seq(alice);
|
||||
auto jt = env.jtnofill(
|
||||
batch::outer(alice, env.seq(alice), batchFee, tfAllOrNothing),
|
||||
batch::inner(pay(alice, bob, XRP(10)), seq + 1),
|
||||
batch::inner(pay(alice, bob, XRP(10)), seq + 1));
|
||||
batch::Inner(pay(alice, bob, XRP(10)), seq + 1),
|
||||
batch::Inner(pay(alice, bob, XRP(10)), seq + 1));
|
||||
|
||||
jt.jv.removeMember(jss::TxnSignature);
|
||||
Json::Value params;
|
||||
json::Value params;
|
||||
params[jss::tx_json] = jt.jv;
|
||||
auto const resp = env.rpc("json", "simulate", to_string(params));
|
||||
BEAST_EXPECT(resp[jss::result][jss::error] == "notImpl");
|
||||
@@ -495,10 +495,10 @@ class Simulate_test : public beast::unit_test::suite
|
||||
cfg->NETWORK_ID = 0;
|
||||
return cfg;
|
||||
})};
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp, Json::Value const& tx) {
|
||||
auto validateOutput = [&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(result, tx, 1, env.current()->fees().base);
|
||||
|
||||
@@ -510,7 +510,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
if (BEAST_EXPECT(metadata.isMember(sfAffectedNodes.jsonName)))
|
||||
{
|
||||
@@ -521,7 +521,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
auto modifiedNode = node[sfModifiedNode];
|
||||
BEAST_EXPECT(modifiedNode[sfLedgerEntryType] == "AccountRoot");
|
||||
auto finalFields = modifiedNode[sfFinalFields];
|
||||
BEAST_EXPECT(finalFields[sfDomain] == newDomain);
|
||||
BEAST_EXPECT(finalFields[sfDomain] == kNEW_DOMAIN);
|
||||
}
|
||||
}
|
||||
BEAST_EXPECT(metadata[sfTransactionIndex.jsonName] == 0);
|
||||
@@ -529,11 +529,11 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
|
||||
// test with autofill
|
||||
testTx(env, tx, validateOutput);
|
||||
@@ -558,8 +558,8 @@ class Simulate_test : public beast::unit_test::suite
|
||||
Account const alice("alice");
|
||||
|
||||
{
|
||||
std::function<void(Json::Value const&, Json::Value const&)> const& testSimulation =
|
||||
[&](Json::Value const& resp, Json::Value const& tx) {
|
||||
std::function<void(json::Value const&, json::Value const&)> const& testSimulation =
|
||||
[&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(result, tx, 1, env.current()->fees().base);
|
||||
|
||||
@@ -570,7 +570,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECT(!result.isMember(jss::meta) && !result.isMember(jss::meta_blob));
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::Payment;
|
||||
@@ -600,8 +600,8 @@ class Simulate_test : public beast::unit_test::suite
|
||||
Account const alice("alice");
|
||||
|
||||
{
|
||||
std::function<void(Json::Value const&, Json::Value const&)> const& testSimulation =
|
||||
[&](Json::Value const& resp, Json::Value const& tx) {
|
||||
std::function<void(json::Value const&, json::Value const&)> const& testSimulation =
|
||||
[&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(result, tx, 1, env.current()->fees().base);
|
||||
|
||||
@@ -615,7 +615,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
if (BEAST_EXPECT(metadata.isMember(sfAffectedNodes.jsonName)))
|
||||
{
|
||||
@@ -639,7 +639,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::Payment;
|
||||
@@ -666,7 +666,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
using namespace jtx;
|
||||
Env env(*this);
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
Account const alice("alice");
|
||||
Account const becky("becky");
|
||||
Account const carol("carol");
|
||||
@@ -678,7 +678,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env.close();
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp, Json::Value const& tx) {
|
||||
auto validateOutput = [&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(
|
||||
result,
|
||||
@@ -695,7 +695,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
if (BEAST_EXPECT(metadata.isMember(sfAffectedNodes.jsonName)))
|
||||
{
|
||||
@@ -706,7 +706,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
auto modifiedNode = node[sfModifiedNode];
|
||||
BEAST_EXPECT(modifiedNode[sfLedgerEntryType] == "AccountRoot");
|
||||
auto finalFields = modifiedNode[sfFinalFields];
|
||||
BEAST_EXPECT(finalFields[sfDomain] == newDomain);
|
||||
BEAST_EXPECT(finalFields[sfDomain] == kNEW_DOMAIN);
|
||||
}
|
||||
}
|
||||
BEAST_EXPECT(metadata[sfTransactionIndex.jsonName] == 0);
|
||||
@@ -714,20 +714,20 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = alice.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
|
||||
// test with autofill
|
||||
testTx(env, tx, validateOutput, false);
|
||||
|
||||
tx[sfSigners] = Json::arrayValue;
|
||||
tx[sfSigners] = json::ArrayValue;
|
||||
{
|
||||
Json::Value signer;
|
||||
json::Value signer;
|
||||
signer[jss::Account] = becky.human();
|
||||
Json::Value signerOuter;
|
||||
json::Value signerOuter;
|
||||
signerOuter[sfSigner] = signer;
|
||||
tx[sfSigners].append(signerOuter);
|
||||
}
|
||||
@@ -755,15 +755,15 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
using namespace jtx;
|
||||
Env env(*this);
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
Account const alice{"alice"};
|
||||
env(regkey(env.master, alice));
|
||||
env(fset(env.master, asfDisableMaster), sig(env.master));
|
||||
env(fset(env.master, asfDisableMaster), Sig(env.master));
|
||||
env.close();
|
||||
|
||||
{
|
||||
std::function<void(Json::Value const&, Json::Value const&)> const& testSimulation =
|
||||
[&](Json::Value const& resp, Json::Value const& tx) {
|
||||
std::function<void(json::Value const&, json::Value const&)> const& testSimulation =
|
||||
[&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(
|
||||
result, tx, env.seq(env.master), env.current()->fees().base);
|
||||
@@ -775,11 +775,11 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECT(!result.isMember(jss::meta) && !result.isMember(jss::meta_blob));
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
// master key is disabled, so this is invalid
|
||||
tx[jss::SigningPubKey] = strHex(env.master.pk().slice());
|
||||
|
||||
@@ -804,7 +804,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
using namespace jtx;
|
||||
Env env(*this);
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
Account const alice("alice");
|
||||
Account const becky("becky");
|
||||
Account const carol("carol");
|
||||
@@ -816,8 +816,8 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env.close();
|
||||
|
||||
{
|
||||
std::function<void(Json::Value const&, Json::Value const&)> const& testSimulation =
|
||||
[&](Json::Value const& resp, Json::Value const& tx) {
|
||||
std::function<void(json::Value const&, json::Value const&)> const& testSimulation =
|
||||
[&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(
|
||||
result, tx, env.seq(env.master), env.current()->fees().base * 2);
|
||||
@@ -830,18 +830,18 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECT(!result.isMember(jss::meta) && !result.isMember(jss::meta_blob));
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
// master key is disabled, so this is invalid
|
||||
tx[jss::SigningPubKey] = strHex(env.master.pk().slice());
|
||||
tx[sfSigners] = Json::arrayValue;
|
||||
tx[sfSigners] = json::ArrayValue;
|
||||
{
|
||||
Json::Value signer;
|
||||
json::Value signer;
|
||||
signer[jss::Account] = becky.human();
|
||||
Json::Value signerOuter;
|
||||
json::Value signerOuter;
|
||||
signerOuter[sfSigner] = signer;
|
||||
tx[sfSigners].append(signerOuter);
|
||||
}
|
||||
@@ -867,7 +867,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
using namespace jtx;
|
||||
Env env(*this);
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
Account const alice("alice");
|
||||
Account const becky("becky");
|
||||
Account const carol("carol");
|
||||
@@ -879,7 +879,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env(signers(alice, 1, {{becky, 1}, {carol, 1}}));
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp, Json::Value const& tx) {
|
||||
auto validateOutput = [&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(
|
||||
result, tx, env.seq(alice), env.current()->fees().base * 2);
|
||||
@@ -895,17 +895,17 @@ class Simulate_test : public beast::unit_test::suite
|
||||
BEAST_EXPECT(!result.isMember(jss::meta) && !result.isMember(jss::meta_blob));
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = alice.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfSigners] = Json::arrayValue;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
tx[sfSigners] = json::ArrayValue;
|
||||
{
|
||||
Json::Value signer;
|
||||
json::Value signer;
|
||||
signer[jss::Account] = becky.human();
|
||||
signer[jss::SigningPubKey] = strHex(dylan.pk().slice());
|
||||
Json::Value signerOuter;
|
||||
json::Value signerOuter;
|
||||
signerOuter[sfSigner] = signer;
|
||||
tx[sfSigners].append(signerOuter);
|
||||
}
|
||||
@@ -950,7 +950,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env.close();
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp, Json::Value const& tx) {
|
||||
auto validateOutput = [&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(result, tx, env.seq(subject), env.current()->fees().base);
|
||||
|
||||
@@ -960,7 +960,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
if (BEAST_EXPECT(metadata.isMember(sfAffectedNodes.jsonName)))
|
||||
{
|
||||
@@ -996,7 +996,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
};
|
||||
|
||||
Json::Value tx = credentials::accept(subject, issuer, credType);
|
||||
json::Value tx = credentials::accept(subject, issuer, credType);
|
||||
|
||||
// test with autofill
|
||||
testTx(env, tx, validateOutput);
|
||||
@@ -1035,10 +1035,10 @@ class Simulate_test : public beast::unit_test::suite
|
||||
cfg->NETWORK_ID = 1025;
|
||||
return cfg;
|
||||
})};
|
||||
static auto const newDomain = "123ABC";
|
||||
static auto const kNEW_DOMAIN = "123ABC";
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp, Json::Value const& tx) {
|
||||
auto validateOutput = [&](json::Value const& resp, json::Value const& tx) {
|
||||
auto result = resp[jss::result];
|
||||
checkBasicReturnValidity(result, tx, 1, env.current()->fees().base);
|
||||
|
||||
@@ -1050,7 +1050,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
if (BEAST_EXPECT(metadata.isMember(sfAffectedNodes.jsonName)))
|
||||
{
|
||||
@@ -1061,7 +1061,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
auto modifiedNode = node[sfModifiedNode];
|
||||
BEAST_EXPECT(modifiedNode[sfLedgerEntryType] == "AccountRoot");
|
||||
auto finalFields = modifiedNode[sfFinalFields];
|
||||
BEAST_EXPECT(finalFields[sfDomain] == newDomain);
|
||||
BEAST_EXPECT(finalFields[sfDomain] == kNEW_DOMAIN);
|
||||
}
|
||||
}
|
||||
BEAST_EXPECT(metadata[sfTransactionIndex.jsonName] == 0);
|
||||
@@ -1069,11 +1069,11 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
};
|
||||
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
|
||||
tx[jss::Account] = env.master.human();
|
||||
tx[jss::TransactionType] = jss::AccountSet;
|
||||
tx[sfDomain] = newDomain;
|
||||
tx[sfDomain] = kNEW_DOMAIN;
|
||||
|
||||
// test with autofill
|
||||
testTx(env, tx, validateOutput);
|
||||
@@ -1111,10 +1111,10 @@ class Simulate_test : public beast::unit_test::suite
|
||||
env.close(NetClock::time_point{446000000s});
|
||||
|
||||
{
|
||||
auto validateOutput = [&](Json::Value const& resp,
|
||||
Json::Value const& tx,
|
||||
Json::Value const& expectedMetadataKey,
|
||||
Json::Value const& expectedMetadataValue) {
|
||||
auto validateOutput = [&](json::Value const& resp,
|
||||
json::Value const& tx,
|
||||
json::Value const& expectedMetadataKey,
|
||||
json::Value const& expectedMetadataValue) {
|
||||
auto result = resp[jss::result];
|
||||
|
||||
BEAST_EXPECT(result[jss::engine_result] == "tesSUCCESS");
|
||||
@@ -1125,7 +1125,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
|
||||
if (BEAST_EXPECT(result.isMember(jss::meta) || result.isMember(jss::meta_blob)))
|
||||
{
|
||||
Json::Value const metadata = getJsonMetadata(result);
|
||||
json::Value const metadata = getJsonMetadata(result);
|
||||
|
||||
BEAST_EXPECT(metadata[sfTransactionIndex.jsonName] == 0);
|
||||
BEAST_EXPECT(metadata[sfTransactionResult.jsonName] == "tesSUCCESS");
|
||||
@@ -1135,7 +1135,7 @@ class Simulate_test : public beast::unit_test::suite
|
||||
};
|
||||
|
||||
{
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
tx[jss::Account] = alice.human();
|
||||
tx[jss::TransactionType] = jss::Payment;
|
||||
tx[sfDestination] = bob.human();
|
||||
@@ -1146,22 +1146,22 @@ class Simulate_test : public beast::unit_test::suite
|
||||
}
|
||||
|
||||
{
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
tx[jss::Account] = alice.human();
|
||||
tx[jss::TransactionType] = jss::NFTokenMint;
|
||||
tx[sfNFTokenTaxon] = 1;
|
||||
|
||||
Json::Value const nftokenId = to_string(token::getNextID(env, alice, 1));
|
||||
json::Value const nftokenId = to_string(token::getNextID(env, alice, 1));
|
||||
// test nft synthetic
|
||||
testTxJsonMetadataField(env, tx, validateOutput, jss::nftoken_id, nftokenId);
|
||||
}
|
||||
|
||||
{
|
||||
Json::Value tx;
|
||||
json::Value tx;
|
||||
tx[jss::Account] = alice.human();
|
||||
tx[jss::TransactionType] = jss::MPTokenIssuanceCreate;
|
||||
|
||||
Json::Value const mptIssuanceId = to_string(makeMptID(env.seq(alice), alice));
|
||||
json::Value const mptIssuanceId = to_string(makeMptID(env.seq(alice), alice));
|
||||
// test mpt issuance id
|
||||
testTxJsonMetadataField(
|
||||
env, tx, validateOutput, jss::mpt_issuance_id, mptIssuanceId);
|
||||
|
||||
Reference in New Issue
Block a user