mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-23 15:20:54 +00:00
feat: Make DynamicMPT opt-in-immutable
This commit is contained in:
committed by
Ayaz Salikhov
parent
bf65e5fa7b
commit
033dca2f0e
@@ -32,7 +32,7 @@ TEST(MPTokenIssuanceTests, BuilderSettersRoundTrip)
|
||||
auto const previousTxnIDValue = canonical_UINT256();
|
||||
auto const previousTxnLgrSeqValue = canonical_UINT32();
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
auto const referenceHoldingValue = canonical_UINT256();
|
||||
auto const issuerEncryptionKeyValue = canonical_VL();
|
||||
auto const auditorEncryptionKeyValue = canonical_VL();
|
||||
@@ -53,7 +53,7 @@ TEST(MPTokenIssuanceTests, BuilderSettersRoundTrip)
|
||||
builder.setLockedAmount(lockedAmountValue);
|
||||
builder.setMPTokenMetadata(mPTokenMetadataValue);
|
||||
builder.setDomainID(domainIDValue);
|
||||
builder.setMutableFlags(mutableFlagsValue);
|
||||
builder.setImmutableFlags(immutableFlagsValue);
|
||||
builder.setReferenceHolding(referenceHoldingValue);
|
||||
builder.setIssuerEncryptionKey(issuerEncryptionKeyValue);
|
||||
builder.setAuditorEncryptionKey(auditorEncryptionKeyValue);
|
||||
@@ -153,11 +153,11 @@ TEST(MPTokenIssuanceTests, BuilderSettersRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const actualOpt = entry.getMutableFlags();
|
||||
auto const& expected = immutableFlagsValue;
|
||||
auto const actualOpt = entry.getImmutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value());
|
||||
expectEqualField(expected, *actualOpt, "sfMutableFlags");
|
||||
EXPECT_TRUE(entry.hasMutableFlags());
|
||||
expectEqualField(expected, *actualOpt, "sfImmutableFlags");
|
||||
EXPECT_TRUE(entry.hasImmutableFlags());
|
||||
}
|
||||
|
||||
{
|
||||
@@ -217,7 +217,7 @@ TEST(MPTokenIssuanceTests, BuilderFromSleRoundTrip)
|
||||
auto const previousTxnIDValue = canonical_UINT256();
|
||||
auto const previousTxnLgrSeqValue = canonical_UINT32();
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
auto const referenceHoldingValue = canonical_UINT256();
|
||||
auto const issuerEncryptionKeyValue = canonical_VL();
|
||||
auto const auditorEncryptionKeyValue = canonical_VL();
|
||||
@@ -237,7 +237,7 @@ TEST(MPTokenIssuanceTests, BuilderFromSleRoundTrip)
|
||||
sle->at(sfPreviousTxnID) = previousTxnIDValue;
|
||||
sle->at(sfPreviousTxnLgrSeq) = previousTxnLgrSeqValue;
|
||||
sle->at(sfDomainID) = domainIDValue;
|
||||
sle->at(sfMutableFlags) = mutableFlagsValue;
|
||||
sle->at(sfImmutableFlags) = immutableFlagsValue;
|
||||
sle->at(sfReferenceHolding) = referenceHoldingValue;
|
||||
sle->at(sfIssuerEncryptionKey) = issuerEncryptionKeyValue;
|
||||
sle->at(sfAuditorEncryptionKey) = auditorEncryptionKeyValue;
|
||||
@@ -391,16 +391,16 @@ TEST(MPTokenIssuanceTests, BuilderFromSleRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const& expected = immutableFlagsValue;
|
||||
|
||||
auto const fromSleOpt = entryFromSle.getMutableFlags();
|
||||
auto const fromBuilderOpt = entryFromBuilder.getMutableFlags();
|
||||
auto const fromSleOpt = entryFromSle.getImmutableFlags();
|
||||
auto const fromBuilderOpt = entryFromBuilder.getImmutableFlags();
|
||||
|
||||
ASSERT_TRUE(fromSleOpt.has_value());
|
||||
ASSERT_TRUE(fromBuilderOpt.has_value());
|
||||
|
||||
expectEqualField(expected, *fromSleOpt, "sfMutableFlags");
|
||||
expectEqualField(expected, *fromBuilderOpt, "sfMutableFlags");
|
||||
expectEqualField(expected, *fromSleOpt, "sfImmutableFlags");
|
||||
expectEqualField(expected, *fromBuilderOpt, "sfImmutableFlags");
|
||||
}
|
||||
|
||||
{
|
||||
@@ -531,8 +531,8 @@ TEST(MPTokenIssuanceTests, OptionalFieldsReturnNullopt)
|
||||
EXPECT_FALSE(entry.getMPTokenMetadata().has_value());
|
||||
EXPECT_FALSE(entry.hasDomainID());
|
||||
EXPECT_FALSE(entry.getDomainID().has_value());
|
||||
EXPECT_FALSE(entry.hasMutableFlags());
|
||||
EXPECT_FALSE(entry.getMutableFlags().has_value());
|
||||
EXPECT_FALSE(entry.hasImmutableFlags());
|
||||
EXPECT_FALSE(entry.getImmutableFlags().has_value());
|
||||
EXPECT_FALSE(entry.hasReferenceHolding());
|
||||
EXPECT_FALSE(entry.getReferenceHolding().has_value());
|
||||
EXPECT_FALSE(entry.hasIssuerEncryptionKey());
|
||||
|
||||
@@ -34,7 +34,7 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderSettersRoundTrip)
|
||||
auto const maximumAmountValue = canonical_UINT64();
|
||||
auto const mPTokenMetadataValue = canonical_VL();
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
|
||||
MPTokenIssuanceCreateBuilder builder{
|
||||
accountValue,
|
||||
@@ -48,7 +48,7 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderSettersRoundTrip)
|
||||
builder.setMaximumAmount(maximumAmountValue);
|
||||
builder.setMPTokenMetadata(mPTokenMetadataValue);
|
||||
builder.setDomainID(domainIDValue);
|
||||
builder.setMutableFlags(mutableFlagsValue);
|
||||
builder.setImmutableFlags(immutableFlagsValue);
|
||||
|
||||
auto tx = builder.build(publicKey, secretKey);
|
||||
|
||||
@@ -107,11 +107,11 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderSettersRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const actualOpt = tx.getMutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfMutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfMutableFlags");
|
||||
EXPECT_TRUE(tx.hasMutableFlags());
|
||||
auto const& expected = immutableFlagsValue;
|
||||
auto const actualOpt = tx.getImmutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfImmutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfImmutableFlags");
|
||||
EXPECT_TRUE(tx.hasImmutableFlags());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -135,7 +135,7 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderFromStTxRoundTrip)
|
||||
auto const maximumAmountValue = canonical_UINT64();
|
||||
auto const mPTokenMetadataValue = canonical_VL();
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
|
||||
// Build an initial transaction
|
||||
MPTokenIssuanceCreateBuilder initialBuilder{
|
||||
@@ -149,7 +149,7 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderFromStTxRoundTrip)
|
||||
initialBuilder.setMaximumAmount(maximumAmountValue);
|
||||
initialBuilder.setMPTokenMetadata(mPTokenMetadataValue);
|
||||
initialBuilder.setDomainID(domainIDValue);
|
||||
initialBuilder.setMutableFlags(mutableFlagsValue);
|
||||
initialBuilder.setImmutableFlags(immutableFlagsValue);
|
||||
|
||||
auto initialTx = initialBuilder.build(publicKey, secretKey);
|
||||
|
||||
@@ -204,10 +204,10 @@ TEST(TransactionsMPTokenIssuanceCreateTests, BuilderFromStTxRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const actualOpt = rebuiltTx.getMutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfMutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfMutableFlags");
|
||||
auto const& expected = immutableFlagsValue;
|
||||
auto const actualOpt = rebuiltTx.getImmutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfImmutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfImmutableFlags");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -275,8 +275,8 @@ TEST(TransactionsMPTokenIssuanceCreateTests, OptionalFieldsReturnNullopt)
|
||||
EXPECT_FALSE(tx.getMPTokenMetadata().has_value());
|
||||
EXPECT_FALSE(tx.hasDomainID());
|
||||
EXPECT_FALSE(tx.getDomainID().has_value());
|
||||
EXPECT_FALSE(tx.hasMutableFlags());
|
||||
EXPECT_FALSE(tx.getMutableFlags().has_value());
|
||||
EXPECT_FALSE(tx.hasImmutableFlags());
|
||||
EXPECT_FALSE(tx.getImmutableFlags().has_value());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderSettersRoundTrip)
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mPTokenMetadataValue = canonical_VL();
|
||||
auto const transferFeeValue = canonical_UINT16();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
auto const issuerEncryptionKeyValue = canonical_VL();
|
||||
auto const auditorEncryptionKeyValue = canonical_VL();
|
||||
|
||||
@@ -50,7 +50,7 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderSettersRoundTrip)
|
||||
builder.setDomainID(domainIDValue);
|
||||
builder.setMPTokenMetadata(mPTokenMetadataValue);
|
||||
builder.setTransferFee(transferFeeValue);
|
||||
builder.setMutableFlags(mutableFlagsValue);
|
||||
builder.setImmutableFlags(immutableFlagsValue);
|
||||
builder.setIssuerEncryptionKey(issuerEncryptionKeyValue);
|
||||
builder.setAuditorEncryptionKey(auditorEncryptionKeyValue);
|
||||
|
||||
@@ -109,11 +109,11 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderSettersRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const actualOpt = tx.getMutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfMutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfMutableFlags");
|
||||
EXPECT_TRUE(tx.hasMutableFlags());
|
||||
auto const& expected = immutableFlagsValue;
|
||||
auto const actualOpt = tx.getImmutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfImmutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfImmutableFlags");
|
||||
EXPECT_TRUE(tx.hasImmutableFlags());
|
||||
}
|
||||
|
||||
{
|
||||
@@ -153,7 +153,7 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderFromStTxRoundTrip)
|
||||
auto const domainIDValue = canonical_UINT256();
|
||||
auto const mPTokenMetadataValue = canonical_VL();
|
||||
auto const transferFeeValue = canonical_UINT16();
|
||||
auto const mutableFlagsValue = canonical_UINT32();
|
||||
auto const immutableFlagsValue = canonical_UINT32();
|
||||
auto const issuerEncryptionKeyValue = canonical_VL();
|
||||
auto const auditorEncryptionKeyValue = canonical_VL();
|
||||
|
||||
@@ -169,7 +169,7 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderFromStTxRoundTrip)
|
||||
initialBuilder.setDomainID(domainIDValue);
|
||||
initialBuilder.setMPTokenMetadata(mPTokenMetadataValue);
|
||||
initialBuilder.setTransferFee(transferFeeValue);
|
||||
initialBuilder.setMutableFlags(mutableFlagsValue);
|
||||
initialBuilder.setImmutableFlags(immutableFlagsValue);
|
||||
initialBuilder.setIssuerEncryptionKey(issuerEncryptionKeyValue);
|
||||
initialBuilder.setAuditorEncryptionKey(auditorEncryptionKeyValue);
|
||||
|
||||
@@ -225,10 +225,10 @@ TEST(TransactionsMPTokenIssuanceSetTests, BuilderFromStTxRoundTrip)
|
||||
}
|
||||
|
||||
{
|
||||
auto const& expected = mutableFlagsValue;
|
||||
auto const actualOpt = rebuiltTx.getMutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfMutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfMutableFlags");
|
||||
auto const& expected = immutableFlagsValue;
|
||||
auto const actualOpt = rebuiltTx.getImmutableFlags();
|
||||
ASSERT_TRUE(actualOpt.has_value()) << "Optional field sfImmutableFlags should be present";
|
||||
expectEqualField(expected, *actualOpt, "sfImmutableFlags");
|
||||
}
|
||||
|
||||
{
|
||||
@@ -310,8 +310,8 @@ TEST(TransactionsMPTokenIssuanceSetTests, OptionalFieldsReturnNullopt)
|
||||
EXPECT_FALSE(tx.getMPTokenMetadata().has_value());
|
||||
EXPECT_FALSE(tx.hasTransferFee());
|
||||
EXPECT_FALSE(tx.getTransferFee().has_value());
|
||||
EXPECT_FALSE(tx.hasMutableFlags());
|
||||
EXPECT_FALSE(tx.getMutableFlags().has_value());
|
||||
EXPECT_FALSE(tx.hasImmutableFlags());
|
||||
EXPECT_FALSE(tx.getImmutableFlags().has_value());
|
||||
EXPECT_FALSE(tx.hasIssuerEncryptionKey());
|
||||
EXPECT_FALSE(tx.getIssuerEncryptionKey().has_value());
|
||||
EXPECT_FALSE(tx.hasAuditorEncryptionKey());
|
||||
|
||||
Reference in New Issue
Block a user