15 using namespace test::jtx;
16 Account alice{
"alice"};
19 env.fund(XRP(10000), alice);
24 auto makeJtxWithMemo = [&env, &alice]() {
25 JTx example =
noop(alice);
26 memo
const exampleMemo{
"tic",
"tac",
"toe"};
27 exampleMemo(env, example);
32 env(makeJtxWithMemo());
37 JTx memoSize = makeJtxWithMemo();
38 memoSize.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
41 rpc(
"invalidTransaction",
42 "fails local checks: The memo exceeds the maximum allowed "
46 memoSize.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
52 JTx memoNonMemo =
noop(alice);
53 auto& jv = memoNonMemo.jv;
54 auto& ma = jv[sfMemos.jsonName];
55 auto& mi = ma[ma.size()];
56 auto& m = mi[sfCreatedNode.jsonName];
57 m[sfMemoData.jsonName] =
"3030303030";
60 rpc(
"invalidTransaction",
61 "fails local checks: A memo array may contain only Memo "
66 JTx memoExtra = makeJtxWithMemo();
68 .jv[sfMemos.jsonName][0u][sfMemo.jsonName][sfFlags.jsonName] =
71 rpc(
"invalidTransaction",
72 "fails local checks: A memo may contain only MemoType, "
73 "MemoData or MemoFormat fields."));
77 JTx memoBadChar = makeJtxWithMemo();
78 memoBadChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
79 [sfMemoType.jsonName] =
82 rpc(
"invalidTransaction",
83 "fails local checks: The MemoType and MemoFormat fields "
84 "may only contain characters that are allowed in URLs "
90 JTx memoLegitChar = makeJtxWithMemo();
91 memoLegitChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
92 [sfMemoData.jsonName] =
98 JTx memoBadChar = makeJtxWithMemo();
99 memoBadChar.jv[sfMemos.jsonName][0u][sfMemo.jsonName]
100 [sfMemoFormat.jsonName] =
103 rpc(
"invalidTransaction",
104 "fails local checks: The MemoType and MemoFormat fields "
105 "may only contain characters that are allowed in URLs "