rippled
Loading...
Searching...
No Matches
vault.cpp
1#include <test/jtx/Env.h>
2#include <test/jtx/vault.h>
3
4#include <xrpl/json/json_value.h>
5#include <xrpl/protocol/STAmount.h>
6#include <xrpl/protocol/jss.h>
7
8#include <optional>
9
10namespace ripple {
11namespace test {
12namespace jtx {
13
16{
17 auto keylet = keylet::vault(args.owner.id(), env.seq(args.owner));
18 Json::Value jv;
19 jv[jss::TransactionType] = jss::VaultCreate;
20 jv[jss::Account] = args.owner.human();
21 jv[jss::Asset] = to_json(args.asset);
22 if (args.flags)
23 jv[jss::Flags] = *args.flags;
24 return {jv, keylet};
25}
26
28Vault::set(SetArgs const& args)
29{
30 Json::Value jv;
31 jv[jss::TransactionType] = jss::VaultSet;
32 jv[jss::Account] = args.owner.human();
33 jv[sfVaultID] = to_string(args.id);
34 return jv;
35}
36
39{
40 Json::Value jv;
41 jv[jss::TransactionType] = jss::VaultDelete;
42 jv[jss::Account] = args.owner.human();
43 jv[sfVaultID] = to_string(args.id);
44 return jv;
45}
46
49{
50 Json::Value jv;
51 jv[jss::TransactionType] = jss::VaultDeposit;
52 jv[jss::Account] = args.depositor.human();
53 jv[sfVaultID] = to_string(args.id);
54 jv[jss::Amount] = to_json(args.amount);
55 return jv;
56}
57
60{
61 Json::Value jv;
62 jv[jss::TransactionType] = jss::VaultWithdraw;
63 jv[jss::Account] = args.depositor.human();
64 jv[sfVaultID] = to_string(args.id);
65 jv[jss::Amount] = to_json(args.amount);
66 return jv;
67}
68
71{
72 Json::Value jv;
73 jv[jss::TransactionType] = jss::VaultClawback;
74 jv[jss::Account] = args.issuer.human();
75 jv[sfVaultID] = to_string(args.id);
76 jv[jss::Holder] = args.holder.human();
77 if (args.amount)
78 jv[jss::Amount] = to_json(*args.amount);
79 return jv;
80}
81
82} // namespace jtx
83} // namespace test
84} // namespace ripple
Represents a JSON value.
Definition json_value.h:131
AccountID id() const
Returns the Account ID.
Definition Account.h:92
std::string const & human() const
Returns the human readable public key.
Definition Account.h:99
std::uint32_t seq(Account const &account) const
Returns the next sequence number on account.
Definition Env.cpp:250
Keylet vault(AccountID const &owner, std::uint32_t seq) noexcept
Definition Indexes.cpp:545
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value to_json(Asset const &asset)
Definition Asset.h:104
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::optional< STAmount > amount
Definition vault.h:79
std::optional< std::uint32_t > flags
Definition vault.h:29
Json::Value set(SetArgs const &args)
Definition vault.cpp:28
std::tuple< Json::Value, Keylet > create(CreateArgs const &args)
Return a VaultCreate transaction and the Vault's expected keylet.
Definition vault.cpp:15
Json::Value withdraw(WithdrawArgs const &args)
Definition vault.cpp:59
Json::Value del(DeleteArgs const &args)
Definition vault.cpp:38
Json::Value clawback(ClawbackArgs const &args)
Definition vault.cpp:70
Json::Value deposit(DepositArgs const &args)
Definition vault.cpp:48