From 06a8a61b23e8f41f3f6b23bcf3daa74f1e7d9482 Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Fri, 31 Jan 2025 19:51:01 +0000 Subject: [PATCH] WIP trying to fix MSVC compilation error --- .../app/tx/detail/MPTokenIssuanceCreate.cpp | 57 +++++++++++-------- .../app/tx/detail/MPTokenIssuanceCreate.h | 24 ++++---- .../app/tx/detail/MPTokenIssuanceDestroy.cpp | 14 ++--- .../app/tx/detail/MPTokenIssuanceDestroy.h | 9 +-- src/xrpld/app/tx/detail/VaultCreate.cpp | 15 ++--- src/xrpld/app/tx/detail/VaultDelete.cpp | 5 +- 6 files changed, 60 insertions(+), 64 deletions(-) diff --git a/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp b/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp index 8e0d1ef6c9..bf89c44ad4 100644 --- a/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp +++ b/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp @@ -71,46 +71,53 @@ Expected MPTokenIssuanceCreate::create( ApplyView& view, beast::Journal journal, - MPTCreateArgs const& args) + AccountID const& account, + std::uint32_t sequence, + std::uint32_t flags, + std::optional maxAmount, + std::optional assetScale, + std::optional transferFee, + std::optional const& metadata, + std::optional domainId) { - auto const acct = view.peek(keylet::account(args.account)); + auto const acct = view.peek(keylet::account(account)); if (!acct) return Unexpected(tecINTERNAL); - auto mptId = makeMptID(args.sequence, args.account); + auto mptId = makeMptID(sequence, account); auto const mptIssuanceKeylet = keylet::mptIssuance(mptId); // create the MPTokenIssuance { auto const ownerNode = view.dirInsert( - keylet::ownerDir(args.account), + keylet::ownerDir(account), mptIssuanceKeylet, - describeOwnerDir(args.account)); + describeOwnerDir(account)); if (!ownerNode) return Unexpected(tecDIR_FULL); auto mptIssuance = std::make_shared(mptIssuanceKeylet); - (*mptIssuance)[sfFlags] = args.flags & ~tfUniversal; - (*mptIssuance)[sfIssuer] = args.account; + (*mptIssuance)[sfFlags] = flags & ~tfUniversal; + (*mptIssuance)[sfIssuer] = account; (*mptIssuance)[sfOutstandingAmount] = 0; (*mptIssuance)[sfOwnerNode] = *ownerNode; - (*mptIssuance)[sfSequence] = args.sequence; + (*mptIssuance)[sfSequence] = sequence; - if (args.maxAmount) - (*mptIssuance)[sfMaximumAmount] = *args.maxAmount; + if (maxAmount) + (*mptIssuance)[sfMaximumAmount] = *maxAmount; - if (args.assetScale) - (*mptIssuance)[sfAssetScale] = *args.assetScale; + if (assetScale) + (*mptIssuance)[sfAssetScale] = *assetScale; - if (args.transferFee) - (*mptIssuance)[sfTransferFee] = *args.transferFee; + if (transferFee) + (*mptIssuance)[sfTransferFee] = *transferFee; - if (args.metadata) - (*mptIssuance)[sfMPTokenMetadata] = *args.metadata; + if (metadata) + (*mptIssuance)[sfMPTokenMetadata] = *metadata; - if (args.domainId) - (*mptIssuance)[sfDomainID] = *args.domainId; + if (domainId) + (*mptIssuance)[sfDomainID] = *domainId; view.insert(mptIssuance); } @@ -133,13 +140,13 @@ MPTokenIssuanceCreate::doApply() auto result = create( view(), j_, - {.account = account_, - .sequence = tx.getSeqProxy().value(), - .flags = tx.getFlags(), - .maxAmount = tx[~sfMaximumAmount], - .assetScale = tx[~sfAssetScale], - .transferFee = tx[~sfTransferFee], - .metadata = tx[~sfMPTokenMetadata]}); + account_, + tx.getSeqProxy().value(), + tx.getFlags(), + tx[~sfMaximumAmount], + tx[~sfAssetScale], + tx[~sfTransferFee], + tx[~sfMPTokenMetadata]); return result ? tesSUCCESS : result.error(); } diff --git a/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.h b/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.h index a91490e6a2..3a60543db0 100644 --- a/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.h +++ b/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.h @@ -26,18 +26,6 @@ namespace ripple { -struct MPTCreateArgs -{ - AccountID const& account; - std::uint32_t sequence; - std::uint32_t flags = 0; - std::optional maxAmount{}; - std::optional assetScale{}; - std::optional transferFee{}; - std::optional const& metadata{}; - std::optional domainId{}; -}; - class MPTokenIssuanceCreate : public Transactor { public: @@ -54,7 +42,17 @@ public: doApply() override; static Expected - create(ApplyView& view, beast::Journal journal, MPTCreateArgs const& args); + create( + ApplyView& view, + beast::Journal journal, + AccountID const& account, + std::uint32_t sequence, + std::uint32_t flags = 0, + std::optional maxAmount = {}, + std::optional assetScale = {}, + std::optional transferFee = {}, + std::optional const& metadata = {}, + std::optional domainId = {}); }; } // namespace ripple diff --git a/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp b/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp index 0e642fca13..f37f5f5c1d 100644 --- a/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp +++ b/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp @@ -66,15 +66,16 @@ TER MPTokenIssuanceDestroy::destroy( ApplyView& view, beast::Journal journal, - MPTDestroyArgs const& args) + AccountID const account, + MPTID issuanceID) { - auto const mpt = view.peek(keylet::mptIssuance(args.issuanceID)); + auto const mpt = view.peek(keylet::mptIssuance(issuanceID)); if (!mpt) return tecOBJECT_NOT_FOUND; - if ((*mpt)[sfIssuer] != args.account) + if ((*mpt)[sfIssuer] != account) return tecNO_PERMISSION; - auto const& issuer = args.account; + auto const& issuer = account; if ((*mpt)[~sfOutstandingAmount] != 0) return tecHAS_OBLIGATIONS; @@ -92,10 +93,7 @@ TER MPTokenIssuanceDestroy::doApply() { return destroy( - view(), - j_, - {.account = ctx_.tx[sfAccount], - .issuanceID = ctx_.tx[sfMPTokenIssuanceID]}); + view(), j_, ctx_.tx[sfAccount], ctx_.tx[sfMPTokenIssuanceID]); } } // namespace ripple diff --git a/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.h b/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.h index 278f77b7b5..66214b87bb 100644 --- a/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.h +++ b/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.h @@ -24,12 +24,6 @@ namespace ripple { -struct MPTDestroyArgs -{ - AccountID const& account; - MPTID issuanceID; -}; - class MPTokenIssuanceDestroy : public Transactor { public: @@ -49,7 +43,8 @@ public: destroy( ApplyView& view, beast::Journal journal, - MPTDestroyArgs const& args); + AccountID const account, + MPTID issuanceID); TER doApply() override; diff --git a/src/xrpld/app/tx/detail/VaultCreate.cpp b/src/xrpld/app/tx/detail/VaultCreate.cpp index 65876d6cb4..837e81b956 100644 --- a/src/xrpld/app/tx/detail/VaultCreate.cpp +++ b/src/xrpld/app/tx/detail/VaultCreate.cpp @@ -141,13 +141,14 @@ VaultCreate::doApply() auto maybeShare = MPTokenIssuanceCreate::create( view(), j_, - { - .account = pseudoId, - .sequence = 1, - .flags = mptFlags, - .metadata = tx[~sfMPTokenMetadata], - .domainId = tx[~sfDomainID], - }); + pseudoId, + 1, + mptFlags, + {}, + {}, + {}, + tx[~sfMPTokenMetadata], + tx[~sfDomainID]); if (!maybeShare) return maybeShare.error(); auto& share = *maybeShare; diff --git a/src/xrpld/app/tx/detail/VaultDelete.cpp b/src/xrpld/app/tx/detail/VaultDelete.cpp index b999c277cf..e920126380 100644 --- a/src/xrpld/app/tx/detail/VaultDelete.cpp +++ b/src/xrpld/app/tx/detail/VaultDelete.cpp @@ -69,10 +69,7 @@ VaultDelete::doApply() // Destroy the share issuance. if (auto ter = MPTokenIssuanceDestroy::destroy( - view(), - j_, - {.account = vault->at(sfAccount), - .issuanceID = vault->at(sfMPTokenIssuanceID)})) + view(), j_, vault->at(sfAccount), vault->at(sfMPTokenIssuanceID))) return ter; // The psuedo-account's directory should have been deleted already.