xrpld
Loading...
Searching...
No Matches
sig.h
1#pragma once
2
3#include <test/jtx/Account.h>
4#include <test/jtx/Env.h>
5#include <test/jtx/JTx.h>
6#include <test/jtx/tags.h>
7
8#include <xrpl/protocol/SField.h>
9
10#include <optional>
11
12namespace xrpl::test::jtx {
13
18class Sig
19{
20private:
21 bool manual_ = true;
27 SField const* const subField_ = nullptr;
39 static constexpr SField const* kTopLevel = nullptr;
40
41public:
42 explicit Sig(AutofillT) : manual_(false)
43 {
44 }
45
46 explicit Sig(NoneT)
47 {
48 }
49
50 explicit Sig(SField const* subField, Account const& account)
51 : subField_(subField), account_(account)
52 {
53 }
54
55 explicit Sig(SField const& subField, Account const& account) : Sig(&subField, account)
56 {
57 }
58
59 explicit Sig(Account const& account) : Sig(kTopLevel, account)
60 {
61 }
62
63 void
64 operator()(Env&, JTx& jt) const;
65};
66
67} // namespace xrpl::test::jtx
Identifies fields.
Definition SField.h:132
Immutable cryptographic account descriptor.
Definition jtx/Account.h:21
A transaction testing environment.
Definition Env.h:161
std::optional< Account > account_
Account that will generate the signature.
Definition sig.h:34
Sig(SField const *subField, Account const &account)
Definition sig.h:50
static constexpr SField const * kTopLevel
Used solely as a convenience placeholder for ctors that do not specify a subfield.
Definition sig.h:39
Sig(AutofillT)
Definition sig.h:42
SField const *const subField_
Alternative transaction object field in which to place the signature.
Definition sig.h:27
Sig(Account const &account)
Definition sig.h:59
Sig(SField const &subField, Account const &account)
Definition sig.h:55
void operator()(Env &, JTx &jt) const
Definition sig.cpp:10
Execution context for applying a JSON transaction.
Definition JTx.h:27