20TEST(TransactionsConfidentialMPTSendTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
36 auto const destinationEncryptedAmountValue =
canonical_VL();
46 mPTokenIssuanceIDValue,
48 senderEncryptedAmountValue,
49 destinationEncryptedAmountValue,
50 issuerEncryptedAmountValue,
52 amountCommitmentValue,
53 balanceCommitmentValue,
63 auto tx = builder.
build(publicKey, secretKey);
66 EXPECT_TRUE(tx.validate(reason)) << reason;
69 EXPECT_FALSE(tx.getSigningPubKey().empty());
70 EXPECT_TRUE(tx.hasTxnSignature());
73 EXPECT_EQ(tx.getAccount(), accountValue);
74 EXPECT_EQ(tx.getSequence(), sequenceValue);
75 EXPECT_EQ(tx.getFee(), feeValue);
79 auto const& expected = mPTokenIssuanceIDValue;
80 auto const actual = tx.getMPTokenIssuanceID();
85 auto const& expected = destinationValue;
86 auto const actual = tx.getDestination();
91 auto const& expected = senderEncryptedAmountValue;
92 auto const actual = tx.getSenderEncryptedAmount();
97 auto const& expected = destinationEncryptedAmountValue;
98 auto const actual = tx.getDestinationEncryptedAmount();
103 auto const& expected = issuerEncryptedAmountValue;
104 auto const actual = tx.getIssuerEncryptedAmount();
109 auto const& expected = zKProofValue;
110 auto const actual = tx.getZKProof();
115 auto const& expected = amountCommitmentValue;
116 auto const actual = tx.getAmountCommitment();
121 auto const& expected = balanceCommitmentValue;
122 auto const actual = tx.getBalanceCommitment();
128 auto const& expected = destinationTagValue;
129 auto const actualOpt = tx.getDestinationTag();
130 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfDestinationTag should be present";
132 EXPECT_TRUE(tx.hasDestinationTag());
136 auto const& expected = auditorEncryptedAmountValue;
137 auto const actualOpt = tx.getAuditorEncryptedAmount();
138 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuditorEncryptedAmount should be present";
140 EXPECT_TRUE(tx.hasAuditorEncryptedAmount());
144 auto const& expected = credentialIDsValue;
145 auto const actualOpt = tx.getCredentialIDs();
146 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCredentialIDs should be present";
148 EXPECT_TRUE(tx.hasCredentialIDs());
155TEST(TransactionsConfidentialMPTSendTests, BuilderFromStTxRoundTrip)
158 auto const [publicKey, secretKey] =
171 auto const destinationEncryptedAmountValue =
canonical_VL();
173 auto const auditorEncryptedAmountValue =
canonical_VL();
182 mPTokenIssuanceIDValue,
184 senderEncryptedAmountValue,
185 destinationEncryptedAmountValue,
186 issuerEncryptedAmountValue,
188 amountCommitmentValue,
189 balanceCommitmentValue,
198 auto initialTx = initialBuilder.
build(publicKey, secretKey);
203 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
206 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
209 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
210 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
211 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
215 auto const& expected = mPTokenIssuanceIDValue;
216 auto const actual = rebuiltTx.getMPTokenIssuanceID();
221 auto const& expected = destinationValue;
222 auto const actual = rebuiltTx.getDestination();
227 auto const& expected = senderEncryptedAmountValue;
228 auto const actual = rebuiltTx.getSenderEncryptedAmount();
233 auto const& expected = destinationEncryptedAmountValue;
234 auto const actual = rebuiltTx.getDestinationEncryptedAmount();
239 auto const& expected = issuerEncryptedAmountValue;
240 auto const actual = rebuiltTx.getIssuerEncryptedAmount();
245 auto const& expected = zKProofValue;
246 auto const actual = rebuiltTx.getZKProof();
251 auto const& expected = amountCommitmentValue;
252 auto const actual = rebuiltTx.getAmountCommitment();
257 auto const& expected = balanceCommitmentValue;
258 auto const actual = rebuiltTx.getBalanceCommitment();
264 auto const& expected = destinationTagValue;
265 auto const actualOpt = rebuiltTx.getDestinationTag();
266 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfDestinationTag should be present";
271 auto const& expected = auditorEncryptedAmountValue;
272 auto const actualOpt = rebuiltTx.getAuditorEncryptedAmount();
273 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuditorEncryptedAmount should be present";
278 auto const& expected = credentialIDsValue;
279 auto const actualOpt = rebuiltTx.getCredentialIDs();
280 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfCredentialIDs should be present";
315TEST(TransactionsConfidentialMPTSendTests, OptionalFieldsReturnNullopt)
318 auto const [publicKey, secretKey] =
330 auto const destinationEncryptedAmountValue =
canonical_VL();
338 mPTokenIssuanceIDValue,
340 senderEncryptedAmountValue,
341 destinationEncryptedAmountValue,
342 issuerEncryptedAmountValue,
344 amountCommitmentValue,
345 balanceCommitmentValue,
352 auto tx = builder.
build(publicKey, secretKey);
355 EXPECT_FALSE(tx.hasDestinationTag());
356 EXPECT_FALSE(tx.getDestinationTag().has_value());
357 EXPECT_FALSE(tx.hasAuditorEncryptedAmount());
358 EXPECT_FALSE(tx.getAuditorEncryptedAmount().has_value());
359 EXPECT_FALSE(tx.hasCredentialIDs());
360 EXPECT_FALSE(tx.getCredentialIDs().has_value());