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
27 : env_(env), jt_(std::move(jt)), loc_(loc)
28 {
29 }
30
31 void
33 {
34 env_.sign_and_submit(jt_, params, loc_);
35 }
36
37 private:
39 JTx const jt_;
41 };
42
43public:
44 Env_ss(Env_ss const&) = delete;
45 Env_ss&
46 operator=(Env_ss const&) = delete;
47
48 Env_ss(Env& env) : env_(env)
49 {
50 }
51
52 template <class... FN>
53 SignSubmitRunner
55 {
56 auto jtx = env_.jt(std::move(jv.value), fN...);
57 return SignSubmitRunner(env_, std::move(jtx), jv.loc);
58 }
59
60 template <class... FN>
61 SignSubmitRunner
63 {
64 auto jtx = env_.jt(std::move(jv.value), fN...);
65 return SignSubmitRunner(env_, std::move(jtx), jv.loc);
66 }
67};
68
69} // namespace jtx
70} // namespace test
71} // namespace xrpl
Represents a JSON value.
Definition json_value.h:130
void operator()(Json::Value const &params=Json::nullValue)
Definition Env_ss.h:32
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:40
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:54
SignSubmitRunner operator()(WithSourceLocation< JTx > jv, FN const &... fN)
Definition Env_ss.h:62
Env_ss(Env_ss const &)=delete
A transaction testing environment.
Definition Env.h:122
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:387
JTx jt(JsonValue &&jv, FN const &... fN)
Create a JTx from parameters.
Definition Env.h:549
@ nullValue
'null' value
Definition json_value.h:19
STL namespace.
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:57
std::source_location loc
Definition Env.h:59