rippled
Loading...
Searching...
No Matches
Env_ss.h
1#pragma once
2
3#include <test/jtx/Env.h>
4
5namespace xrpl {
6namespace test {
7namespace jtx {
8
13class Env_ss
14{
15private:
17
18private:
20 {
21 public:
25
26 SignSubmitRunner(Env& env, JTx&& jt, std::source_location loc) : env_(env), jt_(jt), loc_(loc)
27 {
28 }
29
30 void
32 {
33 env_.sign_and_submit(jt_, params, loc_);
34 }
35
36 private:
38 JTx const jt_;
40 };
41
42public:
43 Env_ss(Env_ss const&) = delete;
44 Env_ss&
45 operator=(Env_ss const&) = delete;
46
47 Env_ss(Env& env) : env_(env)
48 {
49 }
50
51 template <class... FN>
52 SignSubmitRunner
54 {
55 auto jtx = env_.jt(std::move(jv.value), fN...);
56 return SignSubmitRunner(env_, std::move(jtx), jv.loc);
57 }
58
59 template <class... FN>
60 SignSubmitRunner
62 {
63 auto jtx = env_.jt(std::move(jv.value), fN...);
64 return SignSubmitRunner(env_, std::move(jtx), jv.loc);
65 }
66};
67
68} // namespace jtx
69} // namespace test
70} // namespace xrpl
Represents a JSON value.
Definition json_value.h:130
void operator()(Json::Value const &params=Json::nullValue)
Definition Env_ss.h:31
SignSubmitRunner(SignSubmitRunner &&)=default
SignSubmitRunner(Env &env, JTx &&jt, std::source_location loc)
Definition Env_ss.h:26
std::source_location const loc_
Definition Env_ss.h:39
SignSubmitRunner & operator=(SignSubmitRunner &&)=delete
A transaction testing environment wrapper.
Definition Env_ss.h:14
Env_ss & operator=(Env_ss const &)=delete
SignSubmitRunner operator()(WithSourceLocation< Json::Value > jv, FN const &... fN)
Definition Env_ss.h:53
SignSubmitRunner operator()(WithSourceLocation< JTx > jv, FN const &... fN)
Definition Env_ss.h:61
Env_ss(Env_ss const &)=delete
A transaction testing environment.
Definition Env.h:119
void sign_and_submit(JTx const &jt, Json::Value params=Json::nullValue, std::source_location const &loc=std::source_location::current())
Use the submit RPC command with a provided JTx object.
Definition Env.cpp:364
JTx jt(JsonValue &&jv, FN const &... fN)
Create a JTx from parameters.
Definition Env.h:494
@ nullValue
'null' value
Definition json_value.h:19
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
Execution context for applying a JSON transaction.
Definition JTx.h:25
Wrapper that captures std::source_location when implicitly constructed.
Definition Env.h:56
std::source_location loc
Definition Env.h:58