From 8ba79b53a1704abfe57a10fdde551af12df76da2 Mon Sep 17 00:00:00 2001 From: Shawn Xie Date: Mon, 30 Oct 2023 15:25:09 -0400 Subject: [PATCH] spec updatedates --- src/ripple/app/tx/impl/CFTokenIssuanceCreate.cpp | 8 +------- src/ripple/protocol/Indexes.h | 8 +++++++- src/ripple/protocol/SField.h | 1 - src/ripple/protocol/impl/Indexes.cpp | 4 ++-- src/ripple/protocol/impl/LedgerFormats.cpp | 1 - src/ripple/protocol/impl/SField.cpp | 1 - src/ripple/protocol/impl/TxFormats.cpp | 1 - src/test/app/CFToken_test.cpp | 4 ++-- src/test/jtx/cft.h | 2 +- src/test/jtx/impl/cft.cpp | 6 +----- 10 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/ripple/app/tx/impl/CFTokenIssuanceCreate.cpp b/src/ripple/app/tx/impl/CFTokenIssuanceCreate.cpp index e7de7345d84..63c5e50e3a1 100644 --- a/src/ripple/app/tx/impl/CFTokenIssuanceCreate.cpp +++ b/src/ripple/app/tx/impl/CFTokenIssuanceCreate.cpp @@ -61,11 +61,6 @@ CFTokenIssuanceCreate::preflight(PreflightContext const& ctx) TER CFTokenIssuanceCreate::preclaim(PreclaimContext const& ctx) { - // if a CFT issuance with this asset code already exists - error - if (ctx.view.exists( - keylet::cftIssuance(ctx.tx[sfAccount], ctx.tx[sfAssetCode]))) - return tecDUPLICATE; - return tesSUCCESS; } @@ -79,7 +74,7 @@ CFTokenIssuanceCreate::doApply() if (mPriorBalance < view().fees().accountReserve((*acct)[sfOwnerCount] + 1)) return tecINSUFFICIENT_RESERVE; - auto const cftID = keylet::cftIssuance(account_, ctx_.tx[sfAssetCode]); + auto const cftID = keylet::cftIssuance(account_, ctx_.tx.getSeqProxy().value()); // create the CFT { @@ -92,7 +87,6 @@ CFTokenIssuanceCreate::doApply() auto cft = std::make_shared(cftID); (*cft)[sfFlags] = ctx_.tx.getFlags() & ~tfUniversalMask; (*cft)[sfIssuer] = account_; - (*cft)[sfAssetCode] = ctx_.tx[sfAssetCode]; (*cft)[sfOutstandingAmount] = 0; (*cft)[sfLockedAmount] = 0; (*cft)[sfOwnerNode] = *ownerNode; diff --git a/src/ripple/protocol/Indexes.h b/src/ripple/protocol/Indexes.h index 919a1f372d0..9ab04762be9 100644 --- a/src/ripple/protocol/Indexes.h +++ b/src/ripple/protocol/Indexes.h @@ -284,7 +284,13 @@ Keylet did(AccountID const& account) noexcept; Keylet -cftIssuance(AccountID const& issuer, uint160 const& asset) noexcept; +cftIssuance(AccountID const& issuer, std::uint32_t seq) noexcept; + +inline Keylet +cftIssuance(uint256 const& issuance) +{ + return {ltCFTOKEN_ISSUANCE, issuance}; +} } // namespace keylet // Everything below is deprecated and should be removed in favor of keylets: diff --git a/src/ripple/protocol/SField.h b/src/ripple/protocol/SField.h index 79552723457..686fcbdf0e6 100644 --- a/src/ripple/protocol/SField.h +++ b/src/ripple/protocol/SField.h @@ -472,7 +472,6 @@ extern SF_UINT160 const sfTakerPaysCurrency; extern SF_UINT160 const sfTakerPaysIssuer; extern SF_UINT160 const sfTakerGetsCurrency; extern SF_UINT160 const sfTakerGetsIssuer; -extern SF_UINT160 const sfAssetCode; // 256-bit (common) extern SF_UINT256 const sfLedgerHash; diff --git a/src/ripple/protocol/impl/Indexes.cpp b/src/ripple/protocol/impl/Indexes.cpp index 3fb6dc910a1..efbb495f62a 100644 --- a/src/ripple/protocol/impl/Indexes.cpp +++ b/src/ripple/protocol/impl/Indexes.cpp @@ -446,11 +446,11 @@ did(AccountID const& account) noexcept } Keylet -cftIssuance(AccountID const& issuer, uint160 const& asset) noexcept +cftIssuance(AccountID const& issuer, std::uint32_t seq) noexcept { return { ltCFTOKEN_ISSUANCE, - indexHash(LedgerNameSpace::CFTOKEN_ISSUANCE, issuer, asset)}; + indexHash(LedgerNameSpace::CFTOKEN_ISSUANCE, issuer, seq)}; } } // namespace keylet diff --git a/src/ripple/protocol/impl/LedgerFormats.cpp b/src/ripple/protocol/impl/LedgerFormats.cpp index 88f939b5128..7915defe4c0 100644 --- a/src/ripple/protocol/impl/LedgerFormats.cpp +++ b/src/ripple/protocol/impl/LedgerFormats.cpp @@ -346,7 +346,6 @@ LedgerFormats::LedgerFormats() {sfIssuer, soeREQUIRED}, {sfTransferFee, soeDEFAULT}, {sfOwnerNode, soeREQUIRED}, - {sfAssetCode, soeREQUIRED}, {sfAssetScale, soeDEFAULT}, {sfMaximumAmount, soeOPTIONAL}, {sfOutstandingAmount, soeREQUIRED}, diff --git a/src/ripple/protocol/impl/SField.cpp b/src/ripple/protocol/impl/SField.cpp index 35ff7364b28..2d5780cacb3 100644 --- a/src/ripple/protocol/impl/SField.cpp +++ b/src/ripple/protocol/impl/SField.cpp @@ -201,7 +201,6 @@ CONSTRUCT_TYPED_SFIELD(sfTakerPaysCurrency, "TakerPaysCurrency", UINT160, CONSTRUCT_TYPED_SFIELD(sfTakerPaysIssuer, "TakerPaysIssuer", UINT160, 2); CONSTRUCT_TYPED_SFIELD(sfTakerGetsCurrency, "TakerGetsCurrency", UINT160, 3); CONSTRUCT_TYPED_SFIELD(sfTakerGetsIssuer, "TakerGetsIssuer", UINT160, 4); -CONSTRUCT_TYPED_SFIELD(sfAssetCode, "AssetCode", UINT160, 5); // 256-bit (common) CONSTRUCT_TYPED_SFIELD(sfLedgerHash, "LedgerHash", UINT256, 1); diff --git a/src/ripple/protocol/impl/TxFormats.cpp b/src/ripple/protocol/impl/TxFormats.cpp index 21356387247..8f41baecc47 100644 --- a/src/ripple/protocol/impl/TxFormats.cpp +++ b/src/ripple/protocol/impl/TxFormats.cpp @@ -487,7 +487,6 @@ TxFormats::TxFormats() add(jss::CFTokenIssuanceCreate, ttCFTOKEN_ISSUANCE_CREATE, { - {sfAssetCode, soeREQUIRED}, {sfAssetScale, soeOPTIONAL}, {sfTransferFee, soeOPTIONAL}, {sfMaximumAmount, soeOPTIONAL}, diff --git a/src/test/app/CFToken_test.cpp b/src/test/app/CFToken_test.cpp index 2f6e8c3880d..e292880de3b 100644 --- a/src/test/app/CFToken_test.cpp +++ b/src/test/app/CFToken_test.cpp @@ -39,7 +39,7 @@ class CFToken_test : public beast::unit_test::suite BEAST_EXPECT(env.ownerCount(master) == 0); - env(cft::create(master, "0158415500000000C1F76FF6ECB0BAC600000000"), + env(cft::create(master), ter(temDISABLED)); env.close(); @@ -54,7 +54,7 @@ class CFToken_test : public beast::unit_test::suite BEAST_EXPECT(env.ownerCount(master) == 0); env(cft::create( - master, "0158415500000000C1F76FF6ECB0BAC600000000")); + master)); env.close(); BEAST_EXPECT(env.ownerCount(master) == 1); diff --git a/src/test/jtx/cft.h b/src/test/jtx/cft.h index 7caf473f507..7e494271f15 100644 --- a/src/test/jtx/cft.h +++ b/src/test/jtx/cft.h @@ -32,7 +32,7 @@ namespace cft { /** Issue a CFT. */ Json::Value -create(jtx::Account const& account, std::string const& asset); +create(jtx::Account const& account); } // namespace cft diff --git a/src/test/jtx/impl/cft.cpp b/src/test/jtx/impl/cft.cpp index 856b8a86a7c..666f5694a4a 100644 --- a/src/test/jtx/impl/cft.cpp +++ b/src/test/jtx/impl/cft.cpp @@ -28,14 +28,10 @@ namespace jtx { namespace cft { Json::Value -create(jtx::Account const& account, std::string const& asset) +create(jtx::Account const& account) { - auto const assetCurrency = to_currency(asset); - assert(assetCurrency != noCurrency()); - Json::Value jv; jv[sfAccount.jsonName] = account.human(); - jv[sfAssetCode.jsonName] = ripple::to_string(assetCurrency); jv[sfTransactionType.jsonName] = jss::CFTokenIssuanceCreate; return jv; }