20TEST(TransactionsConfidentialMPTConvertBackTests, BuilderSettersRoundTrip)
23 auto const [publicKey, secretKey] =
43 mPTokenIssuanceIDValue,
45 holderEncryptedAmountValue,
46 issuerEncryptedAmountValue,
49 balanceCommitmentValue,
57 auto tx = builder.
build(publicKey, secretKey);
60 EXPECT_TRUE(tx.validate(reason)) << reason;
63 EXPECT_FALSE(tx.getSigningPubKey().empty());
64 EXPECT_TRUE(tx.hasTxnSignature());
67 EXPECT_EQ(tx.getAccount(), accountValue);
68 EXPECT_EQ(tx.getSequence(), sequenceValue);
69 EXPECT_EQ(tx.getFee(), feeValue);
73 auto const& expected = mPTokenIssuanceIDValue;
74 auto const actual = tx.getMPTokenIssuanceID();
79 auto const& expected = mPTAmountValue;
80 auto const actual = tx.getMPTAmount();
85 auto const& expected = holderEncryptedAmountValue;
86 auto const actual = tx.getHolderEncryptedAmount();
91 auto const& expected = issuerEncryptedAmountValue;
92 auto const actual = tx.getIssuerEncryptedAmount();
97 auto const& expected = blindingFactorValue;
98 auto const actual = tx.getBlindingFactor();
103 auto const& expected = zKProofValue;
104 auto const actual = tx.getZKProof();
109 auto const& expected = balanceCommitmentValue;
110 auto const actual = tx.getBalanceCommitment();
116 auto const& expected = auditorEncryptedAmountValue;
117 auto const actualOpt = tx.getAuditorEncryptedAmount();
118 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuditorEncryptedAmount should be present";
120 EXPECT_TRUE(tx.hasAuditorEncryptedAmount());
127TEST(TransactionsConfidentialMPTConvertBackTests, BuilderFromStTxRoundTrip)
130 auto const [publicKey, secretKey] =
143 auto const auditorEncryptedAmountValue =
canonical_VL();
151 mPTokenIssuanceIDValue,
153 holderEncryptedAmountValue,
154 issuerEncryptedAmountValue,
157 balanceCommitmentValue,
164 auto initialTx = initialBuilder.
build(publicKey, secretKey);
169 auto rebuiltTx = builderFromTx.
build(publicKey, secretKey);
172 EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
175 EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
176 EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
177 EXPECT_EQ(rebuiltTx.getFee(), feeValue);
181 auto const& expected = mPTokenIssuanceIDValue;
182 auto const actual = rebuiltTx.getMPTokenIssuanceID();
187 auto const& expected = mPTAmountValue;
188 auto const actual = rebuiltTx.getMPTAmount();
193 auto const& expected = holderEncryptedAmountValue;
194 auto const actual = rebuiltTx.getHolderEncryptedAmount();
199 auto const& expected = issuerEncryptedAmountValue;
200 auto const actual = rebuiltTx.getIssuerEncryptedAmount();
205 auto const& expected = blindingFactorValue;
206 auto const actual = rebuiltTx.getBlindingFactor();
211 auto const& expected = zKProofValue;
212 auto const actual = rebuiltTx.getZKProof();
217 auto const& expected = balanceCommitmentValue;
218 auto const actual = rebuiltTx.getBalanceCommitment();
224 auto const& expected = auditorEncryptedAmountValue;
225 auto const actualOpt = rebuiltTx.getAuditorEncryptedAmount();
226 ASSERT_TRUE(actualOpt.has_value()) <<
"Optional field sfAuditorEncryptedAmount should be present";
261TEST(TransactionsConfidentialMPTConvertBackTests, OptionalFieldsReturnNullopt)
264 auto const [publicKey, secretKey] =
283 mPTokenIssuanceIDValue,
285 holderEncryptedAmountValue,
286 issuerEncryptedAmountValue,
289 balanceCommitmentValue,
296 auto tx = builder.
build(publicKey, secretKey);
299 EXPECT_FALSE(tx.hasAuditorEncryptedAmount());
300 EXPECT_FALSE(tx.getAuditorEncryptedAmount().has_value());