mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-22 23:00:55 +00:00
feat: Make DynamicMPT opt-in-immutable
This commit is contained in:
committed by
Ayaz Salikhov
parent
bf65e5fa7b
commit
033dca2f0e
@@ -616,7 +616,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -637,7 +637,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.issuerPubKey = mptAlice.getPubKey(alice),
|
||||
.auditorPubKey = mptAlice.getPubKey(auditor),
|
||||
});
|
||||
@@ -880,11 +880,11 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
Account const alice("alice");
|
||||
MPTTester mptAlice(env, alice, {.holders = {}});
|
||||
|
||||
// Create with tmfMPTCannotEnableCanHoldConfidentialBalance
|
||||
// Create with tifMPTCanHoldConfidentialBalance
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanLock,
|
||||
.mutableFlags = tmfMPTCannotEnableCanHoldConfidentialBalance,
|
||||
.immutableFlags = tifMPTCanHoldConfidentialBalance,
|
||||
});
|
||||
|
||||
mptAlice.generateKeyPair(alice);
|
||||
@@ -893,7 +893,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
// because the issuance cannot mutate canConfidentialAmount
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.issuerPubKey = mptAlice.getPubKey(alice),
|
||||
.err = tecNO_PERMISSION,
|
||||
});
|
||||
@@ -965,15 +965,11 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
Account const alice("alice");
|
||||
MPTTester mptAlice(env, alice, {.holders = {}});
|
||||
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanLock,
|
||||
.mutableFlags = tmfMPTCanMutateTransferFee,
|
||||
});
|
||||
mptAlice.create({.ownerCount = 1, .flags = tfMPTCanTransfer | tfMPTCanLock});
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.transferFee = 100,
|
||||
.err = temBAD_TRANSFER_FEE,
|
||||
});
|
||||
@@ -986,16 +982,12 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
Account const alice("alice");
|
||||
MPTTester mptAlice(env, alice, {.holders = {}});
|
||||
|
||||
mptAlice.create({
|
||||
.transferFee = 100,
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanLock,
|
||||
.mutableFlags = tmfMPTCanMutateTransferFee,
|
||||
});
|
||||
mptAlice.create(
|
||||
{.transferFee = 100, .ownerCount = 1, .flags = tfMPTCanTransfer | tfMPTCanLock});
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.err = tecNO_PERMISSION,
|
||||
});
|
||||
}
|
||||
@@ -1007,11 +999,9 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
Account const alice("alice");
|
||||
MPTTester mptAlice(env, alice, {.holders = {}});
|
||||
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanLock | tfMPTCanHoldConfidentialBalance,
|
||||
.mutableFlags = tmfMPTCanMutateTransferFee,
|
||||
});
|
||||
mptAlice.create(
|
||||
{.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanLock | tfMPTCanHoldConfidentialBalance});
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
@@ -5087,7 +5077,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
testcase("mutate lsfMPTCanHoldConfidentialBalance");
|
||||
using namespace test::jtx;
|
||||
|
||||
// can not create mpt issuance with tmfMPTCannotEnableCanHoldConfidentialBalance
|
||||
// can not create mpt issuance with tifMPTCanHoldConfidentialBalance
|
||||
// when featureDynamicMPT is disabled
|
||||
{
|
||||
Env env{*this, features - featureDynamicMPT};
|
||||
@@ -5097,12 +5087,12 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
|
||||
mptAlice.create({
|
||||
.ownerCount = 0,
|
||||
.mutableFlags = tmfMPTCannotEnableCanHoldConfidentialBalance,
|
||||
.immutableFlags = tifMPTCanHoldConfidentialBalance,
|
||||
.err = temDISABLED,
|
||||
});
|
||||
}
|
||||
|
||||
// can not create mpt issuance with tmfMPTCannotEnableCanHoldConfidentialBalance when
|
||||
// can not create mpt issuance with tifMPTCanHoldConfidentialBalance when
|
||||
// featureConfidentialTransfer is disabled
|
||||
{
|
||||
Env env{*this, features - featureConfidentialTransfer};
|
||||
@@ -5112,12 +5102,12 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
|
||||
mptAlice.create({
|
||||
.ownerCount = 0,
|
||||
.mutableFlags = tmfMPTCannotEnableCanHoldConfidentialBalance,
|
||||
.immutableFlags = tifMPTCanHoldConfidentialBalance,
|
||||
.err = temDISABLED,
|
||||
});
|
||||
}
|
||||
|
||||
// if lsmfMPTCannotEnableCanHoldConfidentialBalance is set, can not set/clear
|
||||
// if lsifMPTCanHoldConfidentialBalance is set, can not set/clear
|
||||
// lsfMPTCanHoldConfidentialBalance
|
||||
{
|
||||
Env env{*this, features};
|
||||
@@ -5128,12 +5118,12 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer,
|
||||
.mutableFlags = tmfMPTCannotEnableCanHoldConfidentialBalance,
|
||||
.immutableFlags = tifMPTCanHoldConfidentialBalance,
|
||||
});
|
||||
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.err = tecNO_PERMISSION,
|
||||
});
|
||||
}
|
||||
@@ -5148,7 +5138,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
.flags = tfMPTCanTransfer | tfMPTCanHoldConfidentialBalance,
|
||||
.mutableFlags = tmfMPTCanEnableCanLock,
|
||||
.immutableFlags = tifMPTCanLock,
|
||||
});
|
||||
|
||||
mptAlice.authorize({
|
||||
@@ -5200,14 +5190,14 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
// lsfMPTCanHoldConfidentialBalance was already set
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
});
|
||||
verifyToggle(tesSUCCESS, 10);
|
||||
|
||||
// set tmfMPTSetCanHoldConfidentialBalance again
|
||||
// set tfMPTSetCanHoldConfidentialBalance again
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
});
|
||||
verifyToggle(tesSUCCESS, 30);
|
||||
}
|
||||
@@ -5220,7 +5210,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
Account const bob("bob");
|
||||
MPTTester mptAlice(env, alice, {.holders = {bob}});
|
||||
|
||||
// lsmfMPTCannotEnableCanHoldConfidentialBalance is false by default,
|
||||
// lsifMPTCanHoldConfidentialBalance is false by default,
|
||||
// so that lsfMPTCanHoldConfidentialBalance can be mutated
|
||||
mptAlice.create({
|
||||
.ownerCount = 1,
|
||||
@@ -5243,7 +5233,7 @@ class ConfidentialTransfer_test : public ConfidentialTransferTestBase
|
||||
// confidential outstanding balance
|
||||
mptAlice.set({
|
||||
.account = alice,
|
||||
.mutableFlags = tmfMPTSetCanHoldConfidentialBalance,
|
||||
.flags = tfMPTSetCanHoldConfidentialBalance,
|
||||
.err = tecNO_PERMISSION,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user