xrpld
Loading...
Searching...
No Matches
MPTokenTests.cpp
1// Auto-generated unit tests for ledger entry MPToken
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/MPToken.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(MPTokenTests, BuilderSettersRoundTrip)
20{
21 UInt256 const index{1u};
22
23 auto const accountValue = canonical_ACCOUNT();
24 auto const mPTokenIssuanceIDValue = canonical_UINT192();
25 auto const mPTAmountValue = canonical_UINT64();
26 auto const lockedAmountValue = canonical_UINT64();
27 auto const ownerNodeValue = canonical_UINT64();
28 auto const previousTxnIDValue = canonical_UINT256();
29 auto const previousTxnLgrSeqValue = canonical_UINT32();
30 auto const confidentialBalanceInboxValue = canonical_VL();
31 auto const confidentialBalanceSpendingValue = canonical_VL();
32 auto const confidentialBalanceVersionValue = canonical_UINT32();
33 auto const issuerEncryptedBalanceValue = canonical_VL();
34 auto const auditorEncryptedBalanceValue = canonical_VL();
35 auto const issuerKeyMirrorEpochValue = canonical_UINT32();
36 auto const auditorKeyMirrorEpochValue = canonical_UINT32();
37 auto const holderEncryptionKeyValue = canonical_VL();
38 auto const recoveryKeyValue = canonical_VL();
39
40 MPTokenBuilder builder{
41 accountValue,
42 mPTokenIssuanceIDValue,
43 ownerNodeValue,
44 previousTxnIDValue,
45 previousTxnLgrSeqValue
46 };
47
48 builder.setMPTAmount(mPTAmountValue);
49 builder.setLockedAmount(lockedAmountValue);
50 builder.setConfidentialBalanceInbox(confidentialBalanceInboxValue);
51 builder.setConfidentialBalanceSpending(confidentialBalanceSpendingValue);
52 builder.setConfidentialBalanceVersion(confidentialBalanceVersionValue);
53 builder.setIssuerEncryptedBalance(issuerEncryptedBalanceValue);
54 builder.setAuditorEncryptedBalance(auditorEncryptedBalanceValue);
55 builder.setIssuerKeyMirrorEpoch(issuerKeyMirrorEpochValue);
56 builder.setAuditorKeyMirrorEpoch(auditorKeyMirrorEpochValue);
57 builder.setHolderEncryptionKey(holderEncryptionKeyValue);
58 builder.setRecoveryKey(recoveryKeyValue);
59
60 builder.setLedgerIndex(index);
61 builder.setFlags(0x1u);
62
63 EXPECT_TRUE(builder.validate());
64
65 auto const entry = builder.build(index);
66
67 EXPECT_TRUE(entry.validate());
68
69 {
70 auto const& expected = accountValue;
71 auto const actual = entry.getAccount();
72 expectEqualField(expected, actual, "sfAccount");
73 }
74
75 {
76 auto const& expected = mPTokenIssuanceIDValue;
77 auto const actual = entry.getMPTokenIssuanceID();
78 expectEqualField(expected, actual, "sfMPTokenIssuanceID");
79 }
80
81 {
82 auto const& expected = ownerNodeValue;
83 auto const actual = entry.getOwnerNode();
84 expectEqualField(expected, actual, "sfOwnerNode");
85 }
86
87 {
88 auto const& expected = previousTxnIDValue;
89 auto const actual = entry.getPreviousTxnID();
90 expectEqualField(expected, actual, "sfPreviousTxnID");
91 }
92
93 {
94 auto const& expected = previousTxnLgrSeqValue;
95 auto const actual = entry.getPreviousTxnLgrSeq();
96 expectEqualField(expected, actual, "sfPreviousTxnLgrSeq");
97 }
98
99 {
100 auto const& expected = mPTAmountValue;
101 auto const actualOpt = entry.getMPTAmount();
102 ASSERT_TRUE(actualOpt.has_value());
103 expectEqualField(expected, *actualOpt, "sfMPTAmount");
104 EXPECT_TRUE(entry.hasMPTAmount());
105 }
106
107 {
108 auto const& expected = lockedAmountValue;
109 auto const actualOpt = entry.getLockedAmount();
110 ASSERT_TRUE(actualOpt.has_value());
111 expectEqualField(expected, *actualOpt, "sfLockedAmount");
112 EXPECT_TRUE(entry.hasLockedAmount());
113 }
114
115 {
116 auto const& expected = confidentialBalanceInboxValue;
117 auto const actualOpt = entry.getConfidentialBalanceInbox();
118 ASSERT_TRUE(actualOpt.has_value());
119 expectEqualField(expected, *actualOpt, "sfConfidentialBalanceInbox");
120 EXPECT_TRUE(entry.hasConfidentialBalanceInbox());
121 }
122
123 {
124 auto const& expected = confidentialBalanceSpendingValue;
125 auto const actualOpt = entry.getConfidentialBalanceSpending();
126 ASSERT_TRUE(actualOpt.has_value());
127 expectEqualField(expected, *actualOpt, "sfConfidentialBalanceSpending");
128 EXPECT_TRUE(entry.hasConfidentialBalanceSpending());
129 }
130
131 {
132 auto const& expected = confidentialBalanceVersionValue;
133 auto const actualOpt = entry.getConfidentialBalanceVersion();
134 ASSERT_TRUE(actualOpt.has_value());
135 expectEqualField(expected, *actualOpt, "sfConfidentialBalanceVersion");
136 EXPECT_TRUE(entry.hasConfidentialBalanceVersion());
137 }
138
139 {
140 auto const& expected = issuerEncryptedBalanceValue;
141 auto const actualOpt = entry.getIssuerEncryptedBalance();
142 ASSERT_TRUE(actualOpt.has_value());
143 expectEqualField(expected, *actualOpt, "sfIssuerEncryptedBalance");
144 EXPECT_TRUE(entry.hasIssuerEncryptedBalance());
145 }
146
147 {
148 auto const& expected = auditorEncryptedBalanceValue;
149 auto const actualOpt = entry.getAuditorEncryptedBalance();
150 ASSERT_TRUE(actualOpt.has_value());
151 expectEqualField(expected, *actualOpt, "sfAuditorEncryptedBalance");
152 EXPECT_TRUE(entry.hasAuditorEncryptedBalance());
153 }
154
155 {
156 auto const& expected = issuerKeyMirrorEpochValue;
157 auto const actualOpt = entry.getIssuerKeyMirrorEpoch();
158 ASSERT_TRUE(actualOpt.has_value());
159 expectEqualField(expected, *actualOpt, "sfIssuerKeyMirrorEpoch");
160 EXPECT_TRUE(entry.hasIssuerKeyMirrorEpoch());
161 }
162
163 {
164 auto const& expected = auditorKeyMirrorEpochValue;
165 auto const actualOpt = entry.getAuditorKeyMirrorEpoch();
166 ASSERT_TRUE(actualOpt.has_value());
167 expectEqualField(expected, *actualOpt, "sfAuditorKeyMirrorEpoch");
168 EXPECT_TRUE(entry.hasAuditorKeyMirrorEpoch());
169 }
170
171 {
172 auto const& expected = holderEncryptionKeyValue;
173 auto const actualOpt = entry.getHolderEncryptionKey();
174 ASSERT_TRUE(actualOpt.has_value());
175 expectEqualField(expected, *actualOpt, "sfHolderEncryptionKey");
176 EXPECT_TRUE(entry.hasHolderEncryptionKey());
177 }
178
179 {
180 auto const& expected = recoveryKeyValue;
181 auto const actualOpt = entry.getRecoveryKey();
182 ASSERT_TRUE(actualOpt.has_value());
183 expectEqualField(expected, *actualOpt, "sfRecoveryKey");
184 EXPECT_TRUE(entry.hasRecoveryKey());
185 }
186
187 EXPECT_TRUE(entry.hasLedgerIndex());
188 auto const ledgerIndex = entry.getLedgerIndex();
189 ASSERT_TRUE(ledgerIndex.has_value());
190 EXPECT_EQ(*ledgerIndex, index);
191 EXPECT_EQ(entry.getKey(), index);
192}
193
194// 2 & 4) Start from an SLE, set fields directly on it, construct a builder
195// from that SLE, build a new wrapper, and verify all fields (and validate()).
196TEST(MPTokenTests, BuilderFromSleRoundTrip)
197{
198 UInt256 const index{2u};
199
200 auto const accountValue = canonical_ACCOUNT();
201 auto const mPTokenIssuanceIDValue = canonical_UINT192();
202 auto const mPTAmountValue = canonical_UINT64();
203 auto const lockedAmountValue = canonical_UINT64();
204 auto const ownerNodeValue = canonical_UINT64();
205 auto const previousTxnIDValue = canonical_UINT256();
206 auto const previousTxnLgrSeqValue = canonical_UINT32();
207 auto const confidentialBalanceInboxValue = canonical_VL();
208 auto const confidentialBalanceSpendingValue = canonical_VL();
209 auto const confidentialBalanceVersionValue = canonical_UINT32();
210 auto const issuerEncryptedBalanceValue = canonical_VL();
211 auto const auditorEncryptedBalanceValue = canonical_VL();
212 auto const issuerKeyMirrorEpochValue = canonical_UINT32();
213 auto const auditorKeyMirrorEpochValue = canonical_UINT32();
214 auto const holderEncryptionKeyValue = canonical_VL();
215 auto const recoveryKeyValue = canonical_VL();
216
217 auto sle = std::make_shared<SLE>(MPToken::entryType, index);
218
219 sle->at(sfAccount) = accountValue;
220 sle->at(sfMPTokenIssuanceID) = mPTokenIssuanceIDValue;
221 sle->at(sfMPTAmount) = mPTAmountValue;
222 sle->at(sfLockedAmount) = lockedAmountValue;
223 sle->at(sfOwnerNode) = ownerNodeValue;
224 sle->at(sfPreviousTxnID) = previousTxnIDValue;
225 sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
226 sle->at(sfConfidentialBalanceInbox) = confidentialBalanceInboxValue;
227 sle->at(sfConfidentialBalanceSpending) = confidentialBalanceSpendingValue;
228 sle->at(sfConfidentialBalanceVersion) = confidentialBalanceVersionValue;
229 sle->at(sfIssuerEncryptedBalance) = issuerEncryptedBalanceValue;
230 sle->at(sfAuditorEncryptedBalance) = auditorEncryptedBalanceValue;
231 sle->at(sfIssuerKeyMirrorEpoch) = issuerKeyMirrorEpochValue;
232 sle->at(sfAuditorKeyMirrorEpoch) = auditorKeyMirrorEpochValue;
233 sle->at(sfHolderEncryptionKey) = holderEncryptionKeyValue;
234 sle->at(sfRecoveryKey) = recoveryKeyValue;
235
236 MPTokenBuilder builderFromSle{sle};
237 EXPECT_TRUE(builderFromSle.validate());
238
239 auto const entryFromBuilder = builderFromSle.build(index);
240
241 MPToken entryFromSle{sle};
242 EXPECT_TRUE(entryFromBuilder.validate());
243 EXPECT_TRUE(entryFromSle.validate());
244
245 {
246 auto const& expected = accountValue;
247
248 auto const fromSle = entryFromSle.getAccount();
249 auto const fromBuilder = entryFromBuilder.getAccount();
250
251 expectEqualField(expected, fromSle, "sfAccount");
252 expectEqualField(expected, fromBuilder, "sfAccount");
253 }
254
255 {
256 auto const& expected = mPTokenIssuanceIDValue;
257
258 auto const fromSle = entryFromSle.getMPTokenIssuanceID();
259 auto const fromBuilder = entryFromBuilder.getMPTokenIssuanceID();
260
261 expectEqualField(expected, fromSle, "sfMPTokenIssuanceID");
262 expectEqualField(expected, fromBuilder, "sfMPTokenIssuanceID");
263 }
264
265 {
266 auto const& expected = ownerNodeValue;
267
268 auto const fromSle = entryFromSle.getOwnerNode();
269 auto const fromBuilder = entryFromBuilder.getOwnerNode();
270
271 expectEqualField(expected, fromSle, "sfOwnerNode");
272 expectEqualField(expected, fromBuilder, "sfOwnerNode");
273 }
274
275 {
276 auto const& expected = previousTxnIDValue;
277
278 auto const fromSle = entryFromSle.getPreviousTxnID();
279 auto const fromBuilder = entryFromBuilder.getPreviousTxnID();
280
281 expectEqualField(expected, fromSle, "sfPreviousTxnID");
282 expectEqualField(expected, fromBuilder, "sfPreviousTxnID");
283 }
284
285 {
286 auto const& expected = previousTxnLgrSeqValue;
287
288 auto const fromSle = entryFromSle.getPreviousTxnLgrSeq();
289 auto const fromBuilder = entryFromBuilder.getPreviousTxnLgrSeq();
290
291 expectEqualField(expected, fromSle, "sfPreviousTxnLgrSeq");
292 expectEqualField(expected, fromBuilder, "sfPreviousTxnLgrSeq");
293 }
294
295 {
296 auto const& expected = mPTAmountValue;
297
298 auto const fromSleOpt = entryFromSle.getMPTAmount();
299 auto const fromBuilderOpt = entryFromBuilder.getMPTAmount();
300
301 ASSERT_TRUE(fromSleOpt.has_value());
302 ASSERT_TRUE(fromBuilderOpt.has_value());
303
304 expectEqualField(expected, *fromSleOpt, "sfMPTAmount");
305 expectEqualField(expected, *fromBuilderOpt, "sfMPTAmount");
306 }
307
308 {
309 auto const& expected = lockedAmountValue;
310
311 auto const fromSleOpt = entryFromSle.getLockedAmount();
312 auto const fromBuilderOpt = entryFromBuilder.getLockedAmount();
313
314 ASSERT_TRUE(fromSleOpt.has_value());
315 ASSERT_TRUE(fromBuilderOpt.has_value());
316
317 expectEqualField(expected, *fromSleOpt, "sfLockedAmount");
318 expectEqualField(expected, *fromBuilderOpt, "sfLockedAmount");
319 }
320
321 {
322 auto const& expected = confidentialBalanceInboxValue;
323
324 auto const fromSleOpt = entryFromSle.getConfidentialBalanceInbox();
325 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceInbox();
326
327 ASSERT_TRUE(fromSleOpt.has_value());
328 ASSERT_TRUE(fromBuilderOpt.has_value());
329
330 expectEqualField(expected, *fromSleOpt, "sfConfidentialBalanceInbox");
331 expectEqualField(expected, *fromBuilderOpt, "sfConfidentialBalanceInbox");
332 }
333
334 {
335 auto const& expected = confidentialBalanceSpendingValue;
336
337 auto const fromSleOpt = entryFromSle.getConfidentialBalanceSpending();
338 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceSpending();
339
340 ASSERT_TRUE(fromSleOpt.has_value());
341 ASSERT_TRUE(fromBuilderOpt.has_value());
342
343 expectEqualField(expected, *fromSleOpt, "sfConfidentialBalanceSpending");
344 expectEqualField(expected, *fromBuilderOpt, "sfConfidentialBalanceSpending");
345 }
346
347 {
348 auto const& expected = confidentialBalanceVersionValue;
349
350 auto const fromSleOpt = entryFromSle.getConfidentialBalanceVersion();
351 auto const fromBuilderOpt = entryFromBuilder.getConfidentialBalanceVersion();
352
353 ASSERT_TRUE(fromSleOpt.has_value());
354 ASSERT_TRUE(fromBuilderOpt.has_value());
355
356 expectEqualField(expected, *fromSleOpt, "sfConfidentialBalanceVersion");
357 expectEqualField(expected, *fromBuilderOpt, "sfConfidentialBalanceVersion");
358 }
359
360 {
361 auto const& expected = issuerEncryptedBalanceValue;
362
363 auto const fromSleOpt = entryFromSle.getIssuerEncryptedBalance();
364 auto const fromBuilderOpt = entryFromBuilder.getIssuerEncryptedBalance();
365
366 ASSERT_TRUE(fromSleOpt.has_value());
367 ASSERT_TRUE(fromBuilderOpt.has_value());
368
369 expectEqualField(expected, *fromSleOpt, "sfIssuerEncryptedBalance");
370 expectEqualField(expected, *fromBuilderOpt, "sfIssuerEncryptedBalance");
371 }
372
373 {
374 auto const& expected = auditorEncryptedBalanceValue;
375
376 auto const fromSleOpt = entryFromSle.getAuditorEncryptedBalance();
377 auto const fromBuilderOpt = entryFromBuilder.getAuditorEncryptedBalance();
378
379 ASSERT_TRUE(fromSleOpt.has_value());
380 ASSERT_TRUE(fromBuilderOpt.has_value());
381
382 expectEqualField(expected, *fromSleOpt, "sfAuditorEncryptedBalance");
383 expectEqualField(expected, *fromBuilderOpt, "sfAuditorEncryptedBalance");
384 }
385
386 {
387 auto const& expected = issuerKeyMirrorEpochValue;
388
389 auto const fromSleOpt = entryFromSle.getIssuerKeyMirrorEpoch();
390 auto const fromBuilderOpt = entryFromBuilder.getIssuerKeyMirrorEpoch();
391
392 ASSERT_TRUE(fromSleOpt.has_value());
393 ASSERT_TRUE(fromBuilderOpt.has_value());
394
395 expectEqualField(expected, *fromSleOpt, "sfIssuerKeyMirrorEpoch");
396 expectEqualField(expected, *fromBuilderOpt, "sfIssuerKeyMirrorEpoch");
397 }
398
399 {
400 auto const& expected = auditorKeyMirrorEpochValue;
401
402 auto const fromSleOpt = entryFromSle.getAuditorKeyMirrorEpoch();
403 auto const fromBuilderOpt = entryFromBuilder.getAuditorKeyMirrorEpoch();
404
405 ASSERT_TRUE(fromSleOpt.has_value());
406 ASSERT_TRUE(fromBuilderOpt.has_value());
407
408 expectEqualField(expected, *fromSleOpt, "sfAuditorKeyMirrorEpoch");
409 expectEqualField(expected, *fromBuilderOpt, "sfAuditorKeyMirrorEpoch");
410 }
411
412 {
413 auto const& expected = holderEncryptionKeyValue;
414
415 auto const fromSleOpt = entryFromSle.getHolderEncryptionKey();
416 auto const fromBuilderOpt = entryFromBuilder.getHolderEncryptionKey();
417
418 ASSERT_TRUE(fromSleOpt.has_value());
419 ASSERT_TRUE(fromBuilderOpt.has_value());
420
421 expectEqualField(expected, *fromSleOpt, "sfHolderEncryptionKey");
422 expectEqualField(expected, *fromBuilderOpt, "sfHolderEncryptionKey");
423 }
424
425 {
426 auto const& expected = recoveryKeyValue;
427
428 auto const fromSleOpt = entryFromSle.getRecoveryKey();
429 auto const fromBuilderOpt = entryFromBuilder.getRecoveryKey();
430
431 ASSERT_TRUE(fromSleOpt.has_value());
432 ASSERT_TRUE(fromBuilderOpt.has_value());
433
434 expectEqualField(expected, *fromSleOpt, "sfRecoveryKey");
435 expectEqualField(expected, *fromBuilderOpt, "sfRecoveryKey");
436 }
437
438 EXPECT_EQ(entryFromSle.getKey(), index);
439 EXPECT_EQ(entryFromBuilder.getKey(), index);
440}
441
442// 3) Verify wrapper throws when constructed from wrong ledger entry type.
443TEST(MPTokenTests, WrapperThrowsOnWrongEntryType)
444{
445 UInt256 const index{3u};
446
447 // Build a valid ledger entry of a different type
448 // Ticket requires: Account, OwnerNode, TicketSequence, PreviousTxnID, PreviousTxnLgrSeq
449 // Check requires: Account, Destination, SendMax, Sequence, OwnerNode, DestinationNode, PreviousTxnID, PreviousTxnLgrSeq
450 TicketBuilder wrongBuilder{
456 auto wrongEntry = wrongBuilder.build(index);
457
458 EXPECT_THROW(MPToken{wrongEntry.getSle()}, std::runtime_error);
459}
460
461// 4) Verify builder throws when constructed from wrong ledger entry type.
462TEST(MPTokenTests, BuilderThrowsOnWrongEntryType)
463{
464 UInt256 const index{4u};
465
466 // Build a valid ledger entry of a different type
467 TicketBuilder wrongBuilder{
473 auto wrongEntry = wrongBuilder.build(index);
474
475 EXPECT_THROW(MPTokenBuilder{wrongEntry.getSle()}, std::runtime_error);
476}
477
478// 5) Build with only required fields and verify optional fields return nullopt.
479TEST(MPTokenTests, OptionalFieldsReturnNullopt)
480{
481 UInt256 const index{3u};
482
483 auto const accountValue = canonical_ACCOUNT();
484 auto const mPTokenIssuanceIDValue = canonical_UINT192();
485 auto const ownerNodeValue = canonical_UINT64();
486 auto const previousTxnIDValue = canonical_UINT256();
487 auto const previousTxnLgrSeqValue = canonical_UINT32();
488
489 MPTokenBuilder builder{
490 accountValue,
491 mPTokenIssuanceIDValue,
492 ownerNodeValue,
493 previousTxnIDValue,
494 previousTxnLgrSeqValue
495 };
496
497 auto const entry = builder.build(index);
498
499 // Verify optional fields are not present
500 EXPECT_FALSE(entry.hasMPTAmount());
501 EXPECT_FALSE(entry.getMPTAmount().has_value());
502 EXPECT_FALSE(entry.hasLockedAmount());
503 EXPECT_FALSE(entry.getLockedAmount().has_value());
504 EXPECT_FALSE(entry.hasConfidentialBalanceInbox());
505 EXPECT_FALSE(entry.getConfidentialBalanceInbox().has_value());
506 EXPECT_FALSE(entry.hasConfidentialBalanceSpending());
507 EXPECT_FALSE(entry.getConfidentialBalanceSpending().has_value());
508 EXPECT_FALSE(entry.hasConfidentialBalanceVersion());
509 EXPECT_FALSE(entry.getConfidentialBalanceVersion().has_value());
510 EXPECT_FALSE(entry.hasIssuerEncryptedBalance());
511 EXPECT_FALSE(entry.getIssuerEncryptedBalance().has_value());
512 EXPECT_FALSE(entry.hasAuditorEncryptedBalance());
513 EXPECT_FALSE(entry.getAuditorEncryptedBalance().has_value());
514 EXPECT_FALSE(entry.hasIssuerKeyMirrorEpoch());
515 EXPECT_FALSE(entry.getIssuerKeyMirrorEpoch().has_value());
516 EXPECT_FALSE(entry.hasAuditorKeyMirrorEpoch());
517 EXPECT_FALSE(entry.getAuditorKeyMirrorEpoch().has_value());
518 EXPECT_FALSE(entry.hasHolderEncryptionKey());
519 EXPECT_FALSE(entry.getHolderEncryptionKey().has_value());
520 EXPECT_FALSE(entry.hasRecoveryKey());
521 EXPECT_FALSE(entry.getRecoveryKey().has_value());
522}
523}
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 MPToken ledger entries.
Definition MPToken.h:376
MPTokenBuilder & setConfidentialBalanceSpending(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfConfidentialBalanceSpending (SoeOptional).
Definition MPToken.h:507
MPTokenBuilder & setRecoveryKey(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfRecoveryKey (SoeOptional).
Definition MPToken.h:584
MPTokenBuilder & setAuditorKeyMirrorEpoch(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfAuditorKeyMirrorEpoch (SoeOptional).
Definition MPToken.h:562
MPTokenBuilder & setIssuerEncryptedBalance(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfIssuerEncryptedBalance (SoeOptional).
Definition MPToken.h:529
MPTokenBuilder & setIssuerKeyMirrorEpoch(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfIssuerKeyMirrorEpoch (SoeOptional).
Definition MPToken.h:551
MPTokenBuilder & setLockedAmount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfLockedAmount (SoeOptional).
Definition MPToken.h:452
MPTokenBuilder & setConfidentialBalanceInbox(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfConfidentialBalanceInbox (SoeOptional).
Definition MPToken.h:496
MPTokenBuilder & setHolderEncryptionKey(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfHolderEncryptionKey (SoeOptional).
Definition MPToken.h:573
MPTokenBuilder & setMPTAmount(std::decay_t< typename SF_UINT64::type::value_type > const &value)
Set sfMPTAmount (SoeDefault).
Definition MPToken.h:441
MPTokenBuilder & setAuditorEncryptedBalance(std::decay_t< typename SF_VL::type::value_type > const &value)
Set sfAuditorEncryptedBalance (SoeOptional).
Definition MPToken.h:540
MPToken build(UInt256 const &index)
Build and return the completed MPToken wrapper.
Definition MPToken.h:596
MPTokenBuilder & setConfidentialBalanceVersion(std::decay_t< typename SF_UINT32::type::value_type > const &value)
Set sfConfidentialBalanceVersion (SoeDefault).
Definition MPToken.h:518
Ledger Entry: MPToken.
Definition MPToken.h:28
SF_UINT256::type::value_type getPreviousTxnID() const
Get sfPreviousTxnID (SoeRequired).
Definition MPToken.h:135
protocol_autogen::Optional< SF_VL::type::value_type > getHolderEncryptionKey() const
Get sfHolderEncryptionKey (SoeOptional).
Definition MPToken.h:325
SF_UINT192::type::value_type getMPTokenIssuanceID() const
Get sfMPTokenIssuanceID (SoeRequired).
Definition MPToken.h:65
SF_ACCOUNT::type::value_type getAccount() const
Get sfAccount (SoeRequired).
Definition MPToken.h:54
static constexpr LedgerEntryType entryType
Definition MPToken.h:30
protocol_autogen::Optional< SF_VL::type::value_type > getRecoveryKey() const
Get sfRecoveryKey (SoeOptional).
Definition MPToken.h:349
protocol_autogen::Optional< SF_UINT64::type::value_type > getMPTAmount() const
Get sfMPTAmount (SoeDefault).
Definition MPToken.h:76
protocol_autogen::Optional< SF_VL::type::value_type > getAuditorEncryptedBalance() const
Get sfAuditorEncryptedBalance (SoeOptional).
Definition MPToken.h:253
protocol_autogen::Optional< SF_UINT32::type::value_type > getIssuerKeyMirrorEpoch() const
Get sfIssuerKeyMirrorEpoch (SoeOptional).
Definition MPToken.h:277
SF_UINT32::type::value_type getPreviousTxnLgrSeq() const
Get sfPreviousTxnLgrSeq (SoeRequired).
Definition MPToken.h:146
SF_UINT64::type::value_type getOwnerNode() const
Get sfOwnerNode (SoeRequired).
Definition MPToken.h:124
protocol_autogen::Optional< SF_VL::type::value_type > getIssuerEncryptedBalance() const
Get sfIssuerEncryptedBalance (SoeOptional).
Definition MPToken.h:229
protocol_autogen::Optional< SF_UINT32::type::value_type > getAuditorKeyMirrorEpoch() const
Get sfAuditorKeyMirrorEpoch (SoeOptional).
Definition MPToken.h:301
protocol_autogen::Optional< SF_VL::type::value_type > getConfidentialBalanceInbox() const
Get sfConfidentialBalanceInbox (SoeOptional).
Definition MPToken.h:157
protocol_autogen::Optional< SF_VL::type::value_type > getConfidentialBalanceSpending() const
Get sfConfidentialBalanceSpending (SoeOptional).
Definition MPToken.h:181
protocol_autogen::Optional< SF_UINT32::type::value_type > getConfidentialBalanceVersion() const
Get sfConfidentialBalanceVersion (SoeDefault).
Definition MPToken.h:205
protocol_autogen::Optional< SF_UINT64::type::value_type > getLockedAmount() const
Get sfLockedAmount (SoeOptional).
Definition MPToken.h:100
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
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)