rippled
Loading...
Searching...
No Matches
flags.h
1#ifndef XRPL_TEST_JTX_FLAGS_H_INCLUDED
2#define XRPL_TEST_JTX_FLAGS_H_INCLUDED
3
4#include <test/jtx/Env.h>
5
6#include <xrpl/basics/contract.h>
7#include <xrpl/protocol/LedgerFormats.h>
8#include <xrpl/protocol/TxFlags.h>
9
10namespace ripple {
11namespace detail {
12
14{
15protected:
17
18private:
19 void
21 {
22 switch (flag)
23 {
24 case asfRequireDest:
26 break;
27 case asfRequireAuth:
29 break;
30 case asfDisallowXRP:
32 break;
35 break;
36 // case asfAccountTxnID: // ???
37 case asfNoFreeze:
39 break;
40 case asfGlobalFreeze:
42 break;
45 break;
46 case asfDepositAuth:
48 break;
51 break;
54 break;
57 break;
60 break;
63 break;
66 break;
67 default:
68 Throw<std::runtime_error>("unknown flag");
69 }
70 }
71
72 template <class Flag, class... Args>
73 void
74 set_args(std::uint32_t flag, Args... args)
75 {
76 set_args(flag);
77 if constexpr (sizeof...(args))
78 set_args(args...);
79 }
80
81protected:
82 template <class... Args>
83 flags_helper(Args... args) : mask_(0)
84 {
85 set_args(args...);
86 }
87};
88
89} // namespace detail
90
91namespace test {
92namespace jtx {
93
94// JSON generators
95
98fset(Account const& account, std::uint32_t on, std::uint32_t off = 0);
99
101inline Json::Value
102fclear(Account const& account, std::uint32_t off)
103{
104 return fset(account, 0, off);
105}
106
109{
110private:
112
113public:
114 template <class... Args>
115 flags(Account const& account, Args... args)
116 : flags_helper(args...), account_(account)
117 {
118 }
119
120 void
121 operator()(Env& env) const;
122};
123
126{
127private:
129
130public:
131 template <class... Args>
132 nflags(Account const& account, Args... args)
133 : flags_helper(args...), account_(account)
134 {
135 }
136
137 void
138 operator()(Env& env) const;
139};
140
141} // namespace jtx
142} // namespace test
143} // namespace ripple
144
145#endif
Represents a JSON value.
Definition json_value.h:130
void set_args(std::uint32_t flag, Args... args)
Definition flags.h:74
std::uint32_t mask_
Definition flags.h:16
flags_helper(Args... args)
Definition flags.h:83
void set_args(std::uint32_t flag)
Definition flags.h:20
Immutable cryptographic account descriptor.
Definition Account.h:20
A transaction testing environment.
Definition Env.h:102
Match set account flags.
Definition flags.h:109
flags(Account const &account, Args... args)
Definition flags.h:115
void operator()(Env &env) const
Definition flags.cpp:23
Match clear account flags.
Definition flags.h:126
nflags(Account const &account, Args... args)
Definition flags.h:132
void operator()(Env &env) const
Definition flags.cpp:35
Json::Value fclear(Account const &account, std::uint32_t off)
Remove account flag.
Definition flags.h:102
Json::Value fset(Account const &account, std::uint32_t on, std::uint32_t off=0)
Add and/or remove flag.
Definition flags.cpp:10
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr std::uint32_t asfGlobalFreeze
Definition TxFlags.h:64
constexpr std::uint32_t asfDepositAuth
Definition TxFlags.h:66
constexpr std::uint32_t asfDisallowIncomingNFTokenOffer
Definition TxFlags.h:71
constexpr std::uint32_t asfAllowTrustLineLocking
Definition TxFlags.h:76
constexpr std::uint32_t asfRequireDest
Definition TxFlags.h:58
@ lsfRequireDestTag
@ lsfDefaultRipple
@ lsfDisallowIncomingCheck
@ lsfAllowTrustLineClawback
@ lsfDisableMaster
@ lsfDisallowIncomingPayChan
@ lsfDisallowIncomingTrustline
@ lsfAllowTrustLineLocking
@ lsfDisallowIncomingNFTokenOffer
@ lsfGlobalFreeze
constexpr std::uint32_t asfNoFreeze
Definition TxFlags.h:63
constexpr std::uint32_t asfDisableMaster
Definition TxFlags.h:61
constexpr std::uint32_t asfDisallowIncomingTrustline
Definition TxFlags.h:74
constexpr std::uint32_t asfDefaultRipple
Definition TxFlags.h:65
constexpr std::uint32_t asfDisallowIncomingCheck
Definition TxFlags.h:72
constexpr std::uint32_t asfDisallowIncomingPayChan
Definition TxFlags.h:73
constexpr std::uint32_t asfAllowTrustLineClawback
Definition TxFlags.h:75
constexpr std::uint32_t asfRequireAuth
Definition TxFlags.h:59
constexpr std::uint32_t asfDisallowXRP
Definition TxFlags.h:60