diff --git a/conan.lock b/conan.lock index 3d063ec20..75cc25874 100644 --- a/conan.lock +++ b/conan.lock @@ -3,7 +3,7 @@ "requires": [ "zlib/1.3.2#1cb806da49011867778ffb6ac7190fcb%1782392402.122708", "xxhash/0.8.3#681d36a0a6111fc56e5e45ea182c19cc%1782392402.420688", - "xrpl/3.3.0-rc1-custom#cdfb12fc2671eaea72d5920bea800fd2%1785426802.141277", + "xrpl/3.3.0#5e356a24ae1f0d6da6bd617b926f92e6%1786467262.262007", "sqlite3/3.53.0#324ada52333108388a9a6108bfa96734%1782392403.185447", "spdlog/1.17.0#bcbaaf7147bda6ad24ffbd1ac3d7142c%1782736610.443882", "soci/4.0.3#e726491a03468795453f7c83fc924a96%1782392402.679521", @@ -15,7 +15,7 @@ "protobuf/6.33.5#ff253ead763bd8d9904a52979cd21e81%1782392410.233933", "openssl/3.6.3#f806de8933e3bf6f01016c6a888cee2e%1783945160.863288", "nudb/2.0.9#11149c73f8f2baff9a0198fe25971fc7%1782392402.297166", - "mpt-crypto/0.4.0-rc4#ffdba12f2332357f0d8b0ae944cfff52%1784138702.932355", + "mpt-crypto/1.0.2#b313cef0c1a493eb970ad185b2e9bab7%1784285108.866483", "minizip/1.2.13#64dfec2ee447ab6c0c7eab967815a762%1782736605.272739", "lz4/1.10.0#982d9b673900f665a1da109e09c17cab%1782392402.164188", "libuv/1.46.0#e1a592bf7c0f37802889ca2c795fb26c%1782736605.776567", diff --git a/conanfile.py b/conanfile.py index a4139086a..d638113c9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -17,7 +17,7 @@ class ClioConan(ConanFile): "fmt/12.1.0", "libbacktrace/cci.20210118", "spdlog/1.17.0", - "xrpl/3.3.0-rc1-custom", + "xrpl/3.3.0", ] default_options = { diff --git a/src/rpc/handlers/AccountMPTokenIssuances.cpp b/src/rpc/handlers/AccountMPTokenIssuances.cpp index b5acc7de9..5870adf67 100644 --- a/src/rpc/handlers/AccountMPTokenIssuances.cpp +++ b/src/rpc/handlers/AccountMPTokenIssuances.cpp @@ -57,22 +57,25 @@ AccountMPTokenIssuancesHandler::addMPTokenIssuance( setFlag(issuance.mptCanClawback, xrpl::lsfMPTCanClawback); setFlag(issuance.mptCanHoldConfidentialBalance, xrpl::lsfMPTCanHoldConfidentialBalance); - if (sle.isFieldPresent(xrpl::sfMutableFlags)) { - auto const mutableFlags = sle.getFieldU32(xrpl::sfMutableFlags); + if (sle.isFieldPresent(xrpl::sfImmutableFlags)) { + auto const immutableFlags = sle.getFieldU32(xrpl::sfImmutableFlags); - auto const setMutableFlag = [&](std::optional& field, std::uint32_t mask) { - if ((mutableFlags & mask) != 0u) + auto const setImmutableFlag = [&](std::optional& field, std::uint32_t mask) { + if ((immutableFlags & mask) != 0u) field = true; }; - setMutableFlag(issuance.mptCanMutateCanLock, xrpl::lsmfMPTCanEnableCanLock); - setMutableFlag(issuance.mptCanMutateRequireAuth, xrpl::lsmfMPTCanEnableRequireAuth); - setMutableFlag(issuance.mptCanMutateCanEscrow, xrpl::lsmfMPTCanEnableCanEscrow); - setMutableFlag(issuance.mptCanMutateCanTrade, xrpl::lsmfMPTCanEnableCanTrade); - setMutableFlag(issuance.mptCanMutateCanTransfer, xrpl::lsmfMPTCanEnableCanTransfer); - setMutableFlag(issuance.mptCanMutateCanClawback, xrpl::lsmfMPTCanEnableCanClawback); - setMutableFlag(issuance.mptCanMutateMetadata, xrpl::lsmfMPTCanMutateMetadata); - setMutableFlag(issuance.mptCanMutateTransferFee, xrpl::lsmfMPTCanMutateTransferFee); + setImmutableFlag(issuance.mptImmutableCanLock, xrpl::lsifMPTCanLock); + setImmutableFlag(issuance.mptImmutableRequireAuth, xrpl::lsifMPTRequireAuth); + setImmutableFlag(issuance.mptImmutableCanEscrow, xrpl::lsifMPTCanEscrow); + setImmutableFlag(issuance.mptImmutableCanTrade, xrpl::lsifMPTCanTrade); + setImmutableFlag(issuance.mptImmutableCanTransfer, xrpl::lsifMPTCanTransfer); + setImmutableFlag(issuance.mptImmutableCanClawback, xrpl::lsifMPTCanClawback); + setImmutableFlag( + issuance.mptImmutableCanHoldConfidentialBalance, xrpl::lsifMPTCanHoldConfidentialBalance + ); + setImmutableFlag(issuance.mptImmutableMetadata, xrpl::lsifMPTMetadata); + setImmutableFlag(issuance.mptImmutableTransferFee, xrpl::lsifMPTTransferFee); } if (sle.isFieldPresent(xrpl::sfTransferFee)) @@ -277,14 +280,18 @@ tag_invoke( setIfPresent("mpt_can_transfer", issuance.mptCanTransfer); setIfPresent("mpt_can_clawback", issuance.mptCanClawback); - setIfPresent("mpt_can_mutate_can_lock", issuance.mptCanMutateCanLock); - setIfPresent("mpt_can_mutate_require_auth", issuance.mptCanMutateRequireAuth); - setIfPresent("mpt_can_mutate_can_escrow", issuance.mptCanMutateCanEscrow); - setIfPresent("mpt_can_mutate_can_trade", issuance.mptCanMutateCanTrade); - setIfPresent("mpt_can_mutate_can_transfer", issuance.mptCanMutateCanTransfer); - setIfPresent("mpt_can_mutate_can_clawback", issuance.mptCanMutateCanClawback); - setIfPresent("mpt_can_mutate_metadata", issuance.mptCanMutateMetadata); - setIfPresent("mpt_can_mutate_transfer_fee", issuance.mptCanMutateTransferFee); + setIfPresent("mpt_immutable_can_lock", issuance.mptImmutableCanLock); + setIfPresent("mpt_immutable_require_auth", issuance.mptImmutableRequireAuth); + setIfPresent("mpt_immutable_can_escrow", issuance.mptImmutableCanEscrow); + setIfPresent("mpt_immutable_can_trade", issuance.mptImmutableCanTrade); + setIfPresent("mpt_immutable_can_transfer", issuance.mptImmutableCanTransfer); + setIfPresent("mpt_immutable_can_clawback", issuance.mptImmutableCanClawback); + setIfPresent( + "mpt_immutable_can_hold_confidential_balance", + issuance.mptImmutableCanHoldConfidentialBalance + ); + setIfPresent("mpt_immutable_metadata", issuance.mptImmutableMetadata); + setIfPresent("mpt_immutable_transfer_fee", issuance.mptImmutableTransferFee); setIfPresent("mpt_can_hold_confidential_balance", issuance.mptCanHoldConfidentialBalance); setUint64IfPresent( diff --git a/src/rpc/handlers/AccountMPTokenIssuances.hpp b/src/rpc/handlers/AccountMPTokenIssuances.hpp index e26fba853..1cd679569 100644 --- a/src/rpc/handlers/AccountMPTokenIssuances.hpp +++ b/src/rpc/handlers/AccountMPTokenIssuances.hpp @@ -63,14 +63,15 @@ public: std::optional mptCanTransfer; std::optional mptCanClawback; - std::optional mptCanMutateCanLock; - std::optional mptCanMutateRequireAuth; - std::optional mptCanMutateCanEscrow; - std::optional mptCanMutateCanTrade; - std::optional mptCanMutateCanTransfer; - std::optional mptCanMutateCanClawback; - std::optional mptCanMutateMetadata; - std::optional mptCanMutateTransferFee; + std::optional mptImmutableCanLock; + std::optional mptImmutableRequireAuth; + std::optional mptImmutableCanEscrow; + std::optional mptImmutableCanTrade; + std::optional mptImmutableCanTransfer; + std::optional mptImmutableCanClawback; + std::optional mptImmutableCanHoldConfidentialBalance; + std::optional mptImmutableMetadata; + std::optional mptImmutableTransferFee; std::optional mptCanHoldConfidentialBalance; std::optional confidentialOutstandingAmount; diff --git a/tests/common/util/TestObject.cpp b/tests/common/util/TestObject.cpp index 19fe2d95e..0f5034fac 100644 --- a/tests/common/util/TestObject.cpp +++ b/tests/common/util/TestObject.cpp @@ -1493,7 +1493,7 @@ createMptIssuanceObject( std::optional maxAmount, std::optional lockedAmount, std::optional domainId, - std::optional mutableFlags, + std::optional immutableFlags, std::optional issuerEncryptionKey, std::optional auditorEncryptionKey, std::optional confidentialOutstandingAmount @@ -1523,8 +1523,8 @@ createMptIssuanceObject( } if (domainId.has_value()) mptIssuance.setFieldH256(xrpl::sfDomainID, xrpl::uint256{*domainId}); - if (mutableFlags.has_value()) - mptIssuance.setFieldU32(xrpl::sfMutableFlags, *mutableFlags); + if (immutableFlags.has_value()) + mptIssuance.setFieldU32(xrpl::sfImmutableFlags, *immutableFlags); if (issuerEncryptionKey.has_value()) { xrpl::Slice const slice(issuerEncryptionKey->data(), issuerEncryptionKey->size()); mptIssuance.setFieldVL(xrpl::sfIssuerEncryptionKey, slice); diff --git a/tests/common/util/TestObject.hpp b/tests/common/util/TestObject.hpp index 280f8798c..e6c4e629d 100644 --- a/tests/common/util/TestObject.hpp +++ b/tests/common/util/TestObject.hpp @@ -466,7 +466,7 @@ createMptIssuanceObject( std::optional maxAmount = std::nullopt, std::optional lockedAmount = std::nullopt, std::optional domainId = std::nullopt, - std::optional mutableFlags = std::nullopt, + std::optional immutableFlags = std::nullopt, std::optional issuerEncryptionKey = std::nullopt, std::optional auditorEncryptionKey = std::nullopt, std::optional confidentialOutstandingAmount = std::nullopt diff --git a/tests/unit/rpc/handlers/AccountMPTokenIssuancesTests.cpp b/tests/unit/rpc/handlers/AccountMPTokenIssuancesTests.cpp index 638dbc99d..a472c5d05 100644 --- a/tests/unit/rpc/handlers/AccountMPTokenIssuancesTests.cpp +++ b/tests/unit/rpc/handlers/AccountMPTokenIssuancesTests.cpp @@ -956,15 +956,13 @@ TEST_P(AccountMPTokenIssuancesAmountSerializationTest, SerializedAsStrings) }); } -TEST_F(RPCAccountMPTokenIssuancesHandlerTest, MutableFlags) +TEST_F(RPCAccountMPTokenIssuancesHandlerTest, ImmutableFlags) { - uint32_t const mutableFlags1 = xrpl::lsmfMPTCanEnableCanLock | - xrpl::lsmfMPTCanEnableRequireAuth | xrpl::lsmfMPTCanEnableCanEscrow | - xrpl::lsmfMPTCanEnableCanTrade; + uint32_t const immutableFlags1 = xrpl::lsifMPTCanLock | xrpl::lsifMPTRequireAuth | + xrpl::lsifMPTCanEscrow | xrpl::lsifMPTCanTrade; - uint32_t const mutableFlags2 = xrpl::lsmfMPTCanEnableCanTransfer | - xrpl::lsmfMPTCanEnableCanClawback | xrpl::lsmfMPTCanMutateMetadata | - xrpl::lsmfMPTCanMutateTransferFee; + uint32_t const immutableFlags2 = xrpl::lsifMPTCanTransfer | xrpl::lsifMPTCanClawback | + xrpl::lsifMPTMetadata | xrpl::lsifMPTTransferFee; auto const ledgerHeader = createLedgerHeader(kLedgerHash, 30); EXPECT_CALL(*backend_, fetchLedgerBySequence).WillOnce(Return(ledgerHeader)); @@ -993,7 +991,7 @@ TEST_F(RPCAccountMPTokenIssuancesHandlerTest, MutableFlags) std::nullopt, std::nullopt, std::nullopt, - mutableFlags1 + immutableFlags1 ) .getSerializer() .peekData(), @@ -1009,7 +1007,7 @@ TEST_F(RPCAccountMPTokenIssuancesHandlerTest, MutableFlags) std::nullopt, std::nullopt, std::nullopt, - mutableFlags2 + immutableFlags2 ) .getSerializer() .peekData() @@ -1042,10 +1040,10 @@ TEST_F(RPCAccountMPTokenIssuancesHandlerTest, MutableFlags) "outstanding_amount": "{}", "transfer_fee": {}, "mpt_can_transfer": true, - "mpt_can_mutate_can_lock": true, - "mpt_can_mutate_require_auth": true, - "mpt_can_mutate_can_escrow": true, - "mpt_can_mutate_can_trade": true + "mpt_immutable_can_lock": true, + "mpt_immutable_require_auth": true, + "mpt_immutable_can_escrow": true, + "mpt_immutable_can_trade": true }}, {{ "mpt_issuance_id": "{}", @@ -1055,10 +1053,10 @@ TEST_F(RPCAccountMPTokenIssuancesHandlerTest, MutableFlags) "transfer_fee": {}, "mptoken_metadata": "{}", "mpt_can_transfer": true, - "mpt_can_mutate_can_transfer": true, - "mpt_can_mutate_can_clawback": true, - "mpt_can_mutate_metadata": true, - "mpt_can_mutate_transfer_fee": true + "mpt_immutable_can_transfer": true, + "mpt_immutable_can_clawback": true, + "mpt_immutable_metadata": true, + "mpt_immutable_transfer_fee": true }} ] }})JSON", @@ -1174,8 +1172,8 @@ struct SingleFlagTest { std::string expectedJsonKey; }; -struct AccountMPTokenIssuancesImmutableFlagsTest : RPCAccountMPTokenIssuancesHandlerTest, - WithParamInterface {}; +struct AccountMPTokenIssuancesLedgerFlagsTest : RPCAccountMPTokenIssuancesHandlerTest, + WithParamInterface {}; static auto generateSingleFlagTests() @@ -1200,13 +1198,13 @@ generateSingleFlagTests() } INSTANTIATE_TEST_SUITE_P( - RPCAccountMPTokenIssuancesImmutableFlagsGroup, - AccountMPTokenIssuancesImmutableFlagsTest, + RPCAccountMPTokenIssuancesLedgerFlagsGroup, + AccountMPTokenIssuancesLedgerFlagsTest, ValuesIn(generateSingleFlagTests()), tests::util::kNameGenerator ); -TEST_P(AccountMPTokenIssuancesImmutableFlagsTest, SingleFlag) +TEST_P(AccountMPTokenIssuancesLedgerFlagsTest, SingleFlag) { auto const testParams = GetParam(); @@ -1254,54 +1252,57 @@ TEST_P(AccountMPTokenIssuancesImmutableFlagsTest, SingleFlag) }); } -struct SingleMutableFlagTest { +struct SingleImmutableFlagTest { std::string testName; - uint32_t mutableFlag; + uint32_t immutableFlag; std::string expectedJsonKey; }; -struct AccountMPTokenIssuancesMutableFlagsTest : RPCAccountMPTokenIssuancesHandlerTest, - WithParamInterface {}; +struct AccountMPTokenIssuancesImmutableFlagsTest : RPCAccountMPTokenIssuancesHandlerTest, + WithParamInterface {}; static auto -generateSingleMutableFlagTests() +generateSingleImmutableFlagTests() { - return std::vector{ - {.testName = "CanMutateCanLock", - .mutableFlag = xrpl::lsmfMPTCanEnableCanLock, - .expectedJsonKey = "mpt_can_mutate_can_lock"}, - {.testName = "CanMutateRequireAuth", - .mutableFlag = xrpl::lsmfMPTCanEnableRequireAuth, - .expectedJsonKey = "mpt_can_mutate_require_auth"}, - {.testName = "CanMutateCanEscrow", - .mutableFlag = xrpl::lsmfMPTCanEnableCanEscrow, - .expectedJsonKey = "mpt_can_mutate_can_escrow"}, - {.testName = "CanMutateCanTrade", - .mutableFlag = xrpl::lsmfMPTCanEnableCanTrade, - .expectedJsonKey = "mpt_can_mutate_can_trade"}, - {.testName = "CanMutateCanTransfer", - .mutableFlag = xrpl::lsmfMPTCanEnableCanTransfer, - .expectedJsonKey = "mpt_can_mutate_can_transfer"}, - {.testName = "CanMutateCanClawback", - .mutableFlag = xrpl::lsmfMPTCanEnableCanClawback, - .expectedJsonKey = "mpt_can_mutate_can_clawback"}, - {.testName = "CanMutateMetadata", - .mutableFlag = xrpl::lsmfMPTCanMutateMetadata, - .expectedJsonKey = "mpt_can_mutate_metadata"}, - {.testName = "CanMutateTransferFee", - .mutableFlag = xrpl::lsmfMPTCanMutateTransferFee, - .expectedJsonKey = "mpt_can_mutate_transfer_fee"}, + return std::vector{ + {.testName = "ImmutableCanLock", + .immutableFlag = xrpl::lsifMPTCanLock, + .expectedJsonKey = "mpt_immutable_can_lock"}, + {.testName = "ImmutableRequireAuth", + .immutableFlag = xrpl::lsifMPTRequireAuth, + .expectedJsonKey = "mpt_immutable_require_auth"}, + {.testName = "ImmutableCanEscrow", + .immutableFlag = xrpl::lsifMPTCanEscrow, + .expectedJsonKey = "mpt_immutable_can_escrow"}, + {.testName = "ImmutableCanTrade", + .immutableFlag = xrpl::lsifMPTCanTrade, + .expectedJsonKey = "mpt_immutable_can_trade"}, + {.testName = "ImmutableCanTransfer", + .immutableFlag = xrpl::lsifMPTCanTransfer, + .expectedJsonKey = "mpt_immutable_can_transfer"}, + {.testName = "ImmutableCanClawback", + .immutableFlag = xrpl::lsifMPTCanClawback, + .expectedJsonKey = "mpt_immutable_can_clawback"}, + {.testName = "ImmutableCanHoldConfidentialBalance", + .immutableFlag = xrpl::lsifMPTCanHoldConfidentialBalance, + .expectedJsonKey = "mpt_immutable_can_hold_confidential_balance"}, + {.testName = "ImmutableMetadata", + .immutableFlag = xrpl::lsifMPTMetadata, + .expectedJsonKey = "mpt_immutable_metadata"}, + {.testName = "ImmutableTransferFee", + .immutableFlag = xrpl::lsifMPTTransferFee, + .expectedJsonKey = "mpt_immutable_transfer_fee"}, }; } INSTANTIATE_TEST_SUITE_P( - RPCAccountMPTokenIssuancesMutableFlagsGroup, - AccountMPTokenIssuancesMutableFlagsTest, - ValuesIn(generateSingleMutableFlagTests()), + RPCAccountMPTokenIssuancesImmutableFlagsGroup, + AccountMPTokenIssuancesImmutableFlagsTest, + ValuesIn(generateSingleImmutableFlagTests()), tests::util::kNameGenerator ); -TEST_P(AccountMPTokenIssuancesMutableFlagsTest, SingleMutableFlag) +TEST_P(AccountMPTokenIssuancesImmutableFlagsTest, SingleImmutableFlag) { auto const testParams = GetParam(); @@ -1330,7 +1331,7 @@ TEST_P(AccountMPTokenIssuancesMutableFlagsTest, SingleMutableFlag) std::nullopt, std::nullopt, std::nullopt, - testParams.mutableFlag + testParams.immutableFlag ) .getSerializer() .peekData()};