xrpld
Loading...
Searching...
No Matches
vault.h
1#pragma once
2
3#include <test/jtx/Account.h>
4
5#include <xrpl/basics/base_uint.h>
6#include <xrpl/basics/chrono.h>
7#include <xrpl/json/json_value.h>
8#include <xrpl/protocol/Asset.h>
9#include <xrpl/protocol/Keylet.h>
10#include <xrpl/protocol/Protocol.h>
11
12#include <chrono>
13#include <cstdint>
14#include <optional>
15#include <tuple>
16
17namespace xrpl::test::jtx {
18
19class Env;
20
21struct Vault
22{
24
26 {
30 std::nullopt; // NOLINT(readability-redundant-member-init)
32 std::nullopt; // NOLINT(readability-redundant-member-init)
34 std::nullopt; // NOLINT(readability-redundant-member-init)
36 std::nullopt; // NOLINT(readability-redundant-member-init)
38 std::nullopt; // NOLINT(readability-redundant-member-init)
39 };
40
45 create(CreateArgs const& args) const;
46
56
69 createClosedEnded(CreateClosedEndedArgs const& args) const;
70
76 void
77 closePastSubscription(NetClock::time_point subscriptionDate) const;
78
79 struct SetArgs
80 {
83 };
84
85 static json::Value
86 set(SetArgs const& args);
87
93
94 static json::Value
95 del(DeleteArgs const& args);
96
103
104 static json::Value
105 deposit(DepositArgs const& args);
106
113
114 static json::Value
115 withdraw(WithdrawArgs const& args);
116
118 {
122 std::optional<STAmount> amount = std::nullopt; // NOLINT(readability-redundant-member-init)
123 };
124
125 static json::Value
126 clawback(ClawbackArgs const& args);
127};
128
129} // namespace xrpl::test::jtx
Represents a JSON value.
Definition json_value.h:117
std::chrono::time_point< NetClock > time_point
Definition chrono.h:48
std::chrono::duration< rep, period > duration
Definition chrono.h:47
Immutable cryptographic account descriptor.
Definition jtx/Account.h:21
A transaction testing environment.
Definition Env.h:161
BaseUInt< 256 > UInt256
Definition base_uint.h:580
std::optional< STAmount > amount
Definition vault.h:122
std::optional< std::uint8_t > vaultKind
Definition vault.h:31
std::optional< std::uint32_t > subscriptionDate
Definition vault.h:33
std::optional< std::uint32_t > redemptionDate
Definition vault.h:35
std::optional< VaultVersion > leVersion
Definition vault.h:37
std::optional< std::uint32_t > flags
Definition vault.h:29
std::optional< std::uint32_t > flags
Definition vault.h:51
std::tuple< json::Value, Keylet > create(CreateArgs const &args) const
Return a VaultCreate transaction and the Vault's expected keylet.
Definition vault.cpp:26
static json::Value withdraw(WithdrawArgs const &args)
Definition vault.cpp:100
static json::Value del(DeleteArgs const &args)
Definition vault.cpp:79
static json::Value clawback(ClawbackArgs const &args)
Definition vault.cpp:111
static json::Value set(SetArgs const &args)
Definition vault.cpp:69
std::tuple< json::Value, Keylet, NetClock::time_point > createClosedEnded(CreateClosedEndedArgs const &args) const
Return a VaultCreate transaction for a closed-ended vault, its expected keylet, and the vault's Subsc...
Definition vault.cpp:48
void closePastSubscription(NetClock::time_point subscriptionDate) const
Advance env's clock to just past subscriptionDate, moving a closed-ended vault from the Subscription ...
Definition vault.cpp:63
static json::Value deposit(DepositArgs const &args)
Definition vault.cpp:89