xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
test
jtx
impl
sponsor.cpp
1
#include <test/jtx/sponsor.h>
2
3
#include <test/jtx/Account.h>
4
#include <test/jtx/Env.h>
5
#include <test/jtx/JTx.h>
6
7
#include <xrpl/basics/base_uint.h>
8
#include <xrpl/json/json_value.h>
9
#include <xrpl/json/to_string.h>
10
#include <xrpl/protocol/Indexes.h>
11
#include <xrpl/protocol/SField.h>
12
#include <xrpl/protocol/STAmount.h>
13
#include <xrpl/protocol/TxFlags.h>
14
#include <xrpl/protocol/jss.h>
15
16
#include <
cstdint
>
17
#include <
optional
>
18
19
namespace
xrpl::test::jtx::sponsor
{
20
21
json::Value
22
set
(
jtx::Account
const
& account,
23
uint32_t flags,
24
std::optional<int32_t>
const
reserveCountDelta,
25
std::optional<STAmount>
const
feeAmountDelta,
26
std::optional<STAmount>
const
maxFee)
27
{
28
json::Value
jv;
29
jv[jss::TransactionType] = jss::SponsorshipSet;
30
jv[jss::Account] = account.human();
31
jv[sfFlags.jsonName] = flags;
32
if
(reserveCountDelta)
33
jv[sfRemainingOwnerCountDelta.jsonName] = *reserveCountDelta;
34
if
(feeAmountDelta)
35
jv[sfFeeAmountDelta.jsonName] = feeAmountDelta->getJson(
JsonOptions::Values::None
);
36
if
(maxFee)
37
jv[sfMaxFee.jsonName] = maxFee->getJson(
JsonOptions::Values::None
);
38
return
jv;
39
}
40
41
json::Value
42
del
(
jtx::Account
const
& account)
43
{
44
json::Value
jv;
45
jv[jss::TransactionType] = jss::SponsorshipSet;
46
jv[jss::Account] = account.human();
47
jv[sfFlags.jsonName] = tfDeleteObject;
48
return
jv;
49
}
50
51
json::Value
52
transfer
(
jtx::Account
const
& account, uint32_t flags,
std::optional<UInt256>
const
& index)
53
{
54
json::Value
jv;
55
jv[jss::TransactionType] = jss::SponsorshipTransfer;
56
jv[jss::Account] = account.human();
57
jv[sfFlags.jsonName] = flags;
58
if
(index)
59
jv[sfObjectID.jsonName] =
to_string
(*index);
60
return
jv;
61
}
62
63
void
64
CounterpartySponsor::operator()
(
Env
& env,
JTx
& jt)
const
65
{
66
jt.
jv
[sfCounterpartySponsor.jsonName] =
sponsor_
.human();
67
}
68
69
void
70
SponseeAcc::operator()
(
Env
& env,
JTx
& jt)
const
71
{
72
jt.
jv
[sfSponsee.jsonName] =
sponsee_
.human();
73
}
74
75
void
76
As::operator()
(
Env
& env,
JTx
& jt)
const
77
{
78
jt.
jv
[sfSponsor.jsonName] =
sponsor_
.human();
79
jt.
jv
[sfSponsorFlags.jsonName] =
flags_
;
80
}
81
82
json::Value
83
ledgerEntry
(
jtx::Env
& env,
jtx::Account
const
&
sponsor
,
jtx::Account
const
& sponsee)
84
{
85
json::Value
jvParams;
86
jvParams[jss::ledger_index] = jss::validated;
87
jvParams[jss::sponsorship][jss::sponsor] =
sponsor
.human();
88
jvParams[jss::sponsorship][jss::sponsee] = sponsee.
human
();
89
return
env.
rpc
(
"json"
,
"ledger_entry"
,
to_string
(jvParams));
90
}
91
92
STAmount
93
sponsorshipFeeBalance
(
jtx::Env
& env,
jtx::Account
const
&
sponsor
,
jtx::Account
const
& sponsee)
94
{
95
return
env.
le
(
keylet::sponsorship
(
sponsor
, sponsee))->getFieldAmount(sfFeeAmount).xrp();
96
}
97
98
}
// namespace xrpl::test::jtx::sponsor
json::Value
Represents a JSON value.
Definition
json_value.h:117
xrpl::STAmount
Definition
STAmount.h:46
xrpl::test::jtx::Account
Immutable cryptographic account descriptor.
Definition
jtx/Account.h:21
xrpl::test::jtx::Account::human
std::string const & human() const
Returns the human readable public key.
Definition
jtx/Account.h:113
xrpl::test::jtx::Env
A transaction testing environment.
Definition
Env.h:161
xrpl::test::jtx::Env::le
SLE::const_pointer le(Account const &account) const
Return an account root.
Definition
Env.cpp:311
xrpl::test::jtx::Env::rpc
json::Value rpc(unsigned apiVersion, std::unordered_map< std::string, std::string > const &headers, std::string const &cmd, Args &&... args)
Execute an RPC command.
Definition
Env.h:1058
cstdint
xrpl::keylet::sponsorship
Keylet sponsorship(AccountID const &sponsor, AccountID const &sponsee) noexcept
A Sponsorship.
Definition
Indexes.cpp:354
xrpl::test::jtx::sponsor
Definition
sponsor.cpp:19
xrpl::test::jtx::sponsor::transfer
json::Value transfer(jtx::Account const &account, uint32_t flags, std::optional< UInt256 > const &index)
Definition
sponsor.cpp:52
xrpl::test::jtx::sponsor::sponsorshipFeeBalance
STAmount sponsorshipFeeBalance(jtx::Env &env, jtx::Account const &sponsor, jtx::Account const &sponsee)
Definition
sponsor.cpp:93
xrpl::test::jtx::sponsor::ledgerEntry
json::Value ledgerEntry(jtx::Env &env, jtx::Account const &sponsor, jtx::Account const &sponsee)
Definition
sponsor.cpp:83
xrpl::test::jtx::sponsor::del
json::Value del(jtx::Account const &account)
Definition
sponsor.cpp:42
xrpl::test::jtx::sponsor::set
json::Value set(jtx::Account const &account, uint32_t flags, std::optional< int32_t > const reserveCountDelta, std::optional< STAmount > const feeAmountDelta, std::optional< STAmount > const maxFee)
Definition
sponsor.cpp:22
xrpl::to_string
std::string to_string(BaseUInt< Bits, Tag > const &a)
Definition
base_uint.h:657
optional
xrpl::JsonOptions::Values::None
@ None
Definition
STBase.h:27
xrpl::test::jtx::JTx
Execution context for applying a JSON transaction.
Definition
JTx.h:27
xrpl::test::jtx::JTx::jv
json::Value jv
Definition
JTx.h:28
xrpl::test::jtx::sponsor::As::flags_
std::uint32_t flags_
Definition
sponsor.h:88
xrpl::test::jtx::sponsor::As::sponsor_
jtx::Account sponsor_
Definition
sponsor.h:87
xrpl::test::jtx::sponsor::As::operator()
void operator()(jtx::Env &, jtx::JTx &jtx) const
Definition
sponsor.cpp:76
xrpl::test::jtx::sponsor::CounterpartySponsor::operator()
void operator()(jtx::Env &, jtx::JTx &jtx) const
Definition
sponsor.cpp:64
xrpl::test::jtx::sponsor::CounterpartySponsor::sponsor_
jtx::Account sponsor_
Definition
sponsor.h:59
xrpl::test::jtx::sponsor::SponseeAcc::operator()
void operator()(jtx::Env &, jtx::JTx &jtx) const
Definition
sponsor.cpp:70
xrpl::test::jtx::sponsor::SponseeAcc::sponsee_
jtx::Account sponsee_
Definition
sponsor.h:73
Generated by
1.17.0