22#include <xrpl/basics/strHex.h>
34 using namespace test::jtx;
35 Account alice{
"alice"};
38 env.fund(XRP(10000), alice);
43 auto makeJtxWithMemo = [&env, &alice]() {
44 JTx example =
noop(alice);
45 memo
const exampleMemo{
"tic",
"tac",
"toe"};
46 exampleMemo(env, example);
51 env(makeJtxWithMemo());
56 JTx memoSize = makeJtxWithMemo();
57 memoSize.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
60 rpc(
"invalidTransaction",
61 "fails local checks: The memo exceeds the maximum allowed "
65 memoSize.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
71 JTx memoNonMemo =
noop(alice);
72 auto& jv = memoNonMemo.jv;
73 auto& ma = jv[sfMemos.jsonName];
74 auto& mi = ma[ma.size()];
75 auto& m = mi[sfCreatedNode.jsonName];
76 m[sfMemoData.jsonName] =
"3030303030";
79 rpc(
"invalidTransaction",
80 "fails local checks: A memo array may contain only Memo "
85 JTx memoExtra = makeJtxWithMemo();
87 .jv[sfMemos.jsonName][0u][sfMemo.jsonName][sfFlags.jsonName] =
90 rpc(
"invalidTransaction",
91 "fails local checks: A memo may contain only MemoType, "
92 "MemoData or MemoFormat fields."));
96 JTx memoBadChar = makeJtxWithMemo();
97 memoBadChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
98 [sfMemoType.jsonName] =
101 rpc(
"invalidTransaction",
102 "fails local checks: The MemoType and MemoFormat fields "
103 "may only contain characters that are allowed in URLs "
109 JTx memoLegitChar = makeJtxWithMemo();
110 memoLegitChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
111 [sfMemoData.jsonName] =
117 JTx memoBadChar = makeJtxWithMemo();
118 memoBadChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
119 [sfMemoFormat.jsonName] =
122 rpc(
"invalidTransaction",
123 "fails local checks: The MemoType and MemoFormat fields "
124 "may only contain characters that are allowed in URLs "
138BEAST_DEFINE_TESTSUITE(Memo, ripple_data,
ripple);
testcase_t testcase
Memberspace for declaring test cases.
void run() override
Runs the suite.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::string strHex(FwdIt begin, FwdIt end)