xrpld
Loading...
Searching...
No Matches
VaultTests.cpp
1// Auto-generated unit tests for ledger entry Vault
2
3
4#include <gtest/gtest.h>
5
6#include <protocol_autogen/TestHelpers.h>
7
8#include <xrpl/protocol/STLedgerEntry.h>
9#include <xrpl/protocol_autogen/ledger_entries/Vault.h>
10#include <xrpl/protocol_autogen/ledger_entries/Ticket.h>
11
12#include <string>
13
14namespace xrpl::ledger_entries {
15
16// 1 & 4) Set fields via builder setters, build, then read them back via
17// wrapper getters. After build(), validate() should succeed for both the
18// builder's STObject and the wrapper's SLE.
19TEST(VaultTests, BuilderSettersRoundTrip)
20{
21 UInt256 const index{1u};
22
23 auto const previousTxnIDValue = canonical_UINT256();
24 auto const previousTxnLgrSeqValue = canonical_UINT32();
25 auto const sequenceValue = canonical_UINT32();
26 auto const ownerNodeValue = canonical_UINT64();
27 auto const ownerValue = canonical_ACCOUNT();
28 auto const accountValue = canonical_ACCOUNT();
29 auto const dataValue = canonical_VL();
30 auto const assetValue = canonical_ISSUE();
31 auto const assetsTotalValue = canonical_NUMBER();
32 auto const assetsAvailableValue = canonical_NUMBER();
33 auto const assetsMaximumValue = canonical_NUMBER();
34 auto const lossUnrealizedValue = canonical_NUMBER();
35 auto const shareMPTIDValue = canonical_UINT192();
36 auto const withdrawalPolicyValue = canonical_UINT8();
37 auto const scaleValue = canonical_UINT8();
38 auto const lEVersionValue = canonical_UINT8();
39 auto const vaultKindValue = canonical_UINT8();
40 auto const subscriptionDateValue = canonical_UINT32();
41 auto const redemptionDateValue = canonical_UINT32();
42
43 VaultBuilder builder{
44 previousTxnIDValue,
45 previousTxnLgrSeqValue,
46 sequenceValue,
47 ownerNodeValue,
48 ownerValue,
49 accountValue,
50 assetValue,
51 shareMPTIDValue,
52 withdrawalPolicyValue
53 };
54
55 builder.setData(dataValue);
56 builder.setAssetsTotal(assetsTotalValue);
57 builder.setAssetsAvailable(assetsAvailableValue);
58 builder.setAssetsMaximum(assetsMaximumValue);
59 builder.setLossUnrealized(lossUnrealizedValue);
60 builder.setScale(scaleValue);
61 builder.setLEVersion(lEVersionValue);
62 builder.setVaultKind(vaultKindValue);
63 builder.setSubscriptionDate(subscriptionDateValue);
64 builder.setRedemptionDate(redemptionDateValue);
65
66 builder.setLedgerIndex(index);
67 builder.setFlags(0x1u);
68
69 EXPECT_TRUE(builder.validate());
70
71 auto const entry = builder.build(index);
72
73 EXPECT_TRUE(entry.validate());
74
75 {
76 auto const& expected = previousTxnIDValue;
77 auto const actual = entry.getPreviousTxnID();
78 expectEqualField(expected, actual, "sfPreviousTxnID");
79 }
80
81 {
82 auto const& expected = previousTxnLgrSeqValue;
83 auto const actual = entry.getPreviousTxnLgrSeq();
84 expectEqualField(expected, actual, "sfPreviousTxnLgrSeq");
85 }
86
87 {
88 auto const& expected = sequenceValue;
89 auto const actual = entry.getSequence();
90 expectEqualField(expected, actual, "sfSequence");
91 }
92
93 {
94 auto const& expected = ownerNodeValue;
95 auto const actual = entry.getOwnerNode();
96 expectEqualField(expected, actual, "sfOwnerNode");
97 }
98
99 {
100 auto const& expected = ownerValue;
101 auto const actual = entry.getOwner();
102 expectEqualField(expected, actual, "sfOwner");
103 }
104
105 {
106 auto const& expected = accountValue;
107 auto const actual = entry.getAccount();
108 expectEqualField(expected, actual, "sfAccount");
109 }
110
111 {
112 auto const& expected = assetValue;
113 auto const actual = entry.getAsset();
114 expectEqualField(expected, actual, "sfAsset");
115 }
116
117 {
118 auto const& expected = shareMPTIDValue;
119 auto const actual = entry.getShareMPTID();
120 expectEqualField(expected, actual, "sfShareMPTID");
121 }
122
123 {
124 auto const& expected = withdrawalPolicyValue;
125 auto const actual = entry.getWithdrawalPolicy();
126 expectEqualField(expected, actual, "sfWithdrawalPolicy");
127 }
128
129 {
130 auto const& expected = dataValue;
131 auto const actualOpt = entry.getData();
132 ASSERT_TRUE(actualOpt.has_value());
133 expectEqualField(expected, *actualOpt, "sfData");
134 EXPECT_TRUE(entry.hasData());
135 }
136
137 {
138 auto const& expected = assetsTotalValue;
139 auto const actualOpt = entry.getAssetsTotal();
140 ASSERT_TRUE(actualOpt.has_value());
141 expectEqualField(expected, *actualOpt, "sfAssetsTotal");
142 EXPECT_TRUE(entry.hasAssetsTotal());
143 }
144
145 {
146 auto const& expected = assetsAvailableValue;
147 auto const actualOpt = entry.getAssetsAvailable();
148 ASSERT_TRUE(actualOpt.has_value());
149 expectEqualField(expected, *actualOpt, "sfAssetsAvailable");
150 EXPECT_TRUE(entry.hasAssetsAvailable());
151 }
152
153 {
154 auto const& expected = assetsMaximumValue;
155 auto const actualOpt = entry.getAssetsMaximum();
156 ASSERT_TRUE(actualOpt.has_value());
157 expectEqualField(expected, *actualOpt, "sfAssetsMaximum");
158 EXPECT_TRUE(entry.hasAssetsMaximum());
159 }
160
161 {
162 auto const& expected = lossUnrealizedValue;
163 auto const actualOpt = entry.getLossUnrealized();
164 ASSERT_TRUE(actualOpt.has_value());
165 expectEqualField(expected, *actualOpt, "sfLossUnrealized");
166 EXPECT_TRUE(entry.hasLossUnrealized());
167 }
168
169 {
170 auto const& expected = scaleValue;
171 auto const actualOpt = entry.getScale();
172 ASSERT_TRUE(actualOpt.has_value());
173 expectEqualField(expected, *actualOpt, "sfScale");
174 EXPECT_TRUE(entry.hasScale());
175 }
176
177 {
178 auto const& expected = lEVersionValue;
179 auto const actualOpt = entry.getLEVersion();
180 ASSERT_TRUE(actualOpt.has_value());
181 expectEqualField(expected, *actualOpt, "sfLEVersion");
182 EXPECT_TRUE(entry.hasLEVersion());
183 }
184
185 {
186 auto const& expected = vaultKindValue;
187 auto const actualOpt = entry.getVaultKind();
188 ASSERT_TRUE(actualOpt.has_value());
189 expectEqualField(expected, *actualOpt, "sfVaultKind");
190 EXPECT_TRUE(entry.hasVaultKind());
191 }
192
193 {
194 auto const& expected = subscriptionDateValue;
195 auto const actualOpt = entry.getSubscriptionDate();
196 ASSERT_TRUE(actualOpt.has_value());
197 expectEqualField(expected, *actualOpt, "sfSubscriptionDate");
198 EXPECT_TRUE(entry.hasSubscriptionDate());
199 }
200
201 {
202 auto const& expected = redemptionDateValue;
203 auto const actualOpt = entry.getRedemptionDate();
204 ASSERT_TRUE(actualOpt.has_value());
205 expectEqualField(expected, *actualOpt, "sfRedemptionDate");
206 EXPECT_TRUE(entry.hasRedemptionDate());
207 }
208
209 EXPECT_TRUE(entry.hasLedgerIndex());
210 auto const ledgerIndex = entry.getLedgerIndex();
211 ASSERT_TRUE(ledgerIndex.has_value());
212 EXPECT_EQ(*ledgerIndex, index);
213 EXPECT_EQ(entry.getKey(), index);
214}
215
216// 2 & 4) Start from an SLE, set fields directly on it, construct a builder
217// from that SLE, build a new wrapper, and verify all fields (and validate()).
218TEST(VaultTests, BuilderFromSleRoundTrip)
219{
220 UInt256 const index{2u};
221
222 auto const previousTxnIDValue = canonical_UINT256();
223 auto const previousTxnLgrSeqValue = canonical_UINT32();
224 auto const sequenceValue = canonical_UINT32();
225 auto const ownerNodeValue = canonical_UINT64();
226 auto const ownerValue = canonical_ACCOUNT();
227 auto const accountValue = canonical_ACCOUNT();
228 auto const dataValue = canonical_VL();
229 auto const assetValue = canonical_ISSUE();
230 auto const assetsTotalValue = canonical_NUMBER();
231 auto const assetsAvailableValue = canonical_NUMBER();
232 auto const assetsMaximumValue = canonical_NUMBER();
233 auto const lossUnrealizedValue = canonical_NUMBER();
234 auto const shareMPTIDValue = canonical_UINT192();
235 auto const withdrawalPolicyValue = canonical_UINT8();
236 auto const scaleValue = canonical_UINT8();
237 auto const lEVersionValue = canonical_UINT8();
238 auto const vaultKindValue = canonical_UINT8();
239 auto const subscriptionDateValue = canonical_UINT32();
240 auto const redemptionDateValue = canonical_UINT32();
241
242 auto sle = std::make_shared<SLE>(Vault::entryType, index);
243
244 sle->at(sfPreviousTxnID) = previousTxnIDValue;
245 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
246 sle->at(sfSequence) = sequenceValue;
247 sle->at(sfOwnerNode) = ownerNodeValue;
248 sle->at(sfOwner) = ownerValue;
249 sle->at(sfAccount) = accountValue;
250 sle->at(sfData) = dataValue;
251 sle->at(sfAsset) = STIssue(sfAsset, assetValue);
252 sle->at(sfAssetsTotal) = assetsTotalValue;
253 sle->at(sfAssetsAvailable) = assetsAvailableValue;
254 sle->at(sfAssetsMaximum) = assetsMaximumValue;
255 sle->at(sfLossUnrealized) = lossUnrealizedValue;
256 sle->at(sfShareMPTID) = shareMPTIDValue;
257 sle->at(sfWithdrawalPolicy) = withdrawalPolicyValue;
258 sle->at(sfScale) = scaleValue;
259 sle->at(sfLEVersion) = lEVersionValue;
260 sle->at(sfVaultKind) = vaultKindValue;
261 sle->at(sfSubscriptionDate) = subscriptionDateValue;
262 sle->at(sfRedemptionDate) = redemptionDateValue;
263
264 VaultBuilder builderFromSle{sle};
265 EXPECT_TRUE(builderFromSle.validate());
266
267 auto const entryFromBuilder = builderFromSle.build(index);
268
269 Vault entryFromSle{sle};
270 EXPECT_TRUE(entryFromBuilder.validate());
271 EXPECT_TRUE(entryFromSle.validate());
272
273 {
274 auto const& expected = previousTxnIDValue;
275
276 auto const fromSle = entryFromSle.getPreviousTxnID();
277 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
278
279 expectEqualField(expected, fromSle, "sfPreviousTxnID");
280 expectEqualField(expected, fromBuilder, "sfPreviousTxnID");
281 }
282
283 {
284 auto const& expected = previousTxnLgrSeqValue;
285
286 auto const fromSle = entryFromSle.getPreviousTxnLgrSeq();
287 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
288
289 expectEqualField(expected, fromSle, "sfPreviousTxnLgrSeq");
290 expectEqualField(expected, fromBuilder, "sfPreviousTxnLgrSeq");
291 }
292
293 {
294 auto const& expected = sequenceValue;
295
296 auto const fromSle = entryFromSle.getSequence();
297 auto const fromBuilder = entryFromBuilder.getSequence();
298
299 expectEqualField(expected, fromSle, "sfSequence");
300 expectEqualField(expected, fromBuilder, "sfSequence");
301 }
302
303 {
304 auto const& expected = ownerNodeValue;
305
306 auto const fromSle = entryFromSle.getOwnerNode();
307 auto const fromBuilder = entryFromBuilder.getOwnerNode();
308
309 expectEqualField(expected, fromSle, "sfOwnerNode");
310 expectEqualField(expected, fromBuilder, "sfOwnerNode");
311 }
312
313 {
314 auto const& expected = ownerValue;
315
316 auto const fromSle = entryFromSle.getOwner();
317 auto const fromBuilder = entryFromBuilder.getOwner();
318
319 expectEqualField(expected, fromSle, "sfOwner");
320 expectEqualField(expected, fromBuilder, "sfOwner");
321 }
322
323 {
324 auto const& expected = accountValue;
325
326 auto const fromSle = entryFromSle.getAccount();
327 auto const fromBuilder = entryFromBuilder.getAccount();
328
329 expectEqualField(expected, fromSle, "sfAccount");
330 expectEqualField(expected, fromBuilder, "sfAccount");
331 }
332
333 {
334 auto const& expected = assetValue;
335
336 auto const fromSle = entryFromSle.getAsset();
337 auto const fromBuilder = entryFromBuilder.getAsset();
338
339 expectEqualField(expected, fromSle, "sfAsset");
340 expectEqualField(expected, fromBuilder, "sfAsset");
341 }
342
343 {
344 auto const& expected = shareMPTIDValue;
345
346 auto const fromSle = entryFromSle.getShareMPTID();
347 auto const fromBuilder = entryFromBuilder.getShareMPTID();
348
349 expectEqualField(expected, fromSle, "sfShareMPTID");
350 expectEqualField(expected, fromBuilder, "sfShareMPTID");
351 }
352
353 {
354 auto const& expected = withdrawalPolicyValue;
355
356 auto const fromSle = entryFromSle.getWithdrawalPolicy();
357 auto const fromBuilder = entryFromBuilder.getWithdrawalPolicy();
358
359 expectEqualField(expected, fromSle, "sfWithdrawalPolicy");
360 expectEqualField(expected, fromBuilder, "sfWithdrawalPolicy");
361 }
362
363 {
364 auto const& expected = dataValue;
365
366 auto const fromSleOpt = entryFromSle.getData();
367 auto const fromBuilderOpt = entryFromBuilder.getData();
368
369 ASSERT_TRUE(fromSleOpt.has_value());
370 ASSERT_TRUE(fromBuilderOpt.has_value());
371
372 expectEqualField(expected, *fromSleOpt, "sfData");
373 expectEqualField(expected, *fromBuilderOpt, "sfData");
374 }
375
376 {
377 auto const& expected = assetsTotalValue;
378
379 auto const fromSleOpt = entryFromSle.getAssetsTotal();
380 auto const fromBuilderOpt = entryFromBuilder.getAssetsTotal();
381
382 ASSERT_TRUE(fromSleOpt.has_value());
383 ASSERT_TRUE(fromBuilderOpt.has_value());
384
385 expectEqualField(expected, *fromSleOpt, "sfAssetsTotal");
386 expectEqualField(expected, *fromBuilderOpt, "sfAssetsTotal");
387 }
388
389 {
390 auto const& expected = assetsAvailableValue;
391
392 auto const fromSleOpt = entryFromSle.getAssetsAvailable();
393 auto const fromBuilderOpt = entryFromBuilder.getAssetsAvailable();
394
395 ASSERT_TRUE(fromSleOpt.has_value());
396 ASSERT_TRUE(fromBuilderOpt.has_value());
397
398 expectEqualField(expected, *fromSleOpt, "sfAssetsAvailable");
399 expectEqualField(expected, *fromBuilderOpt, "sfAssetsAvailable");
400 }
401
402 {
403 auto const& expected = assetsMaximumValue;
404
405 auto const fromSleOpt = entryFromSle.getAssetsMaximum();
406 auto const fromBuilderOpt = entryFromBuilder.getAssetsMaximum();
407
408 ASSERT_TRUE(fromSleOpt.has_value());
409 ASSERT_TRUE(fromBuilderOpt.has_value());
410
411 expectEqualField(expected, *fromSleOpt, "sfAssetsMaximum");
412 expectEqualField(expected, *fromBuilderOpt, "sfAssetsMaximum");
413 }
414
415 {
416 auto const& expected = lossUnrealizedValue;
417
418 auto const fromSleOpt = entryFromSle.getLossUnrealized();
419 auto const fromBuilderOpt = entryFromBuilder.getLossUnrealized();
420
421 ASSERT_TRUE(fromSleOpt.has_value());
422 ASSERT_TRUE(fromBuilderOpt.has_value());
423
424 expectEqualField(expected, *fromSleOpt, "sfLossUnrealized");
425 expectEqualField(expected, *fromBuilderOpt, "sfLossUnrealized");
426 }
427
428 {
429 auto const& expected = scaleValue;
430
431 auto const fromSleOpt = entryFromSle.getScale();
432 auto const fromBuilderOpt = entryFromBuilder.getScale();
433
434 ASSERT_TRUE(fromSleOpt.has_value());
435 ASSERT_TRUE(fromBuilderOpt.has_value());
436
437 expectEqualField(expected, *fromSleOpt, "sfScale");
438 expectEqualField(expected, *fromBuilderOpt, "sfScale");
439 }
440
441 {
442 auto const& expected = lEVersionValue;
443
444 auto const fromSleOpt = entryFromSle.getLEVersion();
445 auto const fromBuilderOpt = entryFromBuilder.getLEVersion();
446
447 ASSERT_TRUE(fromSleOpt.has_value());
448 ASSERT_TRUE(fromBuilderOpt.has_value());
449
450 expectEqualField(expected, *fromSleOpt, "sfLEVersion");
451 expectEqualField(expected, *fromBuilderOpt, "sfLEVersion");
452 }
453
454 {
455 auto const& expected = vaultKindValue;
456
457 auto const fromSleOpt = entryFromSle.getVaultKind();
458 auto const fromBuilderOpt = entryFromBuilder.getVaultKind();
459
460 ASSERT_TRUE(fromSleOpt.has_value());
461 ASSERT_TRUE(fromBuilderOpt.has_value());
462
463 expectEqualField(expected, *fromSleOpt, "sfVaultKind");
464 expectEqualField(expected, *fromBuilderOpt, "sfVaultKind");
465 }
466
467 {
468 auto const& expected = subscriptionDateValue;
469
470 auto const fromSleOpt = entryFromSle.getSubscriptionDate();
471 auto const fromBuilderOpt = entryFromBuilder.getSubscriptionDate();
472
473 ASSERT_TRUE(fromSleOpt.has_value());
474 ASSERT_TRUE(fromBuilderOpt.has_value());
475
476 expectEqualField(expected, *fromSleOpt, "sfSubscriptionDate");
477 expectEqualField(expected, *fromBuilderOpt, "sfSubscriptionDate");
478 }
479
480 {
481 auto const& expected = redemptionDateValue;
482
483 auto const fromSleOpt = entryFromSle.getRedemptionDate();
484 auto const fromBuilderOpt = entryFromBuilder.getRedemptionDate();
485
486 ASSERT_TRUE(fromSleOpt.has_value());
487 ASSERT_TRUE(fromBuilderOpt.has_value());
488
489 expectEqualField(expected, *fromSleOpt, "sfRedemptionDate");
490 expectEqualField(expected, *fromBuilderOpt, "sfRedemptionDate");
491 }
492
493 EXPECT_EQ(entryFromSle.getKey(), index);
494 EXPECT_EQ(entryFromBuilder.getKey(), index);
495}
496
497// 3) Verify wrapper throws when constructed from wrong ledger entry type.
498TEST(VaultTests, WrapperThrowsOnWrongEntryType)
499{
500 UInt256 const index{3u};
501
502 // Build a valid ledger entry of a different type
503 // Ticket requires: Account, OwnerNode, TicketSequence, PreviousTxnID, PreviousTxnLgrSeq
504 // Check requires: Account, Destination, SendMax, Sequence, OwnerNode, DestinationNode, PreviousTxnID, PreviousTxnLgrSeq
505 TicketBuilder wrongBuilder{
511 auto wrongEntry = wrongBuilder.build(index);
512
513 EXPECT_THROW(Vault{wrongEntry.getSle()}, std::runtime_error);
514}
515
516// 4) Verify builder throws when constructed from wrong ledger entry type.
517TEST(VaultTests, BuilderThrowsOnWrongEntryType)
518{
519 UInt256 const index{4u};
520
521 // Build a valid ledger entry of a different type
522 TicketBuilder wrongBuilder{
528 auto wrongEntry = wrongBuilder.build(index);
529
530 EXPECT_THROW(VaultBuilder{wrongEntry.getSle()}, std::runtime_error);
531}
532
533// 5) Build with only required fields and verify optional fields return nullopt.
534TEST(VaultTests, OptionalFieldsReturnNullopt)
535{
536 UInt256 const index{3u};
537
538 auto const previousTxnIDValue = canonical_UINT256();
539 auto const previousTxnLgrSeqValue = canonical_UINT32();
540 auto const sequenceValue = canonical_UINT32();
541 auto const ownerNodeValue = canonical_UINT64();
542 auto const ownerValue = canonical_ACCOUNT();
543 auto const accountValue = canonical_ACCOUNT();
544 auto const assetValue = canonical_ISSUE();
545 auto const shareMPTIDValue = canonical_UINT192();
546 auto const withdrawalPolicyValue = canonical_UINT8();
547
548 VaultBuilder builder{
549 previousTxnIDValue,
550 previousTxnLgrSeqValue,
551 sequenceValue,
552 ownerNodeValue,
553 ownerValue,
554 accountValue,
555 assetValue,
556 shareMPTIDValue,
557 withdrawalPolicyValue
558 };
559
560 auto const entry = builder.build(index);
561
562 // Verify optional fields are not present
563 EXPECT_FALSE(entry.hasData());
564 EXPECT_FALSE(entry.getData().has_value());
565 EXPECT_FALSE(entry.hasAssetsTotal());
566 EXPECT_FALSE(entry.getAssetsTotal().has_value());
567 EXPECT_FALSE(entry.hasAssetsAvailable());
568 EXPECT_FALSE(entry.getAssetsAvailable().has_value());
569 EXPECT_FALSE(entry.hasAssetsMaximum());
570 EXPECT_FALSE(entry.getAssetsMaximum().has_value());
571 EXPECT_FALSE(entry.hasLossUnrealized());
572 EXPECT_FALSE(entry.getLossUnrealized().has_value());
573 EXPECT_FALSE(entry.hasScale());
574 EXPECT_FALSE(entry.getScale().has_value());
575 EXPECT_FALSE(entry.hasLEVersion());
576 EXPECT_FALSE(entry.getLEVersion().has_value());
577 EXPECT_FALSE(entry.hasVaultKind());
578 EXPECT_FALSE(entry.getVaultKind().has_value());
579 EXPECT_FALSE(entry.hasSubscriptionDate());
580 EXPECT_FALSE(entry.getSubscriptionDate().has_value());
581 EXPECT_FALSE(entry.hasRedemptionDate());
582 EXPECT_FALSE(entry.getRedemptionDate().has_value());
583}
584}
UInt256 const & getKey() const
Get the key (index) of this ledger entry.
bool validate() const
Validate the ledger entry.
Derived & setLedgerIndex(UInt256 const &value)
Set the ledger index.
Derived & setFlags(uint32_t value)
Set the flags.
bool validate() const
Validate the ledger entry.
Builder for Ticket ledger entries.
Definition Ticket.h:112
Ticket build(UInt256 const &index)
Build and return the completed Ticket wrapper.
Definition Ticket.h:211
Builder for Vault ledger entries.
Definition Vault.h:396
VaultBuilder & setVaultKind(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfVaultKind (SoeDefault).
Definition Vault.h:623
VaultBuilder & setAssetsAvailable(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsAvailable (SoeDefault).
Definition Vault.h:546
VaultBuilder & setRedemptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfRedemptionDate (SoeOptional).
Definition Vault.h:645
VaultBuilder & setScale(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfScale (SoeDefault).
Definition Vault.h:601
VaultBuilder & setAssetsTotal(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsTotal (SoeDefault).
Definition Vault.h:535
Vault build(UInt256 const &index)
Build and return the completed Vault wrapper.
Definition Vault.h:657
VaultBuilder & setSubscriptionDate(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfSubscriptionDate (SoeOptional).
Definition Vault.h:634
VaultBuilder & setLossUnrealized(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfLossUnrealized (SoeDefault).
Definition Vault.h:568
VaultBuilder & setData(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfData (SoeOptional).
Definition Vault.h:513
VaultBuilder & setLEVersion(std::decay_t< typename SF_UINT8::type::value_type > const &value)
Set sfLEVersion (SoeDefault).
Definition Vault.h:612
VaultBuilder & setAssetsMaximum(std::decay_t< typename SF_NUMBER::type::value_type > const &value)
Set sfAssetsMaximum (SoeDefault).
Definition Vault.h:557
Ledger Entry: Vault.
Definition Vault.h:28
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsMaximum() const
Get sfAssetsMaximum (SoeDefault).
Definition Vault.h:203
SF_ISSUE::type::value_type getAsset() const
Get sfAsset (SoeRequired).
Definition Vault.h:144
protocol_autogen::Optional< SF_VL::type::value_type > getData() const
Get sfData (SoeOptional).
Definition Vault.h:120
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition Vault.h:65
SF_ACCOUNT::type::value_type getOwner() const
Get sfOwner (SoeRequired).
Definition Vault.h:98
protocol_autogen::Optional< SF_NUMBER::type::value_type > getLossUnrealized() const
Get sfLossUnrealized (SoeDefault).
Definition Vault.h:227
protocol_autogen::Optional< SF_UINT8::type::value_type > getLEVersion() const
Get sfLEVersion (SoeDefault).
Definition Vault.h:297
static constexpr LedgerEntryType entryType
Definition Vault.h:30
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsAvailable() const
Get sfAssetsAvailable (SoeDefault).
Definition Vault.h:179
protocol_autogen::Optional< SF_UINT8::type::value_type > getScale() const
Get sfScale (SoeDefault).
Definition Vault.h:273
SF_UINT192::type::value_type getShareMPTID() const
Get sfShareMPTID (SoeRequired).
Definition Vault.h:251
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition Vault.h:54
SF_UINT8::type::value_type getWithdrawalPolicy() const
Get sfWithdrawalPolicy (SoeRequired).
Definition Vault.h:262
protocol_autogen::Optional< SF_NUMBER::type::value_type > getAssetsTotal() const
Get sfAssetsTotal (SoeDefault).
Definition Vault.h:155
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Definition Vault.h:87
SF_UINT32::type::value_type getSequence() const
Get sfSequence (SoeRequired).
Definition Vault.h:76
protocol_autogen::Optional< SF_UINT32::type::value_type > getRedemptionDate() const
Get sfRedemptionDate (SoeOptional).
Definition Vault.h:369
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
Definition Vault.h:109
protocol_autogen::Optional< SF_UINT32::type::value_type > getSubscriptionDate() const
Get sfSubscriptionDate (SoeOptional).
Definition Vault.h:345
protocol_autogen::Optional< SF_UINT8::type::value_type > getVaultKind() const
Get sfVaultKind (SoeDefault).
Definition Vault.h:321
T make_shared(T... args)
TEST(AccountRootTests, BuilderSettersRoundTrip)
BaseUInt< 256 > UInt256
Definition base_uint.h:580
void expectEqualField(T const &expected, T const &actual, char const *fieldName)