56 testcase <<
"trust lines with deep freeze flag without freeze "
59 {{
"a trust line with deep freeze flag without normal freeze was "
64 sleNew->setFieldAmount(sfLowLimit, a1[
"USD"](0));
65 sleNew->setFieldAmount(sfHighLimit, a1[
"USD"](0));
68 uFlags |= lsfLowDeepFreeze;
69 sleNew->setFieldU32(sfFlags, uFlags);
70 ac.view().insert(sleNew);
75 {{
"a trust line with deep freeze flag without normal freeze was "
80 sleNew->setFieldAmount(sfLowLimit, a1[
"USD"](0));
81 sleNew->setFieldAmount(sfHighLimit, a1[
"USD"](0));
83 uFlags |= lsfHighDeepFreeze;
84 sleNew->setFieldU32(sfFlags, uFlags);
85 ac.view().insert(sleNew);
90 {{
"a trust line with deep freeze flag without normal freeze was "
95 sleNew->setFieldAmount(sfLowLimit, a1[
"USD"](0));
96 sleNew->setFieldAmount(sfHighLimit, a1[
"USD"](0));
98 uFlags |= lsfLowDeepFreeze | lsfHighDeepFreeze;
99 sleNew->setFieldU32(sfFlags, uFlags);
100 ac.view().insert(sleNew);
105 {{
"a trust line with deep freeze flag without normal freeze was "
110 sleNew->setFieldAmount(sfLowLimit, a1[
"USD"](0));
111 sleNew->setFieldAmount(sfHighLimit, a1[
"USD"](0));
113 uFlags |= lsfLowDeepFreeze | lsfHighFreeze;
114 sleNew->setFieldU32(sfFlags, uFlags);
115 ac.view().insert(sleNew);
120 {{
"a trust line with deep freeze flag without normal freeze was "
125 sleNew->setFieldAmount(sfLowLimit, a1[
"USD"](0));
126 sleNew->setFieldAmount(sfHighLimit, a1[
"USD"](0));
128 uFlags |= lsfLowFreeze | lsfHighDeepFreeze;
129 sleNew->setFieldU32(sfFlags, uFlags);
130 ac.view().insert(sleNew);
139 testcase <<
"transfers when frozen";
143 auto const createTrustlines = [&](
Account const& a1,
Account const& a2,
Env& env) {
145 env.fund(
XRP(1000), g1);
147 env.trust(g1[
"USD"](10000), a1);
148 env.trust(g1[
"USD"](10000), a2);
151 env(
pay(g1, a1, g1[
"USD"](1000)));
152 env(
pay(g1, a2, g1[
"USD"](1000)));
158 auto const a1FrozenByIssuer = [&](
Account const& a1,
Account const& a2,
Env& env) {
159 createTrustlines(a1, a2, env);
160 env(
trust(g1, a1[
"USD"](10000), tfSetFreeze));
166 auto const a1DeepFrozenByIssuer = [&](
Account const& a1,
Account const& a2,
Env& env) {
167 a1FrozenByIssuer(a1, a2, env);
168 env(
trust(g1, a1[
"USD"](10000), tfSetDeepFreeze));
174 auto const changeBalances = [&](
Account const& a1,
182 sleA1->setFieldAmount(sfBalance, g1[
"USD"](a1Balance));
183 sleA2->setFieldAmount(sfBalance, g1[
"USD"](a2Balance));
185 ac.view().update(sleA1);
186 ac.view().update(sleA2);
191 {{
"Attempting to move frozen funds"}},
193 changeBalances(a1, a2, ac, -900, -1100);
203 {{
"Attempting to move frozen funds"}},
205 changeBalances(a1, a2, ac, -900, -1100);
211 a1DeepFrozenByIssuer);
215 {{
"Attempting to move frozen funds"}},
217 changeBalances(a1, a2, ac, -1100, -900);
223 a1DeepFrozenByIssuer);