From b978001a89f4c0aba0d3bfef05cbf9986f42b116 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:21:42 -0400 Subject: [PATCH 01/10] rename keylet::line -> keylet::rippleState --- include/xrpl/ledger/helpers/EscrowHelpers.h | 2 +- include/xrpl/protocol/Indexes.h | 4 +- .../xrpl/protocol/detail/ledger_entries.macro | 2 +- include/xrpl/tx/paths/detail/StepChecks.h | 6 +- src/libxrpl/ledger/helpers/AMMHelpers.cpp | 4 +- src/libxrpl/ledger/helpers/NFTokenHelpers.cpp | 9 +-- .../ledger/helpers/RippleStateHelpers.cpp | 22 +++---- src/libxrpl/ledger/helpers/TokenHelpers.cpp | 4 +- src/libxrpl/protocol/Indexes.cpp | 4 +- src/libxrpl/tx/invariants/VaultInvariant.cpp | 3 +- src/libxrpl/tx/paths/BookStep.cpp | 2 +- src/libxrpl/tx/paths/DirectStep.cpp | 4 +- src/libxrpl/tx/paths/XRPEndpointStep.cpp | 2 +- .../tx/transactors/check/CheckCash.cpp | 4 +- .../tx/transactors/check/CheckCreate.cpp | 4 +- src/libxrpl/tx/transactors/dex/AMMCreate.cpp | 5 +- src/libxrpl/tx/transactors/dex/AMMDeposit.cpp | 5 +- .../tx/transactors/dex/AMMWithdraw.cpp | 2 +- .../tx/transactors/dex/OfferCreate.cpp | 5 +- .../tx/transactors/escrow/EscrowCreate.cpp | 2 +- .../tx/transactors/nft/NFTokenAcceptOffer.cpp | 2 +- src/libxrpl/tx/transactors/token/Clawback.cpp | 2 +- src/libxrpl/tx/transactors/token/TrustSet.cpp | 14 ++-- src/test/app/Check_test.cpp | 64 +++++++++---------- src/test/app/Clawback_test.cpp | 2 +- src/test/app/Flow_test.cpp | 2 +- src/test/app/Invariants_test.cpp | 27 ++++---- src/test/app/Loan_test.cpp | 9 +-- src/test/app/NFTokenAuth_test.cpp | 12 ++-- src/test/app/Offer_test.cpp | 10 +-- src/test/app/Path_test.cpp | 12 ++-- src/test/app/PayStrand_test.cpp | 4 +- src/test/app/SetAuth_test.cpp | 2 +- src/test/app/Vault_test.cpp | 4 +- src/test/jtx/impl/Env.cpp | 4 +- src/test/jtx/impl/TestHelpers.cpp | 4 +- src/test/jtx/impl/balance.cpp | 2 +- src/tests/libxrpl/helpers/TxTest.cpp | 2 +- src/xrpld/rpc/detail/Pathfinder.cpp | 2 +- src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp | 2 +- 40 files changed, 147 insertions(+), 130 deletions(-) diff --git a/include/xrpl/ledger/helpers/EscrowHelpers.h b/include/xrpl/ledger/helpers/EscrowHelpers.h index b44601594da..06a2ee0a90a 100644 --- a/include/xrpl/ledger/helpers/EscrowHelpers.h +++ b/include/xrpl/ledger/helpers/EscrowHelpers.h @@ -42,7 +42,7 @@ escrowUnlockApplyHelper( beast::Journal journal) { Issue const& issue = amount.get(); - Keylet const trustLineKey = keylet::line(receiver, issue); + Keylet const trustLineKey = keylet::rippleState(receiver, issue); bool const recvLow = issuer > receiver; bool const senderIssuer = issuer == sender; bool const receiverIssuer = issuer == receiver; diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index f4dd5e68160..681faab7a33 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -93,10 +93,10 @@ static book_t const book{}; */ /** @{ */ Keylet -line(AccountID const& id0, AccountID const& id1, Currency const& currency) noexcept; +rippleState(AccountID const& id0, AccountID const& id1, Currency const& currency) noexcept; inline Keylet -line(AccountID const& id, Issue const& issue) noexcept +rippleState(AccountID const& id, Issue const& issue) noexcept { return line(id, issue.account, issue.currency); } diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 93cef79ef77..20289a42aa7 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -272,7 +272,7 @@ LEDGER_ENTRY(ltXCHAIN_OWNED_CLAIM_ID, 0x0071, XChainOwnedClaimID, xchain_owned_c @note Per Vinnie Falco this should be renamed to ltTRUST_LINE - \sa keylet::line + \sa keylet::rippleState */ LEDGER_ENTRY(ltRIPPLE_STATE, 0x0072, RippleState, state, ({ {sfBalance, soeREQUIRED}, diff --git a/include/xrpl/tx/paths/detail/StepChecks.h b/include/xrpl/tx/paths/detail/StepChecks.h index a1e64907811..9cb19f4071a 100644 --- a/include/xrpl/tx/paths/detail/StepChecks.h +++ b/include/xrpl/tx/paths/detail/StepChecks.h @@ -27,7 +27,7 @@ checkFreeze( } } - if (auto sle = view.read(keylet::line(src, dst, currency))) + if (auto sle = view.read(keylet::rippleState(src, dst, currency))) { if (sle->isFlag((dst > src) ? lsfHighFreeze : lsfLowFreeze)) { @@ -71,8 +71,8 @@ checkNoRipple( beast::Journal j) { // fetch the ripple lines into and out of this node - auto sleIn = view.read(keylet::line(prev, cur, currency)); - auto sleOut = view.read(keylet::line(cur, next, currency)); + auto sleIn = view.read(keylet::rippleState(prev, cur, currency)); + auto sleOut = view.read(keylet::rippleState(cur, next, currency)); if (!sleIn || !sleOut) return terNO_LINE; diff --git a/src/libxrpl/ledger/helpers/AMMHelpers.cpp b/src/libxrpl/ledger/helpers/AMMHelpers.cpp index cc91dcaaf4f..87e9fe3325c 100644 --- a/src/libxrpl/ledger/helpers/AMMHelpers.cpp +++ b/src/libxrpl/ledger/helpers/AMMHelpers.cpp @@ -519,7 +519,7 @@ ammLPHolds( auto const currency = ammLPTCurrency(asset1, asset2); STAmount amount; - auto const sle = view.read(keylet::line(lpAccount, ammAccount, currency)); + auto const sle = view.read(keylet::rippleState(lpAccount, ammAccount, currency)); if (!sle) { amount.clear(Issue{currency, ammAccount}); @@ -611,7 +611,7 @@ ammAccountHolds(ReadView const& view, AccountID const& ammAccountID, Asset const } else if ( auto const sle = - view.read(keylet::line(ammAccountID, issue.account, issue.currency)); + view.read(keylet::rippleState(ammAccountID, issue.account, issue.currency)); sle && !isFrozen(view, ammAccountID, issue.currency, issue.account)) { STAmount amount = (*sle)[sfBalance]; diff --git a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp index f57294a855f..ea2d025b008 100644 --- a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp @@ -842,10 +842,10 @@ tokenOfferCreatePreclaim( if (view.rules().enabled(featureNFTokenMintOffer)) { if (nftIssuer != amount.getIssuer() && - !view.read(keylet::line(nftIssuer, amount.get()))) + !view.read(keylet::rippleState(nftIssuer, amount.get()))) return tecNO_LINE; } - else if (!view.exists(keylet::line(nftIssuer, amount.get()))) + else if (!view.exists(keylet::rippleState(nftIssuer, amount.get()))) { return tecNO_LINE; } @@ -1023,7 +1023,8 @@ checkTrustlineAuthorized( if (issuerAccount->isFlag(lsfRequireAuth)) { - auto const trustLine = view.read(keylet::line(id, issue.account, issue.currency)); + auto const trustLine = + view.read(keylet::rippleState(id, issue.account, issue.currency)); if (!trustLine) { @@ -1073,7 +1074,7 @@ checkTrustlineDeepFrozen( return tesSUCCESS; } - auto const trustLine = view.read(keylet::line(id, issue.account, issue.currency)); + auto const trustLine = view.read(keylet::rippleState(id, issue.account, issue.currency)); if (!trustLine) { diff --git a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp index f5a5c010602..97c04d766b7 100644 --- a/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp +++ b/src/libxrpl/ledger/helpers/RippleStateHelpers.cpp @@ -47,7 +47,7 @@ creditLimit( { STAmount result(Issue{currency, account}); - auto sleRippleState = view.read(keylet::line(account, issuer, currency)); + auto sleRippleState = view.read(keylet::rippleState(account, issuer, currency)); if (sleRippleState) { @@ -78,7 +78,7 @@ creditBalance( { STAmount result(Issue{currency, account}); - auto sleRippleState = view.read(keylet::line(account, issuer, currency)); + auto sleRippleState = view.read(keylet::rippleState(account, issuer, currency)); if (sleRippleState) { @@ -114,7 +114,7 @@ isIndividualFrozen( if (issuer != account) { // Check if the issuer froze the line - auto const sle = view.read(keylet::line(account, issuer, currency)); + auto const sle = view.read(keylet::rippleState(account, issuer, currency)); if (sle && sle->isFlag((issuer > account) ? lsfHighFreeze : lsfLowFreeze)) return true; } @@ -138,7 +138,7 @@ isFrozen( if (issuer != account) { // Check if the issuer froze the line - sle = view.read(keylet::line(account, issuer, currency)); + sle = view.read(keylet::rippleState(account, issuer, currency)); if (sle && sle->isFlag((issuer > account) ? lsfHighFreeze : lsfLowFreeze)) return true; } @@ -162,7 +162,7 @@ isDeepFrozen( return false; } - auto const sle = view.read(keylet::line(account, issuer, currency)); + auto const sle = view.read(keylet::rippleState(account, issuer, currency)); if (!sle) { return false; @@ -401,7 +401,7 @@ issueIOU( bool const bSenderHigh = issue.account > account; - auto const index = keylet::line(issue.account, account, issue.currency); + auto const index = keylet::rippleState(issue.account, account, issue.currency); if (auto state = view.peek(index)) { @@ -495,7 +495,7 @@ redeemIOU( bool const bSenderHigh = account > issue.account; - if (auto state = view.peek(keylet::line(account, issue.account, issue.currency))) + if (auto state = view.peek(keylet::rippleState(account, issue.account, issue.currency))) { STAmount final_balance = state->getFieldAmount(sfBalance); @@ -556,7 +556,7 @@ requireAuth(ReadView const& view, Issue const& issue, AccountID const& account, if (isXRP(issue) || issue.account == account) return tesSUCCESS; - auto const trustLine = view.read(keylet::line(account, issue.account, issue.currency)); + auto const trustLine = view.read(keylet::rippleState(account, issue.account, issue.currency)); // If account has no line, and this is a strong check, fail if (!trustLine && authType == AuthType::StrongAuth) return tecNO_LINE; @@ -595,7 +595,7 @@ canTransfer(ReadView const& view, Issue const& issue, AccountID const& from, Acc auto const isRippleDisabled = [&](AccountID account) -> bool { // Line might not exist, but some transfers can create it. If this // is the case, just check the default ripple on the issuer account. - auto const line = view.read(keylet::line(account, issue)); + auto const line = view.read(keylet::rippleState(account, issue)); if (line) { bool const issuerHigh = issuerId > account; @@ -637,7 +637,7 @@ addEmptyHolding( auto const& srcId = issuerId; auto const& dstId = accountID; auto const high = srcId > dstId; - auto const index = keylet::line(srcId, dstId, currency); + auto const index = keylet::rippleState(srcId, dstId, currency); auto const sleSrc = view.peek(keylet::account(srcId)); auto const sleDst = view.peek(keylet::account(dstId)); if (!sleDst || !sleSrc) @@ -695,7 +695,7 @@ removeEmptyHolding( // If the account is the issuer, then no line should exist. Check anyway. // If a line does exist, it will get deleted. If not, return success. bool const accountIsIssuer = accountID == issue.account; - auto const line = view.peek(keylet::line(accountID, issue)); + auto const line = view.peek(keylet::rippleState(accountID, issue)); if (!line) return accountIsIssuer ? (TER)tesSUCCESS : (TER)tecOBJECT_NOT_FOUND; if (!accountIsIssuer && line->at(sfBalance)->iou() != beast::zero) diff --git a/src/libxrpl/ledger/helpers/TokenHelpers.cpp b/src/libxrpl/ledger/helpers/TokenHelpers.cpp index 15b3dc0953a..309d86507a6 100644 --- a/src/libxrpl/ledger/helpers/TokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/TokenHelpers.cpp @@ -158,7 +158,7 @@ getLineIfUsable( FreezeHandling zeroIfFrozen, beast::Journal j) { - auto sle = view.read(keylet::line(account, issuer, currency)); + auto sle = view.read(keylet::rippleState(account, issuer, currency)); if (!sle) { @@ -541,7 +541,7 @@ directSendNoFeeIOU( XRPL_ASSERT(uSenderID != uReceiverID, "xrpl::directSendNoFeeIOU : sender is not receiver"); bool const bSenderHigh = uSenderID > uReceiverID; - auto const index = keylet::line(uSenderID, uReceiverID, currency); + auto const index = keylet::rippleState(uSenderID, uReceiverID, currency); XRPL_ASSERT( !isXRP(uSenderID) && uSenderID != noAccount(), diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 4bbf2d6f1f2..093fd4cd189 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -239,12 +239,12 @@ book_t::operator()(Book const& b) const } Keylet -line(AccountID const& id0, AccountID const& id1, Currency const& currency) noexcept +rippleState(AccountID const& id0, AccountID const& id1, Currency const& currency) noexcept { // There is code in TrustSet that calls us with id0 == id1, to allow users // to locate and delete such "weird" trustlines. If we remove that code, we // could enable this assert: - // XRPL_ASSERT(id0 != id1, "xrpl::keylet::line : accounts must be + // XRPL_ASSERT(id0 != id1, "xrpl::keylet::rippleState : accounts must be // different"); // A trust line is shared between two accounts; while we typically think diff --git a/src/libxrpl/tx/invariants/VaultInvariant.cpp b/src/libxrpl/tx/invariants/VaultInvariant.cpp index c0d082e14ea..1281cdd58ae 100644 --- a/src/libxrpl/tx/invariants/VaultInvariant.cpp +++ b/src/libxrpl/tx/invariants/VaultInvariant.cpp @@ -461,7 +461,8 @@ ValidVault::finalize( if (isXRP(issue)) return get(deltas_.find(keylet::account(id).key)); return get( - deltas_.find(keylet::line(id, issue).key), id > issue.getIssuer() ? -1 : 1); + deltas_.find(keylet::rippleState(id, issue).key), + id > issue.getIssuer() ? -1 : 1); } else if constexpr (std::is_same_v) { diff --git a/src/libxrpl/tx/paths/BookStep.cpp b/src/libxrpl/tx/paths/BookStep.cpp index 480a702dc98..98cf7c42fe4 100644 --- a/src/libxrpl/tx/paths/BookStep.cpp +++ b/src/libxrpl/tx/paths/BookStep.cpp @@ -1354,7 +1354,7 @@ BookStep::check(StrandContext const& ctx) const auto const err = book_.in.visit( [&](Issue const& issue) -> std::optional { - auto sle = view.read(keylet::line(*prev, cur, issue.currency)); + auto sle = view.read(keylet::rippleState(*prev, cur, issue.currency)); if (!sle) return terNO_LINE; if (((*sle)[sfFlags] & ((cur > *prev) ? lsfHighNoRipple : lsfLowNoRipple)) != diff --git a/src/libxrpl/tx/paths/DirectStep.cpp b/src/libxrpl/tx/paths/DirectStep.cpp index c2ad818b73f..56c404e6c25 100644 --- a/src/libxrpl/tx/paths/DirectStep.cpp +++ b/src/libxrpl/tx/paths/DirectStep.cpp @@ -344,7 +344,7 @@ DirectIPaymentStep::quality(ReadView const& sb, QualityDirection qDir) const if (src_ == dst_) return QUALITY_ONE; - auto const sle = sb.read(keylet::line(dst_, src_, currency_)); + auto const sle = sb.read(keylet::rippleState(dst_, src_, currency_)); if (!sle) return QUALITY_ONE; @@ -420,7 +420,7 @@ DirectIPaymentStep::check(StrandContext const& ctx, std::shared_ptr c // Since this is a payment a trust line must be present. Perform all // trust line related checks. { - auto const sleLine = ctx.view.read(keylet::line(src_, dst_, currency_)); + auto const sleLine = ctx.view.read(keylet::rippleState(src_, dst_, currency_)); if (!sleLine) { JLOG(j_.trace()) << "DirectStepI: No credit line. " << *this; diff --git a/src/libxrpl/tx/paths/XRPEndpointStep.cpp b/src/libxrpl/tx/paths/XRPEndpointStep.cpp index 2310f72f34e..7f361c1fc29 100644 --- a/src/libxrpl/tx/paths/XRPEndpointStep.cpp +++ b/src/libxrpl/tx/paths/XRPEndpointStep.cpp @@ -204,7 +204,7 @@ class XRPEndpointOfferCrossingStep : public XRPEndpointStep TER { Currency const currency{issue.currency}; auto const sleTrustLine = - ctx.view.read(keylet::line(dstId, issuerId, currency)); + ctx.view.read(keylet::rippleState(dstId, issuerId, currency)); auto const sleIssuer = ctx.view.read(keylet::account(issuerId)); if (!sleIssuer) @@ -407,7 +407,7 @@ CheckCash::doApply() // If a trust line does not exist yet create one. Issue const& trustLineIssue = issue; AccountID const truster = deliverIssuer == account_ ? srcId : account_; - trustLineKey = keylet::line(truster, trustLineIssue); + trustLineKey = keylet::rippleState(truster, trustLineIssue); destLow = deliverIssuer > account_; if (!psb.exists(*trustLineKey)) diff --git a/src/libxrpl/tx/transactors/check/CheckCreate.cpp b/src/libxrpl/tx/transactors/check/CheckCreate.cpp index 6a138196158..db968bfc424 100644 --- a/src/libxrpl/tx/transactors/check/CheckCreate.cpp +++ b/src/libxrpl/tx/transactors/check/CheckCreate.cpp @@ -129,7 +129,7 @@ CheckCreate::preclaim(PreclaimContext const& ctx) { // Check if the issuer froze the line auto const sleTrust = - ctx.view.read(keylet::line(srcId, issuerId, issue.currency)); + ctx.view.read(keylet::rippleState(srcId, issuerId, issue.currency)); if (sleTrust && sleTrust->isFlag((issuerId > srcId) ? lsfHighFreeze : lsfLowFreeze)) { @@ -141,7 +141,7 @@ CheckCreate::preclaim(PreclaimContext const& ctx) { // Check if dst froze the line. auto const sleTrust = - ctx.view.read(keylet::line(issuerId, dstId, issue.currency)); + ctx.view.read(keylet::rippleState(issuerId, dstId, issue.currency)); if (sleTrust && sleTrust->isFlag((dstId > issuerId) ? lsfHighFreeze : lsfLowFreeze)) { diff --git a/src/libxrpl/tx/transactors/dex/AMMCreate.cpp b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp index 47363531d40..20b224a774c 100644 --- a/src/libxrpl/tx/transactors/dex/AMMCreate.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp @@ -256,7 +256,7 @@ applyCreate(ApplyContext& ctx_, Sandbox& sb, AccountID const& account_, beast::J // LP Token already exists. (should not happen) auto const lptIss = ammLPTIssue(amount.asset(), amount2.asset(), accountId); - if (sb.read(keylet::line(accountId, lptIss))) + if (sb.read(keylet::rippleState(accountId, lptIss))) { JLOG(j_.error()) << "AMM Instance: LP Token already exists."; return {tecDUPLICATE, false}; @@ -334,7 +334,8 @@ applyCreate(ApplyContext& ctx_, Sandbox& sb, AccountID const& account_, beast::J // Set AMM flag on AMM trustline if (!isXRP(amount)) { - SLE::pointer const sleRippleState = sb.peek(keylet::line(accountId, issue)); + SLE::pointer const sleRippleState = + sb.peek(keylet::rippleState(accountId, issue)); if (!sleRippleState) { return tecINTERNAL; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp b/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp index 344e3535dae..c206932258c 100644 --- a/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMDeposit.cpp @@ -235,7 +235,7 @@ AMMDeposit::preclaim(PreclaimContext const& ctx) auto const lpIssue = (*ammSle)[sfLPTokenBalance].get(); // Adjust the reserve if LP doesn't have LPToken trustline auto const sle = - ctx.view.read(keylet::line(accountID, lpIssue.account, lpIssue.currency)); + ctx.view.read(keylet::rippleState(accountID, lpIssue.account, lpIssue.currency)); if (xrpLiquid(ctx.view, accountID, !sle, ctx.j) >= deposit) return TER(tesSUCCESS); if (sle) @@ -519,7 +519,8 @@ AMMDeposit::deposit( { auto const& lpIssue = lpTokensDeposit.get(); // Adjust the reserve if LP doesn't have LPToken trustline - auto const sle = view.read(keylet::line(account_, lpIssue.account, lpIssue.currency)); + auto const sle = + view.read(keylet::rippleState(account_, lpIssue.account, lpIssue.currency)); if (xrpLiquid(view, account_, !sle, j_) >= depositAmount) return tesSUCCESS; } diff --git a/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp index 6ab78f9cb96..bcf5fddea15 100644 --- a/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp @@ -611,7 +611,7 @@ AMMWithdraw::withdraw( bool const isIssue = asset.holds(); bool const assetNotExists = [&] { if (isIssue) - return !view.exists(keylet::line(account, asset.get())); + return !view.exists(keylet::rippleState(account, asset.get())); auto const issuanceKey = keylet::mptIssuance(asset.get()); mptokenKey = keylet::mptoken(issuanceKey.key, account); if (!view.exists(*mptokenKey)) diff --git a/src/libxrpl/tx/transactors/dex/OfferCreate.cpp b/src/libxrpl/tx/transactors/dex/OfferCreate.cpp index 1ce48145f31..63bc8f87b9b 100644 --- a/src/libxrpl/tx/transactors/dex/OfferCreate.cpp +++ b/src/libxrpl/tx/transactors/dex/OfferCreate.cpp @@ -276,7 +276,7 @@ OfferCreate::checkAcceptAsset( auto const& issuer = issue.getIssuer(); if (((*issuerAccount)[sfFlags] & lsfRequireAuth) != 0u) { - auto const trustLine = view.read(keylet::line(id, issuer, issue.currency)); + auto const trustLine = view.read(keylet::rippleState(id, issuer, issue.currency)); if (!trustLine) { @@ -301,7 +301,8 @@ OfferCreate::checkAcceptAsset( } } - auto const trustLine = view.read(keylet::line(id, issue.account, issue.currency)); + auto const trustLine = + view.read(keylet::rippleState(id, issue.account, issue.currency)); if (!trustLine) { diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp index c112d3b3491..395ae089ae2 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp @@ -198,7 +198,7 @@ escrowCreatePreclaimHelper( return tecNO_PERMISSION; // If the account does not have a trustline to the issuer, return tecNO_LINE - auto const sleRippleState = ctx.view.read(keylet::line(account, issuer, issue.currency)); + auto const sleRippleState = ctx.view.read(keylet::rippleState(account, issuer, issue.currency)); if (!sleRippleState) return tecNO_LINE; diff --git a/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp index 099b174778b..da25f76f867 100644 --- a/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp @@ -308,7 +308,7 @@ NFTokenAcceptOffer::preclaim(PreclaimContext const& ctx) if (ctx.view.rules().enabled(fixEnforceNFTokenTrustline) && (nft::getFlags(tokenID) & nft::flagCreateTrustLines) == 0 && nftMinter != amount.getIssuer() && - !ctx.view.read(keylet::line(nftMinter, amount.get()))) + !ctx.view.read(keylet::rippleState(nftMinter, amount.get()))) return tecNO_LINE; // Check that the issuer is allowed to receive IOUs. diff --git a/src/libxrpl/tx/transactors/token/Clawback.cpp b/src/libxrpl/tx/transactors/token/Clawback.cpp index ff20bd82c34..99323d1b8a9 100644 --- a/src/libxrpl/tx/transactors/token/Clawback.cpp +++ b/src/libxrpl/tx/transactors/token/Clawback.cpp @@ -114,7 +114,7 @@ preclaimHelper( return tecNO_PERMISSION; auto const sleRippleState = - ctx.view.read(keylet::line(holder, issuer, clawAmount.get().currency)); + ctx.view.read(keylet::rippleState(holder, issuer, clawAmount.get().currency)); if (!sleRippleState) return tecNO_LINE; diff --git a/src/libxrpl/tx/transactors/token/TrustSet.cpp b/src/libxrpl/tx/transactors/token/TrustSet.cpp index 1610b2e5b93..54a5a5c4065 100644 --- a/src/libxrpl/tx/transactors/token/TrustSet.cpp +++ b/src/libxrpl/tx/transactors/token/TrustSet.cpp @@ -155,7 +155,7 @@ TrustSet::checkPermission(ReadView const& view, STTx const& tx) auto const saLimitAmount = tx.getFieldAmount(sfLimitAmount); auto const sleRippleState = view.read( - keylet::line( + keylet::rippleState( tx[sfAccount], saLimitAmount.getIssuer(), saLimitAmount.get().currency)); // if the trustline does not exist, granular permissions are @@ -231,7 +231,7 @@ TrustSet::preclaim(PreclaimContext const& ctx) // o The trust line already exists // Then allow the TrustSet. if (ctx.view.rules().enabled(fixDisallowIncomingV1) && - ctx.view.exists(keylet::line(id, uDstAccountID, currency))) + ctx.view.exists(keylet::rippleState(id, uDstAccountID, currency))) { // pass } @@ -251,7 +251,7 @@ TrustSet::preclaim(PreclaimContext const& ctx) // TrustSet if the asset is AMM LP token and AMM is not in empty state. if (sleDst->isFieldPresent(sfAMMID)) { - if (ctx.view.exists(keylet::line(id, uDstAccountID, currency))) + if (ctx.view.exists(keylet::rippleState(id, uDstAccountID, currency))) { // pass } @@ -274,7 +274,7 @@ TrustSet::preclaim(PreclaimContext const& ctx) } else if (sleDst->isFieldPresent(sfVaultID) || sleDst->isFieldPresent(sfLoanBrokerID)) { - if (!ctx.view.exists(keylet::line(id, uDstAccountID, currency))) + if (!ctx.view.exists(keylet::rippleState(id, uDstAccountID, currency))) return tecNO_PERMISSION; // else pass } @@ -308,7 +308,7 @@ TrustSet::preclaim(PreclaimContext const& ctx) bool const bHigh = id > uDstAccountID; // Fetching current state of trust line - auto const sleRippleState = ctx.view.read(keylet::line(id, uDstAccountID, currency)); + auto const sleRippleState = ctx.view.read(keylet::rippleState(id, uDstAccountID, currency)); std::uint32_t uFlags = sleRippleState ? sleRippleState->getFieldU32(sfFlags) : 0u; // Computing expected trust line state uFlags = computeFreezeFlags( @@ -401,7 +401,7 @@ TrustSet::doApply() saLimitAllow.get().account = account_; SLE::pointer const sleRippleState = - view().peek(keylet::line(account_, uDstAccountID, currency)); + view().peek(keylet::rippleState(account_, uDstAccountID, currency)); if (sleRippleState) { @@ -649,7 +649,7 @@ TrustSet::doApply() // Zero balance in currency. STAmount const saBalance(Issue{currency, noAccount()}); - auto const k = keylet::line(account_, uDstAccountID, currency); + auto const k = keylet::rippleState(account_, uDstAccountID, currency); JLOG(j_.trace()) << "doTrustSet: Creating ripple line: " << to_string(k.key); diff --git a/src/test/app/Check_test.cpp b/src/test/app/Check_test.cpp index f2c7ab3a38c..2559579eee5 100644 --- a/src/test/app/Check_test.cpp +++ b/src/test/app/Check_test.cpp @@ -1949,8 +1949,8 @@ class Check_test : public beast::unit_test::suite Account const& acct2, IOU const& offerIou, IOU const& checkIou) { - auto const offerLine = env.le(keylet::line(acct1, acct2, offerIou.currency)); - auto const checkLine = env.le(keylet::line(acct1, acct2, checkIou.currency)); + auto const offerLine = env.le(keylet::rippleState(acct1, acct2, offerIou.currency)); + auto const checkLine = env.le(keylet::rippleState(acct1, acct2, checkIou.currency)); if (offerLine == nullptr || checkLine == nullptr) { BEAST_EXPECT(offerLine == nullptr && checkLine == nullptr); @@ -2021,7 +2021,7 @@ class Check_test : public beast::unit_test::suite IOU const OF1 = gw1["OF1"]; env(offer(gw1, XRP(98), OF1(98))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, OF1.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, OF1.currency)) == nullptr); env(offer(alice, OF1(98), XRP(98))); ++alice.owners; env.close(); @@ -2039,7 +2039,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(gw1, env.seq(gw1))}; env(check::create(gw1, alice, CK1(98))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, CK1.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, CK1.currency)) == nullptr); env(check::cash(alice, chkId, CK1(98))); ++alice.owners; verifyDeliveredAmount(env, CK1(98)); @@ -2068,7 +2068,7 @@ class Check_test : public beast::unit_test::suite IOU const OF1 = gw1["OF1"]; env(offer(alice, XRP(97), OF1(97))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, OF1.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, OF1.currency)) == nullptr); env(offer(bob, OF1(97), XRP(97))); ++bob.owners; env.close(); @@ -2092,12 +2092,12 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(alice, env.seq(alice))}; env(check::create(alice, bob, CK1(97))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, CK1.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, CK1.currency)) == nullptr); env(check::cash(bob, chkId, CK1(97)), ter(terNO_RIPPLE)); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, bob, OF1.currency)) != nullptr); - BEAST_EXPECT(env.le(keylet::line(gw1, bob, CK1.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, bob, OF1.currency)) != nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, bob, CK1.currency)) == nullptr); // Delete alice's check since it is no longer needed. env(check::cancel(alice, chkId)); @@ -2121,7 +2121,7 @@ class Check_test : public beast::unit_test::suite IOU const OF2 = gw1["OF2"]; env(offer(gw1, XRP(96), OF2(96))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, OF2.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, OF2.currency)) == nullptr); env(offer(alice, OF2(96), XRP(96))); ++alice.owners; env.close(); @@ -2139,7 +2139,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(gw1, env.seq(gw1))}; env(check::create(gw1, alice, CK2(96))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, CK2.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, CK2.currency)) == nullptr); env(check::cash(alice, chkId, CK2(96))); ++alice.owners; verifyDeliveredAmount(env, CK2(96)); @@ -2165,7 +2165,7 @@ class Check_test : public beast::unit_test::suite IOU const OF2 = gw1["OF2"]; env(offer(alice, XRP(95), OF2(95))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, OF2.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, OF2.currency)) == nullptr); env(offer(bob, OF2(95), XRP(95))); ++bob.owners; env.close(); @@ -2180,7 +2180,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(alice, env.seq(alice))}; env(check::create(alice, bob, CK2(95))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, CK2.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, CK2.currency)) == nullptr); env(check::cash(bob, chkId, CK2(95))); ++bob.owners; verifyDeliveredAmount(env, CK2(95)); @@ -2212,7 +2212,7 @@ class Check_test : public beast::unit_test::suite IOU const OF3 = gw1["OF3"]; env(offer(gw1, XRP(94), OF3(94))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, OF3.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, OF3.currency)) == nullptr); env(offer(alice, OF3(94), XRP(94))); ++alice.owners; env.close(); @@ -2230,7 +2230,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(gw1, env.seq(gw1))}; env(check::create(gw1, alice, CK3(94))); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, CK3.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, CK3.currency)) == nullptr); env(check::cash(alice, chkId, CK3(94))); ++alice.owners; verifyDeliveredAmount(env, CK3(94)); @@ -2256,7 +2256,7 @@ class Check_test : public beast::unit_test::suite IOU const OF3 = gw1["OF3"]; env(offer(alice, XRP(93), OF3(93))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, OF3.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, OF3.currency)) == nullptr); env(offer(bob, OF3(93), XRP(93))); ++bob.owners; env.close(); @@ -2271,7 +2271,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(alice, env.seq(alice))}; env(check::create(alice, bob, CK3(93))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, CK3.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, CK3.currency)) == nullptr); env(check::cash(bob, chkId, CK3(93))); ++bob.owners; verifyDeliveredAmount(env, CK3(93)); @@ -2297,7 +2297,7 @@ class Check_test : public beast::unit_test::suite IOU const OF4 = gw1["OF4"]; env(offer(gw1, XRP(92), OF4(92)), ter(tecFROZEN)); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, OF4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, OF4.currency)) == nullptr); env(offer(alice, OF4(92), XRP(92)), ter(tecFROZEN)); env.close(); @@ -2311,7 +2311,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(gw1, env.seq(gw1))}; env(check::create(gw1, alice, CK4(92)), ter(tecFROZEN)); env.close(); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, CK4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, CK4.currency)) == nullptr); env(check::cash(alice, chkId, CK4(92)), ter(tecNO_ENTRY)); env.close(); @@ -2322,8 +2322,8 @@ class Check_test : public beast::unit_test::suite // Because gw1 has set lsfGlobalFreeze, neither trust line // is created. - BEAST_EXPECT(env.le(keylet::line(gw1, alice, OF4.currency)) == nullptr); - BEAST_EXPECT(env.le(keylet::line(gw1, alice, CK4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, OF4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, alice, CK4.currency)) == nullptr); } //------------ lsfGlobalFreeze, check written by non-issuer ------------ { @@ -2335,7 +2335,7 @@ class Check_test : public beast::unit_test::suite IOU const OF4 = gw1["OF4"]; env(offer(alice, XRP(91), OF4(91)), ter(tecFROZEN)); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, OF4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, OF4.currency)) == nullptr); env(offer(bob, OF4(91), XRP(91)), ter(tecFROZEN)); env.close(); @@ -2349,7 +2349,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(alice, env.seq(alice))}; env(check::create(alice, bob, CK4(91)), ter(tecFROZEN)); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, CK4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, CK4.currency)) == nullptr); env(check::cash(bob, chkId, CK4(91)), ter(tecNO_ENTRY)); env.close(); @@ -2360,8 +2360,8 @@ class Check_test : public beast::unit_test::suite // Because gw1 has set lsfGlobalFreeze, neither trust line // is created. - BEAST_EXPECT(env.le(keylet::line(gw1, bob, OF4.currency)) == nullptr); - BEAST_EXPECT(env.le(keylet::line(gw1, bob, CK4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, bob, OF4.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw1, bob, CK4.currency)) == nullptr); } //-------------- lsfRequireAuth, check written by issuer --------------- @@ -2385,7 +2385,7 @@ class Check_test : public beast::unit_test::suite env(offer(gw2, XRP(92), OF5(92))); ++gw2.owners; env.close(); - BEAST_EXPECT(env.le(keylet::line(gw2, alice, OF5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, alice, OF5.currency)) == nullptr); env(offer(alice, OF5(92), XRP(92)), ter(tecNO_LINE)); env.close(); @@ -2407,7 +2407,7 @@ class Check_test : public beast::unit_test::suite env(check::create(gw2, alice, CK5(92))); ++gw2.owners; env.close(); - BEAST_EXPECT(env.le(keylet::line(gw2, alice, CK5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, alice, CK5.currency)) == nullptr); env(check::cash(alice, chkId, CK5(92)), ter(tecNO_AUTH)); env.close(); @@ -2419,8 +2419,8 @@ class Check_test : public beast::unit_test::suite // Because gw2 has set lsfRequireAuth, neither trust line // is created. - BEAST_EXPECT(env.le(keylet::line(gw2, alice, OF5.currency)) == nullptr); - BEAST_EXPECT(env.le(keylet::line(gw2, alice, CK5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, alice, OF5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, alice, CK5.currency)) == nullptr); // Since we don't need it any more, remove gw2's check. env(check::cancel(gw2, chkId)); @@ -2439,7 +2439,7 @@ class Check_test : public beast::unit_test::suite env(offer(alice, XRP(91), OF5(91)), ter(tecUNFUNDED_OFFER)); env.close(); env(offer(bob, OF5(91), XRP(91)), ter(tecNO_LINE)); - BEAST_EXPECT(env.le(keylet::line(gw2, bob, OF5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, bob, OF5.currency)) == nullptr); env.close(); gw2.verifyOwners(__LINE__); @@ -2451,7 +2451,7 @@ class Check_test : public beast::unit_test::suite uint256 const chkId{getCheckIndex(alice, env.seq(alice))}; env(check::create(alice, bob, CK5(91))); env.close(); - BEAST_EXPECT(env.le(keylet::line(alice, bob, CK5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(alice, bob, CK5.currency)) == nullptr); env(check::cash(bob, chkId, CK5(91)), ter(tecPATH_PARTIAL)); env.close(); @@ -2466,8 +2466,8 @@ class Check_test : public beast::unit_test::suite // Because gw2 has set lsfRequireAuth, neither trust line // is created. - BEAST_EXPECT(env.le(keylet::line(gw2, bob, OF5.currency)) == nullptr); - BEAST_EXPECT(env.le(keylet::line(gw2, bob, CK5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, bob, OF5.currency)) == nullptr); + BEAST_EXPECT(env.le(keylet::rippleState(gw2, bob, CK5.currency)) == nullptr); } } diff --git a/src/test/app/Clawback_test.cpp b/src/test/app/Clawback_test.cpp index 8efcece295c..a45878acd42 100644 --- a/src/test/app/Clawback_test.cpp +++ b/src/test/app/Clawback_test.cpp @@ -53,7 +53,7 @@ class Clawback_test : public beast::unit_test::suite test::jtx::Account const& dst, Currency const& cur) { - if (auto sle = env.le(keylet::line(src, dst, cur))) + if (auto sle = env.le(keylet::rippleState(src, dst, cur))) { auto const useHigh = src.id() > dst.id(); return sle->isFlag(useHigh ? lsfHighFreeze : lsfLowFreeze); diff --git a/src/test/app/Flow_test.cpp b/src/test/app/Flow_test.cpp index 8f096a970f3..140f153a65c 100644 --- a/src/test/app/Flow_test.cpp +++ b/src/test/app/Flow_test.cpp @@ -58,7 +58,7 @@ getNoRippleFlag( jtx::Account const& dst, Currency const& cur) { - if (auto sle = env.le(keylet::line(src, dst, cur))) + if (auto sle = env.le(keylet::rippleState(src, dst, cur))) { auto const flag = (src.id() > dst.id()) ? lsfHighNoRipple : lsfLowNoRipple; return sle->isFlag(flag); diff --git a/src/test/app/Invariants_test.cpp b/src/test/app/Invariants_test.cpp index 36ba3e98ecf..ed2ed59b202 100644 --- a/src/test/app/Invariants_test.cpp +++ b/src/test/app/Invariants_test.cpp @@ -456,7 +456,7 @@ class Invariants_test : public beast::unit_test::suite BEAST_EXPECT(sle->at(~sfAMMID) == ammKey); for (auto const& trustKeylet : - {keylet::line(ammAcctID, A1["USD"]), keylet::line(A1, ammIssue)}) + {keylet::rippleState(ammAcctID, A1["USD"]), keylet::rippleState(A1, ammIssue)}) { auto const line = ac.view().peek(trustKeylet); if (!line) @@ -557,7 +557,7 @@ class Invariants_test : public beast::unit_test::suite [](Account const& A1, Account const& A2, ApplyContext& ac) { // create simple trust SLE with xrp currency auto const sleNew = - std::make_shared(keylet::line(A1, A2, xrpIssue().currency)); + std::make_shared(keylet::rippleState(A1, A2, xrpIssue().currency)); ac.view().insert(sleNew); return true; }); @@ -573,7 +573,8 @@ class Invariants_test : public beast::unit_test::suite {{"a trust line with deep freeze flag without normal freeze was " "created"}}, [](Account const& A1, Account const& A2, ApplyContext& ac) { - auto const sleNew = std::make_shared(keylet::line(A1, A2, A1["USD"].currency)); + auto const sleNew = + std::make_shared(keylet::rippleState(A1, A2, A1["USD"].currency)); sleNew->setFieldAmount(sfLowLimit, A1["USD"](0)); sleNew->setFieldAmount(sfHighLimit, A1["USD"](0)); @@ -588,7 +589,8 @@ class Invariants_test : public beast::unit_test::suite {{"a trust line with deep freeze flag without normal freeze was " "created"}}, [](Account const& A1, Account const& A2, ApplyContext& ac) { - auto const sleNew = std::make_shared(keylet::line(A1, A2, A1["USD"].currency)); + auto const sleNew = + std::make_shared(keylet::rippleState(A1, A2, A1["USD"].currency)); sleNew->setFieldAmount(sfLowLimit, A1["USD"](0)); sleNew->setFieldAmount(sfHighLimit, A1["USD"](0)); std::uint32_t uFlags = 0u; @@ -602,7 +604,8 @@ class Invariants_test : public beast::unit_test::suite {{"a trust line with deep freeze flag without normal freeze was " "created"}}, [](Account const& A1, Account const& A2, ApplyContext& ac) { - auto const sleNew = std::make_shared(keylet::line(A1, A2, A1["USD"].currency)); + auto const sleNew = + std::make_shared(keylet::rippleState(A1, A2, A1["USD"].currency)); sleNew->setFieldAmount(sfLowLimit, A1["USD"](0)); sleNew->setFieldAmount(sfHighLimit, A1["USD"](0)); std::uint32_t uFlags = 0u; @@ -616,7 +619,8 @@ class Invariants_test : public beast::unit_test::suite {{"a trust line with deep freeze flag without normal freeze was " "created"}}, [](Account const& A1, Account const& A2, ApplyContext& ac) { - auto const sleNew = std::make_shared(keylet::line(A1, A2, A1["USD"].currency)); + auto const sleNew = + std::make_shared(keylet::rippleState(A1, A2, A1["USD"].currency)); sleNew->setFieldAmount(sfLowLimit, A1["USD"](0)); sleNew->setFieldAmount(sfHighLimit, A1["USD"](0)); std::uint32_t uFlags = 0u; @@ -630,7 +634,8 @@ class Invariants_test : public beast::unit_test::suite {{"a trust line with deep freeze flag without normal freeze was " "created"}}, [](Account const& A1, Account const& A2, ApplyContext& ac) { - auto const sleNew = std::make_shared(keylet::line(A1, A2, A1["USD"].currency)); + auto const sleNew = + std::make_shared(keylet::rippleState(A1, A2, A1["USD"].currency)); sleNew->setFieldAmount(sfLowLimit, A1["USD"](0)); sleNew->setFieldAmount(sfHighLimit, A1["USD"](0)); std::uint32_t uFlags = 0u; @@ -685,8 +690,8 @@ class Invariants_test : public beast::unit_test::suite ApplyContext& ac, int A1Balance, int A2Balance) { - auto const sleA1 = ac.view().peek(keylet::line(A1, G1["USD"])); - auto const sleA2 = ac.view().peek(keylet::line(A2, G1["USD"])); + auto const sleA1 = ac.view().peek(keylet::rippleState(A1, G1["USD"])); + auto const sleA2 = ac.view().peek(keylet::rippleState(A2, G1["USD"])); sleA1->setFieldAmount(sfBalance, G1["USD"](A1Balance)); sleA2->setFieldAmount(sfBalance, G1["USD"](A2Balance)); @@ -4129,8 +4134,8 @@ class Invariants_test : public beast::unit_test::suite auto const& goodConfig) { char const* const c1 = "USD"; char const* const c2 = "EUR"; - auto const k1 = keylet::line(A1, A2, A1[c1].currency); - auto const k2 = keylet::line(A1, A3, A1[c2].currency); + auto const k1 = keylet::rippleState(A1, A2, A1[c1].currency); + auto const k2 = keylet::rippleState(A1, A3, A1[c2].currency); bool const k1First = k1.key < k2.key; auto const& badKey = k1First ? k1 : k2; diff --git a/src/test/app/Loan_test.cpp b/src/test/app/Loan_test.cpp index ad876036613..6afd44e8d99 100644 --- a/src/test/app/Loan_test.cpp +++ b/src/test/app/Loan_test.cpp @@ -3116,7 +3116,8 @@ class Loan_test : public beast::unit_test::suite env(pay(borrower, issuer, broker.asset(10'000))); env.close(); - auto const trustline = keylet::line(borrower, broker.asset.raw().get()); + auto const trustline = + keylet::rippleState(borrower, broker.asset.raw().get()); auto const sleLine1 = env.le(trustline); BEAST_EXPECT(sleLine1 == nullptr); @@ -3209,7 +3210,7 @@ class Loan_test : public beast::unit_test::suite env.trust(broker.asset(0), lender); env.close(); - auto const trustline = keylet::line(lender, broker.asset.raw().get()); + auto const trustline = keylet::rippleState(lender, broker.asset.raw().get()); auto const sleLine1 = env.le(trustline); BEAST_EXPECT(sleLine1 != nullptr); @@ -4179,7 +4180,7 @@ class Loan_test : public beast::unit_test::suite BEAST_EXPECT(le)) { auto const account = le->at(accountField); - if (auto const sleLine = env.le(keylet::line(account, IOU)); + if (auto const sleLine = env.le(keylet::rippleState(account, IOU)); BEAST_EXPECT(sleLine)) { STAmount balance = sleLine->at(sfBalance); @@ -6671,7 +6672,7 @@ class Loan_test : public beast::unit_test::suite env(loanBroker::coverDeposit(broker, brokerInfo.brokerID, STAmount{IOU, additionalCover})); env.close(); // Verify broker owner has a trustline - auto const brokerTrustline = keylet::line(broker, IOU); + auto const brokerTrustline = keylet::rippleState(broker, IOU); BEAST_EXPECT(env.le(brokerTrustline) != nullptr); // Broker owner deletes their trustline // First, pay any positive balance to issuer to zero it out diff --git a/src/test/app/NFTokenAuth_test.cpp b/src/test/app/NFTokenAuth_test.cpp index 2542f2eb36c..445cbcb5c08 100644 --- a/src/test/app/NFTokenAuth_test.cpp +++ b/src/test/app/NFTokenAuth_test.cpp @@ -130,7 +130,8 @@ class NFTokenAuth_test : public beast::unit_test::suite // close ledger before running the actual tests against this trustline. // After ledger is closed, the trustline will not exist. auto const unauthTrustline = [&](OpenView& view, beast::Journal) -> bool { - auto const sleA1 = std::make_shared(keylet::line(A1, G1, G1["USD"].currency)); + auto const sleA1 = + std::make_shared(keylet::rippleState(A1, G1, G1["USD"].currency)); sleA1->setFieldAmount(sfBalance, A1["USD"](-1000)); view.rawInsert(sleA1); return true; @@ -193,7 +194,8 @@ class NFTokenAuth_test : public beast::unit_test::suite // tests against this trustline. After ledger is closed, the trustline // will not exist. auto const unauthTrustline = [&](OpenView& view, beast::Journal) -> bool { - auto const sleA1 = std::make_shared(keylet::line(A1, G1, G1["USD"].currency)); + auto const sleA1 = + std::make_shared(keylet::rippleState(A1, G1, G1["USD"].currency)); sleA1->setFieldAmount(sfBalance, A1["USD"](-1000)); view.rawInsert(sleA1); return true; @@ -313,7 +315,8 @@ class NFTokenAuth_test : public beast::unit_test::suite // Creating an artificial unauth trustline auto const unauthTrustline = [&](OpenView& view, beast::Journal) -> bool { - auto const sleA1 = std::make_shared(keylet::line(A1, G1, G1["USD"].currency)); + auto const sleA1 = + std::make_shared(keylet::rippleState(A1, G1, G1["USD"].currency)); sleA1->setFieldAmount(sfBalance, A1["USD"](-1000)); view.rawInsert(sleA1); return true; @@ -432,7 +435,8 @@ class NFTokenAuth_test : public beast::unit_test::suite env.close(); auto const unauthTrustline = [&](OpenView& view, beast::Journal) -> bool { - auto const sleA1 = std::make_shared(keylet::line(A1, G1, G1["USD"].currency)); + auto const sleA1 = + std::make_shared(keylet::rippleState(A1, G1, G1["USD"].currency)); sleA1->setFieldAmount(sfBalance, A1["USD"](-1000)); view.rawInsert(sleA1); return true; diff --git a/src/test/app/Offer_test.cpp b/src/test/app/Offer_test.cpp index 78bdd3fef29..e527798502c 100644 --- a/src/test/app/Offer_test.cpp +++ b/src/test/app/Offer_test.cpp @@ -2183,7 +2183,7 @@ class OfferBaseUtil_test : public beast::unit_test::suite jtx::PrettyAmount const& expectBalance) { Issue const& issue = expectBalance.value().get(); - auto const sleTrust = env.le(keylet::line(account.id(), issue)); + auto const sleTrust = env.le(keylet::rippleState(account.id(), issue)); BEAST_EXPECT(sleTrust); if (sleTrust) { @@ -2350,7 +2350,7 @@ class OfferBaseUtil_test : public beast::unit_test::suite else { // Verify that no trustline was created. - auto const sleTrust = env.le(keylet::line(acct, USD)); + auto const sleTrust = env.le(keylet::rippleState(acct, USD)); BEAST_EXPECT(!sleTrust); } } @@ -2535,8 +2535,8 @@ class OfferBaseUtil_test : public beast::unit_test::suite env.require(offers(bob, 0)); // The two trustlines that were generated by offers should be gone. - BEAST_EXPECT(!env.le(keylet::line(alice.id(), EUR))); - BEAST_EXPECT(!env.le(keylet::line(bob.id(), USD))); + BEAST_EXPECT(!env.le(keylet::rippleState(alice.id(), EUR))); + BEAST_EXPECT(!env.le(keylet::rippleState(bob.id(), USD))); // Make two more offers that leave one of the offers non-dry. We // need to properly sequence the transactions: @@ -4471,7 +4471,7 @@ class OfferBaseUtil_test : public beast::unit_test::suite jtx::Account const& src, jtx::Account const& dst, Currency const& cur) -> bool { - return bool(env.le(keylet::line(src, dst, cur))); + return bool(env.le(keylet::rippleState(src, dst, cur))); }; Account const alice("alice"); diff --git a/src/test/app/Path_test.cpp b/src/test/app/Path_test.cpp index e6d27de4151..0449078771c 100644 --- a/src/test/app/Path_test.cpp +++ b/src/test/app/Path_test.cpp @@ -880,7 +880,7 @@ class Path_test : public beast::unit_test::suite })", jv); - auto const jv_l = env.le(keylet::line(Account("bob").id(), Account("alice")["USD"])) + auto const jv_l = env.le(keylet::rippleState(Account("bob").id(), Account("alice")["USD"])) ->getJson(JsonOptions::none); for (auto it = jv.begin(); it != jv.end(); ++it) BEAST_EXPECT(*it == jv_l[it.memberName()]); @@ -922,14 +922,15 @@ class Path_test : public beast::unit_test::suite })", jv); - auto const jv_l = env.le(keylet::line(Account("bob").id(), Account("alice")["USD"])) + auto const jv_l = env.le(keylet::rippleState(Account("bob").id(), Account("alice")["USD"])) ->getJson(JsonOptions::none); for (auto it = jv.begin(); it != jv.end(); ++it) BEAST_EXPECT(*it == jv_l[it.memberName()]); env.trust(Account("bob")["USD"](0), "alice"); env.trust(Account("alice")["USD"](0), "bob"); - BEAST_EXPECT(env.le(keylet::line(Account("bob").id(), Account("alice")["USD"])) == nullptr); + BEAST_EXPECT( + env.le(keylet::rippleState(Account("bob").id(), Account("alice")["USD"])) == nullptr); } void @@ -972,13 +973,14 @@ class Path_test : public beast::unit_test::suite })", jv); - auto const jv_l = env.le(keylet::line(Account("alice").id(), Account("bob")["USD"])) + auto const jv_l = env.le(keylet::rippleState(Account("alice").id(), Account("bob")["USD"])) ->getJson(JsonOptions::none); for (auto it = jv.begin(); it != jv.end(); ++it) BEAST_EXPECT(*it == jv_l[it.memberName()]); env(pay("alice", "bob", Account("alice")["USD"](50))); - BEAST_EXPECT(env.le(keylet::line(Account("alice").id(), Account("bob")["USD"])) == nullptr); + BEAST_EXPECT( + env.le(keylet::rippleState(Account("alice").id(), Account("bob")["USD"])) == nullptr); } void diff --git a/src/test/app/PayStrand_test.cpp b/src/test/app/PayStrand_test.cpp index 161903ee6d5..b7d412fcfa0 100644 --- a/src/test/app/PayStrand_test.cpp +++ b/src/test/app/PayStrand_test.cpp @@ -80,7 +80,7 @@ getTrustFlag( Currency const& cur, TrustFlag flag) { - if (auto sle = env.le(keylet::line(src, dst, cur))) + if (auto sle = env.le(keylet::rippleState(src, dst, cur))) { auto const useHigh = src.id() > dst.id(); return sle->isFlag(trustFlag(flag, useHigh)); @@ -454,7 +454,7 @@ struct ExistingElementPool for (auto const& c : currencies) { // Line balance - auto const lk = keylet::line(*ai1, *ai2, c); + auto const lk = keylet::rippleState(*ai1, *ai2, c); auto const b1 = lineBalance(v1, lk); auto const b2 = lineBalance(v2, lk); if (b1 != b2) diff --git a/src/test/app/SetAuth_test.cpp b/src/test/app/SetAuth_test.cpp index 5982fc282d9..15cea1d2d7b 100644 --- a/src/test/app/SetAuth_test.cpp +++ b/src/test/app/SetAuth_test.cpp @@ -51,7 +51,7 @@ struct SetAuth_test : public beast::unit_test::suite env(fset(gw, asfRequireAuth)); env.close(); env(auth(gw, "alice", "USD")); - BEAST_EXPECT(env.le(keylet::line(Account("alice").id(), gw.id(), USD.currency))); + BEAST_EXPECT(env.le(keylet::rippleState(Account("alice").id(), gw.id(), USD.currency))); env(trust("alice", USD(1000))); env(trust("bob", USD(1000))); env(pay(gw, "alice", USD(100))); diff --git a/src/test/app/Vault_test.cpp b/src/test/app/Vault_test.cpp index 775d579b9b8..bd402671557 100644 --- a/src/test/app/Vault_test.cpp +++ b/src/test/app/Vault_test.cpp @@ -2678,7 +2678,7 @@ class Vault_test : public beast::unit_test::suite env(vault.deposit({.depositor = owner, .id = keylet.key, .amount = asset(200)})); env.close(); - auto trustline = env.le(keylet::line(owner, asset.raw().get())); + auto trustline = env.le(keylet::rippleState(owner, asset.raw().get())); BEAST_EXPECT(trustline == nullptr); // Withdraw without trust line, will succeed @@ -2860,7 +2860,7 @@ class Vault_test : public beast::unit_test::suite env(vault.deposit({.depositor = owner, .id = keylet.key, .amount = asset(200)})); env.close(); - auto trustline = env.le(keylet::line(owner, asset.raw().get())); + auto trustline = env.le(keylet::rippleState(owner, asset.raw().get())); BEAST_EXPECT(trustline == nullptr); env(ticket::create(owner, 1)); diff --git a/src/test/jtx/impl/Env.cpp b/src/test/jtx/impl/Env.cpp index f03e26b5670..1818d0dd036 100644 --- a/src/test/jtx/impl/Env.cpp +++ b/src/test/jtx/impl/Env.cpp @@ -213,7 +213,7 @@ Env::balance(Account const& account, Asset const& asset) const [&](Issue const& issue) -> PrettyAmount { if (isXRP(issue.currency)) return balance(account); - auto const sle = le(keylet::line(account.id(), issue)); + auto const sle = le(keylet::rippleState(account.id(), issue)); if (!sle) return {STAmount(issue, 0), account.name()}; auto amount = sle->getFieldAmount(sfBalance); @@ -253,7 +253,7 @@ Env::balance(Account const& account, Asset const& asset) const PrettyAmount Env::limit(Account const& account, Issue const& issue) const { - auto const sle = le(keylet::line(account.id(), issue)); + auto const sle = le(keylet::rippleState(account.id(), issue)); if (!sle) return {STAmount(issue, 0), account.name()}; auto const aHigh = account.id() > issue.account; diff --git a/src/test/jtx/impl/TestHelpers.cpp b/src/test/jtx/impl/TestHelpers.cpp index f585e7b28f4..7c7b6b31b94 100644 --- a/src/test/jtx/impl/TestHelpers.cpp +++ b/src/test/jtx/impl/TestHelpers.cpp @@ -357,7 +357,7 @@ xrpMinusFee(Env const& env, std::int64_t xrpAmount) [[nodiscard]] bool expectHolding(Env& env, AccountID const& account, STAmount const& value, bool defaultLimits) { - if (auto const sle = env.le(keylet::line(account, value.get()))) + if (auto const sle = env.le(keylet::rippleState(account, value.get()))) { Issue const issue = value.get(); bool const accountLow = account < issue.account; @@ -387,7 +387,7 @@ expectHolding(Env& env, AccountID const& account, STAmount const& value, bool de [[nodiscard]] bool expectHolding(Env& env, AccountID const& account, None const&, Issue const& issue) { - return !env.le(keylet::line(account, issue)); + return !env.le(keylet::rippleState(account, issue)); } [[nodiscard]] bool diff --git a/src/test/jtx/impl/balance.cpp b/src/test/jtx/impl/balance.cpp index 1c7b4c0c25c..699eaa8357e 100644 --- a/src/test/jtx/impl/balance.cpp +++ b/src/test/jtx/impl/balance.cpp @@ -36,7 +36,7 @@ doBalance(Env& env, AccountID const& account, bool none, STAmount const& value, } else { - auto const sle = env.le(keylet::line(account, issue)); + auto const sle = env.le(keylet::rippleState(account, issue)); if (none) { TEST_EXPECT(!sle); diff --git a/src/tests/libxrpl/helpers/TxTest.cpp b/src/tests/libxrpl/helpers/TxTest.cpp index d88f7003568..15bc12b0b2e 100644 --- a/src/tests/libxrpl/helpers/TxTest.cpp +++ b/src/tests/libxrpl/helpers/TxTest.cpp @@ -231,7 +231,7 @@ TxTest::getCloseTime() const STAmount TxTest::getBalance(AccountID const& account, IOU const& iou) const { - auto const sle = openLedger_->read(keylet::line(account, iou.issue())); + auto const sle = openLedger_->read(keylet::rippleState(account, iou.issue())); if (!sle) return STAmount{iou.issue(), 0}; diff --git a/src/xrpld/rpc/detail/Pathfinder.cpp b/src/xrpld/rpc/detail/Pathfinder.cpp index ed486c80a88..9972a29c0e3 100644 --- a/src/xrpld/rpc/detail/Pathfinder.cpp +++ b/src/xrpld/rpc/detail/Pathfinder.cpp @@ -947,7 +947,7 @@ Pathfinder::isNoRipple( AccountID const& toAccount, Currency const& currency) { - auto sleRipple = mLedger->read(keylet::line(toAccount, fromAccount, currency)); + auto sleRipple = mLedger->read(keylet::rippleState(toAccount, fromAccount, currency)); auto const flag((toAccount > fromAccount) ? lsfHighNoRipple : lsfLowNoRipple); diff --git a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp index fe59cf27f3b..4d69f0791a8 100644 --- a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp @@ -707,7 +707,7 @@ parseRippleState( "malformedCurrency", jss::currency, "Currency"); } - return keylet::line(*id1, *id2, uCurrency).key; + return keylet::rippleState(*id1, *id2, uCurrency).key; } static Expected From 01adf22c8a47c97ab229cc02dd11ad3ec4d0a76c Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:22:55 -0400 Subject: [PATCH 02/10] rename keylet::fees -> keylet::feeSettings --- include/xrpl/protocol/Indexes.h | 2 +- include/xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/ledger/Ledger.cpp | 4 ++-- src/libxrpl/protocol/Indexes.cpp | 2 +- src/libxrpl/tx/transactors/system/Change.cpp | 2 +- src/test/app/FeeVote_test.cpp | 2 +- src/test/app/RCLValidations_test.cpp | 2 +- src/test/rpc/LedgerEntry_test.cpp | 4 ++-- src/xrpld/app/ledger/detail/BuildLedger.cpp | 2 +- src/xrpld/app/ledger/detail/InboundLedger.cpp | 8 +++++--- src/xrpld/app/ledger/detail/LedgerPersistence.cpp | 2 +- src/xrpld/app/main/Application.cpp | 7 ++++--- src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp | 4 ++-- 13 files changed, 23 insertions(+), 20 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 681faab7a33..7080cbd3005 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -68,7 +68,7 @@ skip(LedgerIndex ledger) noexcept; /** The (fixed) index of the object containing the ledger fees. */ Keylet const& -fees() noexcept; +feeSettings() noexcept; /** The (fixed) index of the object containing the ledger negativeUNL. */ Keylet const& diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 20289a42aa7..9566dd5d313 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -292,7 +292,7 @@ LEDGER_ENTRY(ltRIPPLE_STATE, 0x0072, RippleState, state, ({ \note This is a singleton: only one such object exists in the ledger. - \sa keylet::fees + \sa keylet::feeSettings */ LEDGER_ENTRY(ltFEE_SETTINGS, 0x0073, FeeSettings, fee, ({ // Old version uses raw numbers diff --git a/src/libxrpl/ledger/Ledger.cpp b/src/libxrpl/ledger/Ledger.cpp index 729f1ebce91..65ecdd4915f 100644 --- a/src/libxrpl/ledger/Ledger.cpp +++ b/src/libxrpl/ledger/Ledger.cpp @@ -183,7 +183,7 @@ Ledger::Ledger( } { - auto sle = std::make_shared(keylet::fees()); + auto sle = std::make_shared(keylet::feeSettings()); // Whether featureXRPFees is supported will depend on startup options. if (std::ranges::find(amendments, featureXRPFees) != amendments.end()) { @@ -580,7 +580,7 @@ Ledger::setup() try { - if (auto const sle = read(keylet::fees())) + if (auto const sle = read(keylet::feeSettings())) { bool oldFees = false; bool newFees = false; diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 093fd4cd189..43f0df3ad68 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -219,7 +219,7 @@ amendments() noexcept } Keylet const& -fees() noexcept +feeSettings() noexcept { static Keylet const ret{ltFEE_SETTINGS, indexHash(LedgerNameSpace::FEE_SETTINGS)}; return ret; diff --git a/src/libxrpl/tx/transactors/system/Change.cpp b/src/libxrpl/tx/transactors/system/Change.cpp index 60dbb06a175..ebfa050875f 100644 --- a/src/libxrpl/tx/transactors/system/Change.cpp +++ b/src/libxrpl/tx/transactors/system/Change.cpp @@ -256,7 +256,7 @@ Change::applyAmendment() TER Change::applyFee() { - auto const k = keylet::fees(); + auto const k = keylet::feeSettings(); SLE::pointer feeObject = view().peek(k); diff --git a/src/test/app/FeeVote_test.cpp b/src/test/app/FeeVote_test.cpp index e24b54c82a3..347ddc5009a 100644 --- a/src/test/app/FeeVote_test.cpp +++ b/src/test/app/FeeVote_test.cpp @@ -144,7 +144,7 @@ verifyFeeObject( Rules const& rules, FeeSettingsFields const& expected) { - auto const feeObject = ledger->read(keylet::fees()); + auto const feeObject = ledger->read(keylet::feeSettings()); if (!feeObject) return false; diff --git a/src/test/app/RCLValidations_test.cpp b/src/test/app/RCLValidations_test.cpp index 14b9979e075..b7b2bd56056 100644 --- a/src/test/app/RCLValidations_test.cpp +++ b/src/test/app/RCLValidations_test.cpp @@ -97,7 +97,7 @@ class RCLValidations_test : public beast::unit_test::suite auto next = std::make_shared(*prev, env.app().getTimeKeeper().closeTime()); // Force a different hash on the first iteration next->updateSkipList(); - BEAST_EXPECT(next->read(keylet::fees())); + BEAST_EXPECT(next->read(keylet::feeSettings())); if (forceHash) { next->setImmutable(); diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index d6e1ccc2cee..48a766117b4 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -1477,7 +1477,7 @@ class LedgerEntry_test : public beast::unit_test::suite // positive test { - Keylet const keylet = keylet::fees(); + Keylet const keylet = keylet::feeSettings(); Json::Value jvParams; jvParams[jss::fee] = to_string(keylet.key); Json::Value const jrr = @@ -2420,7 +2420,7 @@ class LedgerEntry_test : public beast::unit_test::suite }; test(jss::amendments, jss::Amendments, keylet::amendments(), true); - test(jss::fee, jss::FeeSettings, keylet::fees(), true); + test(jss::fee, jss::FeeSettings, keylet::feeSettings(), true); // There won't be an nunl test(jss::nunl, jss::NegativeUNL, keylet::negativeUNL(), false); // Can only get the short skip list this way diff --git a/src/xrpld/app/ledger/detail/BuildLedger.cpp b/src/xrpld/app/ledger/detail/BuildLedger.cpp index c75b1e0a126..1731653a493 100644 --- a/src/xrpld/app/ledger/detail/BuildLedger.cpp +++ b/src/xrpld/app/ledger/detail/BuildLedger.cpp @@ -71,7 +71,7 @@ buildLedgerImpl( // Accept ledger XRPL_ASSERT( - built->header().seq < XRP_LEDGER_EARLIEST_FEES || built->read(keylet::fees()), + built->header().seq < XRP_LEDGER_EARLIEST_FEES || built->read(keylet::feeSettings()), "xrpl::buildLedgerImpl : valid ledger fees"); built->setAccepted(closeTime, closeResolution, closeTimeCorrect); diff --git a/src/xrpld/app/ledger/detail/InboundLedger.cpp b/src/xrpld/app/ledger/detail/InboundLedger.cpp index 52636d08c65..e2c1955e627 100644 --- a/src/xrpld/app/ledger/detail/InboundLedger.cpp +++ b/src/xrpld/app/ledger/detail/InboundLedger.cpp @@ -129,7 +129,7 @@ InboundLedger::init(ScopedLockType& collectionLock) JLOG(journal_.debug()) << "Acquiring ledger we already have in " << " local store. " << hash_; XRPL_ASSERT( - mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || mLedger->read(keylet::fees()), + mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || mLedger->read(keylet::feeSettings()), "xrpl::InboundLedger::init : valid ledger fees"); mLedger->setImmutable(); @@ -352,7 +352,8 @@ InboundLedger::tryDB(NodeStore::Database& srcDB) JLOG(journal_.debug()) << "Had everything locally"; complete_ = true; XRPL_ASSERT( - mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || mLedger->read(keylet::fees()), + mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || + mLedger->read(keylet::feeSettings()), "xrpl::InboundLedger::tryDB : valid ledger fees"); mLedger->setImmutable(); } @@ -448,7 +449,8 @@ InboundLedger::done() if (complete_ && !failed_ && mLedger) { XRPL_ASSERT( - mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || mLedger->read(keylet::fees()), + mLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || + mLedger->read(keylet::feeSettings()), "xrpl::InboundLedger::done : valid ledger fees"); mLedger->setImmutable(); switch (mReason) diff --git a/src/xrpld/app/ledger/detail/LedgerPersistence.cpp b/src/xrpld/app/ledger/detail/LedgerPersistence.cpp index 0edf425f13d..7a0d507d071 100644 --- a/src/xrpld/app/ledger/detail/LedgerPersistence.cpp +++ b/src/xrpld/app/ledger/detail/LedgerPersistence.cpp @@ -120,7 +120,7 @@ finishLoadByIndexOrHash(std::shared_ptr const& ledger, beast::Journal j) return; XRPL_ASSERT( - ledger->header().seq < XRP_LEDGER_EARLIEST_FEES || ledger->read(keylet::fees()), + ledger->header().seq < XRP_LEDGER_EARLIEST_FEES || ledger->read(keylet::feeSettings()), "xrpl::finishLoadByIndexOrHash : valid ledger fees"); ledger->setImmutable(); diff --git a/src/xrpld/app/main/Application.cpp b/src/xrpld/app/main/Application.cpp index d43f842eedc..d15102b7d26 100644 --- a/src/xrpld/app/main/Application.cpp +++ b/src/xrpld/app/main/Application.cpp @@ -1715,7 +1715,7 @@ ApplicationImp::startGenesisLedger() auto const next = std::make_shared(*genesis, getTimeKeeper().closeTime()); next->updateSkipList(); XRPL_ASSERT( - next->header().seq < XRP_LEDGER_EARLIEST_FEES || next->read(keylet::fees()), + next->header().seq < XRP_LEDGER_EARLIEST_FEES || next->read(keylet::feeSettings()), "xrpl::ApplicationImp::startGenesisLedger : valid ledger fees"); next->setImmutable(); openLedger_.emplace(next, cachedSLEs_, logs_->journal("OpenLedger")); @@ -1737,7 +1737,7 @@ ApplicationImp::getLastFullLedger() return ledger; XRPL_ASSERT( - ledger->header().seq < XRP_LEDGER_EARLIEST_FEES || ledger->read(keylet::fees()), + ledger->header().seq < XRP_LEDGER_EARLIEST_FEES || ledger->read(keylet::feeSettings()), "xrpl::ApplicationImp::getLastFullLedger : valid ledger fees"); ledger->setImmutable(); @@ -1888,7 +1888,8 @@ ApplicationImp::loadLedgerFromFile(std::string const& name) loadLedger->stateMap().flushDirty(NodeObjectType::hotACCOUNT_NODE); XRPL_ASSERT( - loadLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || loadLedger->read(keylet::fees()), + loadLedger->header().seq < XRP_LEDGER_EARLIEST_FEES || + loadLedger->read(keylet::feeSettings()), "xrpl::ApplicationImp::loadLedgerFromFile : valid ledger fees"); loadLedger->setAccepted(closeTime, closeTimeResolution, !closeTimeEstimated); diff --git a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp index 4d69f0791a8..36dea615534 100644 --- a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp @@ -82,7 +82,7 @@ parseIndex(Json::Value const& params, Json::StaticString const fieldName, unsign if (index == jss::amendments.c_str()) return keylet::amendments().key; if (index == jss::fee.c_str()) - return keylet::fees().key; + return keylet::feeSettings().key; if (index == jss::nunl) return keylet::negativeUNL().key; if (index == jss::hashes) @@ -434,7 +434,7 @@ parseEscrow( return keylet::escrow(*id, *seq).key; } -auto const parseFeeSettings = fixed(keylet::fees()); +auto const parseFeeSettings = fixed(keylet::feeSettings()); static Expected parseFixed( From d7ec90cfaa10b2b78289870c2cfed65218c80fc0 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:23:43 -0400 Subject: [PATCH 03/10] keylet::signers -> keylet::signerList --- include/xrpl/protocol/Indexes.h | 4 ++-- include/xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/protocol/Indexes.cpp | 6 +++--- src/libxrpl/tx/Transactor.cpp | 3 ++- src/libxrpl/tx/transactors/account/AccountSet.cpp | 2 +- src/libxrpl/tx/transactors/account/SetRegularKey.cpp | 2 +- src/libxrpl/tx/transactors/account/SignerListSet.cpp | 6 +++--- src/libxrpl/tx/transactors/bridge/XChainBridge.cpp | 2 +- src/test/app/AccountDelete_test.cpp | 4 ++-- src/test/app/MultiSign_test.cpp | 2 +- src/xrpld/rpc/detail/RPCHelpers.cpp | 2 +- src/xrpld/rpc/handlers/account/AccountInfo.cpp | 2 +- 12 files changed, 19 insertions(+), 18 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 7080cbd3005..0202c01164c 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -149,7 +149,7 @@ static ticket_t const ticket{}; /** A SignerList */ Keylet -signers(AccountID const& account) noexcept; +signerList(AccountID const& account) noexcept; /** A Check */ /** @{ */ @@ -376,7 +376,7 @@ struct keyletDesc std::array, 6> const directAccountKeylets{ {{.function = &keylet::account, .expectedLEName = jss::AccountRoot, .includeInTests = false}, {.function = &keylet::ownerDir, .expectedLEName = jss::DirectoryNode, .includeInTests = true}, - {.function = &keylet::signers, .expectedLEName = jss::SignerList, .includeInTests = true}, + {.function = &keylet::signerList, .expectedLEName = jss::SignerList, .includeInTests = true}, // It's normally impossible to create an item at nftpage_min, but // test it anyway, since the invariant checks for it. {.function = &keylet::nftpage_min, .expectedLEName = jss::NFTokenPage, .includeInTests = true}, diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 9566dd5d313..0c70d0a7a50 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -96,7 +96,7 @@ LEDGER_ENTRY(ltNFTOKEN_PAGE, 0x0050, NFTokenPage, nft_page, ({ /** A ledger object which contains a signer list for an account. - \sa keylet::signers + \sa keylet::signerList */ // All fields are soeREQUIRED because there is always a SignerEntries. // If there are no SignerEntries the node is deleted. diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 43f0df3ad68..7bf88a15d8f 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -308,15 +308,15 @@ ticket_t::operator()(AccountID const& id, SeqProxy ticketSeq) const // else. If we ever support multiple pages of signer lists, this would be the // keylet used to locate them. static Keylet -signers(AccountID const& account, std::uint32_t page) noexcept +signerList(AccountID const& account, std::uint32_t page) noexcept { return {ltSIGNER_LIST, indexHash(LedgerNameSpace::SIGNER_LIST, account, page)}; } Keylet -signers(AccountID const& account) noexcept +signerList(AccountID const& account) noexcept { - return signers(account, 0); + return signerList(account, 0); } Keylet diff --git a/src/libxrpl/tx/Transactor.cpp b/src/libxrpl/tx/Transactor.cpp index 9791ee4c9bc..208e8e4dbc0 100644 --- a/src/libxrpl/tx/Transactor.cpp +++ b/src/libxrpl/tx/Transactor.cpp @@ -815,7 +815,8 @@ Transactor::checkMultiSign( beast::Journal const j) { // Get id's SignerList and Quorum. - std::shared_ptr const sleAccountSigners = view.read(keylet::signers(id)); + std::shared_ptr const sleAccountSigners = + view.read(keylet::signerList(id)); // If the signer list doesn't exist the account is not multi-signing. if (!sleAccountSigners) { diff --git a/src/libxrpl/tx/transactors/account/AccountSet.cpp b/src/libxrpl/tx/transactors/account/AccountSet.cpp index e8555ecc04b..8514ad0853a 100644 --- a/src/libxrpl/tx/transactors/account/AccountSet.cpp +++ b/src/libxrpl/tx/transactors/account/AccountSet.cpp @@ -382,7 +382,7 @@ AccountSet::doApply() return tecNEED_MASTER_KEY; } - if ((!sle->isFieldPresent(sfRegularKey)) && (!view().peek(keylet::signers(account_)))) + if ((!sle->isFieldPresent(sfRegularKey)) && (!view().peek(keylet::signerList(account_)))) { // Account has no regular key or multi-signer signer list. return tecNO_ALTERNATIVE_KEY; diff --git a/src/libxrpl/tx/transactors/account/SetRegularKey.cpp b/src/libxrpl/tx/transactors/account/SetRegularKey.cpp index bc59ed4fc15..2d407a7ccb8 100644 --- a/src/libxrpl/tx/transactors/account/SetRegularKey.cpp +++ b/src/libxrpl/tx/transactors/account/SetRegularKey.cpp @@ -69,7 +69,7 @@ SetRegularKey::doApply() else { // Account has disabled master key and no multi-signer signer list. - if (sle->isFlag(lsfDisableMaster) && !view().peek(keylet::signers(account_))) + if (sle->isFlag(lsfDisableMaster) && !view().peek(keylet::signerList(account_))) return tecNO_ALTERNATIVE_KEY; sle->makeFieldAbsent(sfRegularKey); diff --git a/src/libxrpl/tx/transactors/account/SignerListSet.cpp b/src/libxrpl/tx/transactors/account/SignerListSet.cpp index ee4cf583f4b..7168631b737 100644 --- a/src/libxrpl/tx/transactors/account/SignerListSet.cpp +++ b/src/libxrpl/tx/transactors/account/SignerListSet.cpp @@ -232,7 +232,7 @@ SignerListSet::removeFromLedger( { auto const accountKeylet = keylet::account(account); auto const ownerDirKeylet = keylet::ownerDir(account); - auto const signerListKeylet = keylet::signers(account); + auto const signerListKeylet = keylet::signerList(account); return removeSignersFromLedger( registry, view, accountKeylet, ownerDirKeylet, signerListKeylet, j); @@ -302,7 +302,7 @@ SignerListSet::replaceSignerList() { auto const accountKeylet = keylet::account(account_); auto const ownerDirKeylet = keylet::ownerDir(account_); - auto const signerListKeylet = keylet::signers(account_); + auto const signerListKeylet = keylet::signerList(account_); // This may be either a create or a replace. Preemptively remove any // old signer list. May reduce the reserve, so this is done before @@ -367,7 +367,7 @@ SignerListSet::destroySignerList() return tecNO_ALTERNATIVE_KEY; auto const ownerDirKeylet = keylet::ownerDir(account_); - auto const signerListKeylet = keylet::signers(account_); + auto const signerListKeylet = keylet::signerList(account_); return removeSignersFromLedger( ctx_.registry, view(), accountKeylet, ownerDirKeylet, signerListKeylet, j_); } diff --git a/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp b/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp index 461c4ee207e..7f47c9165f1 100644 --- a/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp +++ b/src/libxrpl/tx/transactors/bridge/XChainBridge.cpp @@ -759,7 +759,7 @@ getSignersListAndQuorum(ReadView const& view, SLE const& sleBridge, beast::Journ return {r, q, tecINTERNAL}; } - auto const sleS = view.read(keylet::signers(sleBridge[sfAccount])); + auto const sleS = view.read(keylet::signerList(sleBridge[sfAccount])); if (!sleS) { return {r, q, tecXCHAIN_NO_SIGNERS_LIST}; diff --git a/src/test/app/AccountDelete_test.cpp b/src/test/app/AccountDelete_test.cpp index c2ecb91a84c..2debdc1985a 100644 --- a/src/test/app/AccountDelete_test.cpp +++ b/src/test/app/AccountDelete_test.cpp @@ -215,7 +215,7 @@ class AccountDelete_test : public beast::unit_test::suite BEAST_EXPECT(env.closed()->exists(keylet::depositPreauth(carol.id(), becky.id()))); BEAST_EXPECT(env.closed()->exists(keylet::offer(carol.id(), carolOfferSeq))); BEAST_EXPECT(env.closed()->exists(keylet::ticket(carol.id(), carolTicketSeq))); - BEAST_EXPECT(env.closed()->exists(keylet::signers(carol.id()))); + BEAST_EXPECT(env.closed()->exists(keylet::signerList(carol.id()))); // Delete carol's account even with stuff in her directory. Show // that multisigning for the delete does not increase carol's fee. @@ -229,7 +229,7 @@ class AccountDelete_test : public beast::unit_test::suite BEAST_EXPECT(!env.closed()->exists(keylet::depositPreauth(carol.id(), becky.id()))); BEAST_EXPECT(!env.closed()->exists(keylet::offer(carol.id(), carolOfferSeq))); BEAST_EXPECT(!env.closed()->exists(keylet::ticket(carol.id(), carolTicketSeq))); - BEAST_EXPECT(!env.closed()->exists(keylet::signers(carol.id()))); + BEAST_EXPECT(!env.closed()->exists(keylet::signerList(carol.id()))); // Verify that Carol's XRP, minus the fee, was transferred to becky. BEAST_EXPECT(env.balance(becky) == carolOldBalance + beckyOldBalance - acctDelFee); diff --git a/src/test/app/MultiSign_test.cpp b/src/test/app/MultiSign_test.cpp index f41042644f9..0777cc450b4 100644 --- a/src/test/app/MultiSign_test.cpp +++ b/src/test/app/MultiSign_test.cpp @@ -1509,7 +1509,7 @@ class MultiSign_test : public beast::unit_test::suite env.close(); // Verify that the SignerList object was created correctly. - auto const& sle = env.le(keylet::signers(alice.id())); + auto const& sle = env.le(keylet::signerList(alice.id())); BEAST_EXPECT(sle); BEAST_EXPECT(sle->getFieldArray(sfSignerEntries).size() == 2); if (features[fixIncludeKeyletFields]) diff --git a/src/xrpld/rpc/detail/RPCHelpers.cpp b/src/xrpld/rpc/detail/RPCHelpers.cpp index 1bf6d32bf96..c81a491f6d4 100644 --- a/src/xrpld/rpc/detail/RPCHelpers.cpp +++ b/src/xrpld/rpc/detail/RPCHelpers.cpp @@ -90,7 +90,7 @@ isRelatedToAccount( } if (sle->getType() == ltSIGNER_LIST) { - Keylet const accountSignerList = keylet::signers(accountID); + Keylet const accountSignerList = keylet::signerList(accountID); return sle->key() == accountSignerList.key; } if (sle->getType() == ltNFTOKEN_OFFER) diff --git a/src/xrpld/rpc/handlers/account/AccountInfo.cpp b/src/xrpld/rpc/handlers/account/AccountInfo.cpp index c1c6c713399..ba25e905c3b 100644 --- a/src/xrpld/rpc/handlers/account/AccountInfo.cpp +++ b/src/xrpld/rpc/handlers/account/AccountInfo.cpp @@ -222,7 +222,7 @@ doAccountInfo(RPC::JsonContext& context) // This code will need to be revisited if in the future we support // multiple SignerLists on one account. - auto const sleSigners = ledger->read(keylet::signers(accountID)); + auto const sleSigners = ledger->read(keylet::signerList(accountID)); if (sleSigners) jvSignerList.append(sleSigners->getJson(JsonOptions::none)); From f6c221085fb8150d50e2d97080789945887ad00f Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:25:07 -0400 Subject: [PATCH 04/10] keylet::payChan -> keylet::payChannel --- include/xrpl/protocol/Indexes.h | 2 +- include/xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/protocol/Indexes.cpp | 2 +- .../tx/transactors/payment_channel/PaymentChannelCreate.cpp | 2 +- src/test/app/AccountDelete_test.cpp | 4 ++-- src/test/app/PayChan_test.cpp | 2 +- src/test/jtx/impl/TestHelpers.cpp | 2 +- src/test/rpc/AccountTx_test.cpp | 2 +- src/test/rpc/LedgerEntry_test.cpp | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 0202c01164c..d4f2d71d9b8 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -209,7 +209,7 @@ escrow(AccountID const& src, std::uint32_t seq) noexcept; /** A PaymentChannel */ Keylet -payChan(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexcept; +payChannel(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexcept; /** NFT page keylets diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 0c70d0a7a50..cbdeb767480 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -346,7 +346,7 @@ LEDGER_ENTRY(ltESCROW, 0x0075, Escrow, escrow, ({ /** A ledger object describing a single unidirectional XRP payment channel. - \sa keylet::payChan + \sa keylet::payChannel */ LEDGER_ENTRY(ltPAYCHAN, 0x0078, PayChannel, payment_channel, ({ {sfAccount, soeREQUIRED}, diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 7bf88a15d8f..fb71bc6df26 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -376,7 +376,7 @@ escrow(AccountID const& src, std::uint32_t seq) noexcept } Keylet -payChan(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexcept +payChannel(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexcept { return {ltPAYCHAN, indexHash(LedgerNameSpace::XRP_PAYMENT_CHANNEL, src, dst, seq)}; } diff --git a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp index 4ced2d10bc7..bff88dc1b22 100644 --- a/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp +++ b/src/libxrpl/tx/transactors/payment_channel/PaymentChannelCreate.cpp @@ -139,7 +139,7 @@ PaymentChannelCreate::doApply() // // Note that we use the value from the sequence or ticket as the // payChan sequence. For more explanation see comments in SeqProxy.h. - Keylet const payChanKeylet = keylet::payChan(account, dst, ctx_.tx.getSeqValue()); + Keylet const payChanKeylet = keylet::payChannel(account, dst, ctx_.tx.getSeqValue()); auto const slep = std::make_shared(payChanKeylet); // Funds held in this channel diff --git a/src/test/app/AccountDelete_test.cpp b/src/test/app/AccountDelete_test.cpp index 2debdc1985a..876f9a8d3e4 100644 --- a/src/test/app/AccountDelete_test.cpp +++ b/src/test/app/AccountDelete_test.cpp @@ -385,7 +385,7 @@ class AccountDelete_test : public beast::unit_test::suite env(escrow::cancel(becky, alice, escrowSeq)); env.close(); - Keylet const alicePayChanKey{keylet::payChan(alice, becky, env.seq(alice))}; + Keylet const alicePayChanKey{keylet::payChannel(alice, becky, env.seq(alice))}; env(payChanCreate(alice, becky, XRP(57), 4s, env.now() + 2s, alice.pk())); env.close(); @@ -416,7 +416,7 @@ class AccountDelete_test : public beast::unit_test::suite // gw creates a PayChannel with alice as the destination, this should // prevent alice from deleting her account. - Keylet const gwPayChanKey{keylet::payChan(gw, alice, env.seq(gw))}; + Keylet const gwPayChanKey{keylet::payChannel(gw, alice, env.seq(gw))}; env(payChanCreate(gw, alice, XRP(68), 4s, env.now() + 2s, alice.pk())); env.close(); diff --git a/src/test/app/PayChan_test.cpp b/src/test/app/PayChan_test.cpp index f69187c50f7..157390ceaf3 100644 --- a/src/test/app/PayChan_test.cpp +++ b/src/test/app/PayChan_test.cpp @@ -62,7 +62,7 @@ struct PayChan_test : public beast::unit_test::suite auto const sle = view.read(keylet::account(account)); if (!sle) return {}; - auto const k = keylet::payChan(account, dst, (*sle)[sfSequence] - 1); + auto const k = keylet::payChannel(account, dst, (*sle)[sfSequence] - 1); return {k.key, view.read(k)}; } diff --git a/src/test/jtx/impl/TestHelpers.cpp b/src/test/jtx/impl/TestHelpers.cpp index 7c7b6b31b94..8c42d0019bc 100644 --- a/src/test/jtx/impl/TestHelpers.cpp +++ b/src/test/jtx/impl/TestHelpers.cpp @@ -576,7 +576,7 @@ claim( uint256 channel(AccountID const& account, AccountID const& dst, std::uint32_t seqProxyValue) { - auto const k = keylet::payChan(account, dst, seqProxyValue); + auto const k = keylet::payChannel(account, dst, seqProxyValue); return k.key; } diff --git a/src/test/rpc/AccountTx_test.cpp b/src/test/rpc/AccountTx_test.cpp index 60ad83934ab..7e33762b384 100644 --- a/src/test/rpc/AccountTx_test.cpp +++ b/src/test/rpc/AccountTx_test.cpp @@ -589,7 +589,7 @@ class AccountTx_test : public beast::unit_test::suite env(payChanCreate, sig(alie)); env.close(); - std::string const payChanIndex{strHex(keylet::payChan(alice, gw, payChanSeq).key)}; + std::string const payChanIndex{strHex(keylet::payChannel(alice, gw, payChanSeq).key)}; { Json::Value payChanFund; diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index 48a766117b4..e88c70fb761 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -1710,7 +1710,7 @@ class LedgerEntry_test : public beast::unit_test::suite std::string const ledgerHash{to_string(env.closed()->header().hash)}; - uint256 const payChanIndex{keylet::payChan(alice, env.master, env.seq(alice) - 1).key}; + uint256 const payChanIndex{keylet::payChannel(alice, env.master, env.seq(alice) - 1).key}; { // Request the payment channel using its index. Json::Value jvParams; From 93d027648305dc0684f194838eea2f9c6bb56e01 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:26:29 -0400 Subject: [PATCH 05/10] keylet::nftpage -> keylet::nftokenPage --- include/xrpl/protocol/Indexes.h | 14 +-- .../xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/ledger/helpers/NFTokenHelpers.cpp | 20 ++--- src/libxrpl/protocol/Indexes.cpp | 8 +- src/libxrpl/tx/invariants/InvariantCheck.cpp | 4 +- .../tx/transactors/account/AccountDelete.cpp | 4 +- src/test/app/FixNFTokenPageLinks_test.cpp | 73 ++++++++-------- src/test/app/Invariants_test.cpp | 28 +++--- src/test/app/NFTokenBurn_test.cpp | 85 ++++++++++--------- src/test/rpc/LedgerEntry_test.cpp | 2 +- .../rpc/handlers/account/AccountNFTs.cpp | 4 +- .../rpc/handlers/account/AccountObjects.cpp | 4 +- 12 files changed, 127 insertions(+), 121 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index d4f2d71d9b8..6bb097db4d1 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -221,14 +221,14 @@ payChannel(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexce /** @{ */ /** A keylet for the owner's first possible NFT page. */ Keylet -nftpage_min(AccountID const& owner); +nftokenPage_min(AccountID const& owner); /** A keylet for the owner's last possible NFT page. */ Keylet -nftpage_max(AccountID const& owner); +nftokenPage_max(AccountID const& owner); Keylet -nftpage(Keylet const& k, uint256 const& token); +nftokenPage(Keylet const& k, uint256 const& token); /** @} */ /** An offer from an account to buy or sell an NFT */ @@ -379,8 +379,12 @@ std::array, 6> const directAccountKeylets{ {.function = &keylet::signerList, .expectedLEName = jss::SignerList, .includeInTests = true}, // It's normally impossible to create an item at nftpage_min, but // test it anyway, since the invariant checks for it. - {.function = &keylet::nftpage_min, .expectedLEName = jss::NFTokenPage, .includeInTests = true}, - {.function = &keylet::nftpage_max, .expectedLEName = jss::NFTokenPage, .includeInTests = true}, + {.function = &keylet::nftokenPage_min, + .expectedLEName = jss::NFTokenPage, + .includeInTests = true}, + {.function = &keylet::nftokenPage_max, + .expectedLEName = jss::NFTokenPage, + .includeInTests = true}, {.function = &keylet::did, .expectedLEName = jss::DID, .includeInTests = true}}}; MPTID diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index cbdeb767480..044eea03a7d 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -84,7 +84,7 @@ LEDGER_ENTRY(ltNEGATIVE_UNL, 0x004e, NegativeUNL, nunl, ({ /** A ledger object which contains a list of NFTs - \sa keylet::nftpage_min, keylet::nftpage_max, keylet::nftpage + \sa keylet::nftokenPage_min, keylet::nftokenPage_max, keylet::nftokenPage */ LEDGER_ENTRY(ltNFTOKEN_PAGE, 0x0050, NFTokenPage, nft_page, ({ {sfPreviousPageMin, soeOPTIONAL}, diff --git a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp index ea2d025b008..802bf027147 100644 --- a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp @@ -43,8 +43,8 @@ namespace xrpl::nft { static std::shared_ptr locatePage(ReadView const& view, AccountID const& owner, uint256 const& id) { - auto const first = keylet::nftpage(keylet::nftpage_min(owner), id); - auto const last = keylet::nftpage_max(owner); + auto const first = keylet::nftokenPage(keylet::nftokenPage_min(owner), id); + auto const last = keylet::nftokenPage_max(owner); // This NFT can only be found in the first page with a key that's strictly // greater than `first`, so look for that, up until the maximum possible @@ -56,8 +56,8 @@ locatePage(ReadView const& view, AccountID const& owner, uint256 const& id) static std::shared_ptr locatePage(ApplyView& view, AccountID const& owner, uint256 const& id) { - auto const first = keylet::nftpage(keylet::nftpage_min(owner), id); - auto const last = keylet::nftpage_max(owner); + auto const first = keylet::nftokenPage(keylet::nftokenPage_min(owner), id); + auto const last = keylet::nftokenPage_max(owner); // This NFT can only be found in the first page with a key that's strictly // greater than `first`, so look for that, up until the maximum possible @@ -73,9 +73,9 @@ getPageForToken( uint256 const& id, std::function const& createCallback) { - auto const base = keylet::nftpage_min(owner); - auto const first = keylet::nftpage(base, id); - auto const last = keylet::nftpage_max(owner); + auto const base = keylet::nftokenPage_min(owner); + auto const first = keylet::nftokenPage(base, id); + auto const last = keylet::nftokenPage_max(owner); // This NFT can only be found in the first page with a key that's strictly // greater than `first`, so look for that, up until the maximum possible @@ -181,7 +181,7 @@ getPageForToken( ? narr[dirMaxTokensPerPage - 1].getFieldH256(sfNFTokenID).next() : carr[0].getFieldH256(sfNFTokenID); - auto np = std::make_shared(keylet::nftpage(base, tokenIDForNewPage)); + auto np = std::make_shared(keylet::nftokenPage(base, tokenIDForNewPage)); XRPL_ASSERT(np->key() > base.key, "xrpl::nft::getPageForToken : valid NFT page index"); np->setFieldArray(sfNFTokens, narr); np->setFieldH256(sfNextPageMin, cp->key()); @@ -654,11 +654,11 @@ repairNFTokenDirectoryLinks(ApplyView& view, AccountID const& owner) { bool didRepair = false; - auto const last = keylet::nftpage_max(owner); + auto const last = keylet::nftokenPage_max(owner); std::shared_ptr page = view.peek(Keylet( ltNFTOKEN_PAGE, - view.succ(keylet::nftpage_min(owner).key, last.key.next()).value_or(last.key))); + view.succ(keylet::nftokenPage_min(owner).key, last.key.next()).value_or(last.key))); if (!page) return didRepair; diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index fb71bc6df26..67e58fa7790 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -382,7 +382,7 @@ payChannel(AccountID const& src, AccountID const& dst, std::uint32_t seq) noexce } Keylet -nftpage_min(AccountID const& owner) +nftokenPage_min(AccountID const& owner) { std::array buf{}; std::memcpy(buf.data(), owner.data(), owner.size()); @@ -390,7 +390,7 @@ nftpage_min(AccountID const& owner) } Keylet -nftpage_max(AccountID const& owner) +nftokenPage_max(AccountID const& owner) { uint256 id = nft::pageMask; std::memcpy(id.data(), owner.data(), owner.size()); @@ -398,9 +398,9 @@ nftpage_max(AccountID const& owner) } Keylet -nftpage(Keylet const& k, uint256 const& token) +nftokenPage(Keylet const& k, uint256 const& token) { - XRPL_ASSERT(k.type == ltNFTOKEN_PAGE, "xrpl::keylet::nftpage : valid input type"); + XRPL_ASSERT(k.type == ltNFTOKEN_PAGE, "xrpl::keylet::nftokenPage : valid input type"); return {ltNFTOKEN_PAGE, (k.key & ~nft::pageMask) + (token & nft::pageMask)}; } diff --git a/src/libxrpl/tx/invariants/InvariantCheck.cpp b/src/libxrpl/tx/invariants/InvariantCheck.cpp index 2f12c7ce1e5..3f3d2220a5b 100644 --- a/src/libxrpl/tx/invariants/InvariantCheck.cpp +++ b/src/libxrpl/tx/invariants/InvariantCheck.cpp @@ -537,8 +537,8 @@ AccountRootsDeletedClean::finalize( // checked above as entries in directAccountKeylets. This uses // view.succ() to check for any NFT pages in between the two // endpoints. - Keylet const first = keylet::nftpage_min(accountID); - Keylet const last = keylet::nftpage_max(accountID); + Keylet const first = keylet::nftokenPage_min(accountID); + Keylet const last = keylet::nftokenPage_max(accountID); std::optional key = view.succ(first.key, last.key.next()); diff --git a/src/libxrpl/tx/transactors/account/AccountDelete.cpp b/src/libxrpl/tx/transactors/account/AccountDelete.cpp index b687ed0bd78..a2d65c6b831 100644 --- a/src/libxrpl/tx/transactors/account/AccountDelete.cpp +++ b/src/libxrpl/tx/transactors/account/AccountDelete.cpp @@ -261,8 +261,8 @@ AccountDelete::preclaim(PreclaimContext const& ctx) return tecHAS_OBLIGATIONS; // If the account owns any NFTs it cannot be deleted. - Keylet const first = keylet::nftpage_min(account); - Keylet const last = keylet::nftpage_max(account); + Keylet const first = keylet::nftokenPage_min(account); + Keylet const last = keylet::nftokenPage_max(account); auto const cp = ctx.view.read( Keylet(ltNFTOKEN_PAGE, ctx.view.succ(first.key, last.key.next()).value_or(last.key))); diff --git a/src/test/app/FixNFTokenPageLinks_test.cpp b/src/test/app/FixNFTokenPageLinks_test.cpp index 56484bb396b..6f778318b3d 100644 --- a/src/test/app/FixNFTokenPageLinks_test.cpp +++ b/src/test/app/FixNFTokenPageLinks_test.cpp @@ -260,7 +260,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Get the index of the middle page. uint256 const aliceMiddleNFTokenPageIndex = [&env, &alice]() { - auto lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); return lastNFTokenPage->at(sfPreviousPageMin); }(); @@ -283,12 +283,12 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Removing the last token from the last page deletes the last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - BEAST_EXPECT(!env.le(keylet::nftpage_max(alice))); + BEAST_EXPECT(!env.le(keylet::nftokenPage_max(alice))); // alice's "middle" page is still present, but has no links. { - auto aliceMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), aliceMiddleNFTokenPageIndex)); + auto aliceMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), aliceMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(aliceMiddleNFTokenPage)) return; @@ -308,7 +308,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Get the index of the middle page. uint256 const bobMiddleNFTokenPageIndex = [&env, &bob]() { - auto lastNFTokenPage = env.le(keylet::nftpage_max(bob)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(bob)); return lastNFTokenPage->at(sfPreviousPageMin); }(); @@ -325,13 +325,13 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Removing the last token from the last page deletes the last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - BEAST_EXPECT(!env.le(keylet::nftpage_max(bob))); + BEAST_EXPECT(!env.le(keylet::nftokenPage_max(bob))); // bob's "middle" page is still present, but has lost the // NextPageMin field. { - auto bobMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(bob), bobMiddleNFTokenPageIndex)); + auto bobMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(bob), bobMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(bobMiddleNFTokenPage)) return; @@ -351,7 +351,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Get the index of the middle page. uint256 const carolMiddleNFTokenPageIndex = [&env, &carol]() { - auto lastNFTokenPage = env.le(keylet::nftpage_max(carol)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(carol)); return lastNFTokenPage->at(sfPreviousPageMin); }(); @@ -376,12 +376,12 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Removing the last token from the last page deletes the last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - BEAST_EXPECT(!env.le(keylet::nftpage_max(carol))); + BEAST_EXPECT(!env.le(keylet::nftokenPage_max(carol))); // carol's "middle" page is still present, but has lost the // NextPageMin field. - auto carolMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(carol), carolMiddleNFTokenPageIndex)); + auto carolMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(carol), carolMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(carolMiddleNFTokenPage)) return; @@ -411,8 +411,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // carol's "middle" page is present and still has no NextPageMin field. { - auto carolMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(carol), carolMiddleNFTokenPageIndex)); + auto carolMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(carol), carolMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(carolMiddleNFTokenPage)) return; @@ -421,7 +421,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite } // carol has a "last" page again, but it has no PreviousPageMin field. { - auto carolLastNFTokenPage = env.le(keylet::nftpage_max(carol)); + auto carolLastNFTokenPage = env.le(keylet::nftokenPage_max(carol)); BEAST_EXPECT(!carolLastNFTokenPage->isFieldPresent(sfPreviousPageMin)); BEAST_EXPECT(!carolLastNFTokenPage->isFieldPresent(sfNextPageMin)); @@ -449,12 +449,12 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Verify that alice's NFToken directory is still damaged. // alice's last page should still be missing. - BEAST_EXPECT(!env.le(keylet::nftpage_max(alice))); + BEAST_EXPECT(!env.le(keylet::nftokenPage_max(alice))); // alice's "middle" page is still present and has no links. { - auto aliceMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), aliceMiddleNFTokenPageIndex)); + auto aliceMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), aliceMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(aliceMiddleNFTokenPage)) return; @@ -473,7 +473,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // alice's last page should now be present and include no links. { - auto aliceLastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto aliceLastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(aliceLastNFTokenPage)) return; @@ -482,8 +482,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite } // alice's middle page should be gone. - BEAST_EXPECT( - !env.le(keylet::nftpage(keylet::nftpage_min(alice), aliceMiddleNFTokenPageIndex))); + BEAST_EXPECT(!env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), aliceMiddleNFTokenPageIndex))); BEAST_EXPECT(nftCount(env, alice) == 32); BEAST_EXPECT(ownerCount(env, alice) == 1); @@ -495,12 +495,12 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // Verify that bob's NFToken directory is still damaged. // bob's last page should still be missing. - BEAST_EXPECT(!env.le(keylet::nftpage_max(bob))); + BEAST_EXPECT(!env.le(keylet::nftokenPage_max(bob))); // bob's "middle" page is still present and missing NextPageMin. { - auto bobMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(bob), bobMiddleNFTokenPageIndex)); + auto bobMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(bob), bobMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(bobMiddleNFTokenPage)) return; @@ -515,7 +515,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // bob's last page should now be present and include a previous // link but no next link. { - auto const lastPageKeylet = keylet::nftpage_max(bob); + auto const lastPageKeylet = keylet::nftokenPage_max(bob); auto const bobLastNFTokenPage = env.le(lastPageKeylet); if (!BEAST_EXPECT(bobLastNFTokenPage)) return; @@ -525,8 +525,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite BEAST_EXPECT(!bobLastNFTokenPage->isFieldPresent(sfNextPageMin)); auto const bobNewFirstNFTokenPage = env.le( - keylet::nftpage( - keylet::nftpage_min(bob), bobLastNFTokenPage->at(sfPreviousPageMin))); + keylet::nftokenPage( + keylet::nftokenPage_min(bob), bobLastNFTokenPage->at(sfPreviousPageMin))); if (!BEAST_EXPECT(bobNewFirstNFTokenPage)) return; @@ -537,7 +537,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite } // bob's middle page should be gone. - BEAST_EXPECT(!env.le(keylet::nftpage(keylet::nftpage_min(bob), bobMiddleNFTokenPageIndex))); + BEAST_EXPECT( + !env.le(keylet::nftokenPage(keylet::nftokenPage_min(bob), bobMiddleNFTokenPageIndex))); BEAST_EXPECT(nftCount(env, bob) == 64); BEAST_EXPECT(ownerCount(env, bob) == 2); @@ -550,8 +551,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // carol's "middle" page is present and has no NextPageMin field. { - auto carolMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(carol), carolMiddleNFTokenPageIndex)); + auto carolMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(carol), carolMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(carolMiddleNFTokenPage)) return; @@ -560,7 +561,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite } // carol has a "last" page, but it has no PreviousPageMin field. { - auto carolLastNFTokenPage = env.le(keylet::nftpage_max(carol)); + auto carolLastNFTokenPage = env.le(keylet::nftokenPage_max(carol)); BEAST_EXPECT(!carolLastNFTokenPage->isFieldPresent(sfPreviousPageMin)); BEAST_EXPECT(!carolLastNFTokenPage->isFieldPresent(sfNextPageMin)); @@ -572,9 +573,9 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite { // carol's "middle" page is present and now has a NextPageMin field. - auto const lastPageKeylet = keylet::nftpage_max(carol); - auto carolMiddleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(carol), carolMiddleNFTokenPageIndex)); + auto const lastPageKeylet = keylet::nftokenPage_max(carol); + auto carolMiddleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(carol), carolMiddleNFTokenPageIndex)); if (!BEAST_EXPECT(carolMiddleNFTokenPage)) return; @@ -595,8 +596,8 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // carol also has a "first" page that includes a NextPageMin field. auto carolFirstNFTokenPage = env.le( - keylet::nftpage( - keylet::nftpage_min(carol), carolMiddleNFTokenPage->at(sfPreviousPageMin))); + keylet::nftokenPage( + keylet::nftokenPage_min(carol), carolMiddleNFTokenPage->at(sfPreviousPageMin))); if (!BEAST_EXPECT(carolFirstNFTokenPage)) return; diff --git a/src/test/app/Invariants_test.cpp b/src/test/app/Invariants_test.cpp index ed2ed59b202..9ecd6f53f32 100644 --- a/src/test/app/Invariants_test.cpp +++ b/src/test/app/Invariants_test.cpp @@ -1175,7 +1175,7 @@ class Invariants_test : public beast::unit_test::suite doInvariantCheck( {{"NFT page has invalid size"}}, [&makeNFTokenIDs](Account const& A1, Account const&, ApplyContext& ac) { - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, makeNFTokenIDs(0)); ac.view().insert(nftPage); @@ -1185,7 +1185,7 @@ class Invariants_test : public beast::unit_test::suite doInvariantCheck( {{"NFT page has invalid size"}}, [&makeNFTokenIDs](Account const& A1, Account const&, ApplyContext& ac) { - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, makeNFTokenIDs(33)); ac.view().insert(nftPage); @@ -1198,7 +1198,7 @@ class Invariants_test : public beast::unit_test::suite STArray nfTokens = makeNFTokenIDs(2); std::iter_swap(nfTokens.begin(), nfTokens.begin() + 1); - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, nfTokens); ac.view().insert(nftPage); @@ -1211,7 +1211,7 @@ class Invariants_test : public beast::unit_test::suite STArray nfTokens = makeNFTokenIDs(1); nfTokens[0].setFieldVL(sfURI, Blob{}); - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, nfTokens); ac.view().insert(nftPage); @@ -1221,9 +1221,9 @@ class Invariants_test : public beast::unit_test::suite doInvariantCheck( {{"NFT page is improperly linked"}}, [&makeNFTokenIDs](Account const& A1, Account const&, ApplyContext& ac) { - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, makeNFTokenIDs(1)); - nftPage->setFieldH256(sfPreviousPageMin, keylet::nftpage_max(A1).key); + nftPage->setFieldH256(sfPreviousPageMin, keylet::nftokenPage_max(A1).key); ac.view().insert(nftPage); return true; @@ -1232,9 +1232,9 @@ class Invariants_test : public beast::unit_test::suite doInvariantCheck( {{"NFT page is improperly linked"}}, [&makeNFTokenIDs](Account const& A1, Account const& A2, ApplyContext& ac) { - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, makeNFTokenIDs(1)); - nftPage->setFieldH256(sfPreviousPageMin, keylet::nftpage_min(A2).key); + nftPage->setFieldH256(sfPreviousPageMin, keylet::nftokenPage_min(A2).key); ac.view().insert(nftPage); return true; @@ -1243,7 +1243,7 @@ class Invariants_test : public beast::unit_test::suite doInvariantCheck( {{"NFT page is improperly linked"}}, [&makeNFTokenIDs](Account const& A1, Account const&, ApplyContext& ac) { - auto nftPage = std::make_shared(keylet::nftpage_max(A1)); + auto nftPage = std::make_shared(keylet::nftokenPage_max(A1)); nftPage->setFieldArray(sfNFTokens, makeNFTokenIDs(1)); nftPage->setFieldH256(sfNextPageMin, nftPage->key()); @@ -1255,10 +1255,10 @@ class Invariants_test : public beast::unit_test::suite {{"NFT page is improperly linked"}}, [&makeNFTokenIDs](Account const& A1, Account const& A2, ApplyContext& ac) { STArray nfTokens = makeNFTokenIDs(1); - auto nftPage = std::make_shared(keylet::nftpage( - keylet::nftpage_max(A1), ++(nfTokens[0].getFieldH256(sfNFTokenID)))); + auto nftPage = std::make_shared(keylet::nftokenPage( + keylet::nftokenPage_max(A1), ++(nfTokens[0].getFieldH256(sfNFTokenID)))); nftPage->setFieldArray(sfNFTokens, nfTokens); - nftPage->setFieldH256(sfNextPageMin, keylet::nftpage_max(A2).key); + nftPage->setFieldH256(sfNextPageMin, keylet::nftokenPage_max(A2).key); ac.view().insert(nftPage); return true; @@ -1268,8 +1268,8 @@ class Invariants_test : public beast::unit_test::suite {{"NFT found in incorrect page"}}, [&makeNFTokenIDs](Account const& A1, Account const&, ApplyContext& ac) { STArray nfTokens = makeNFTokenIDs(2); - auto nftPage = std::make_shared(keylet::nftpage( - keylet::nftpage_max(A1), (nfTokens[1].getFieldH256(sfNFTokenID)))); + auto nftPage = std::make_shared(keylet::nftokenPage( + keylet::nftokenPage_max(A1), (nfTokens[1].getFieldH256(sfNFTokenID)))); nftPage->setFieldArray(sfNFTokens, nfTokens); ac.view().insert(nftPage); diff --git a/src/test/app/NFTokenBurn_test.cpp b/src/test/app/NFTokenBurn_test.cpp index efb255ea2db..4707433a750 100644 --- a/src/test/app/NFTokenBurn_test.cpp +++ b/src/test/app/NFTokenBurn_test.cpp @@ -472,19 +472,19 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that that all three pages are present and remember the // indexes. - auto lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; uint256 const middleNFTokenPageIndex = lastNFTokenPage->at(sfPreviousPageMin); auto middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; uint256 const firstNFTokenPageIndex = middleNFTokenPage->at(sfPreviousPageMin); auto firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); if (!BEAST_EXPECT(firstNFTokenPage)) return; @@ -498,7 +498,7 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that the last page is still present and contains just one // NFT. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; @@ -517,21 +517,21 @@ class NFTokenBurn_test : public beast::unit_test::suite // _previous_ page because we need to preserve that last // page an an anchor. The contents of the next-to-last page // are moved into the last page. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(lastNFTokenPage); BEAST_EXPECT(lastNFTokenPage->at(~sfPreviousPageMin) == firstNFTokenPageIndex); BEAST_EXPECT(!lastNFTokenPage->isFieldPresent(sfNextPageMin)); BEAST_EXPECT(lastNFTokenPage->getFieldArray(sfNFTokens).size() == 32); // The "middle" page should be gone. - middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + middleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); BEAST_EXPECT(!middleNFTokenPage); // The "first" page should still be present and linked to // the last page. - firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + firstNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); BEAST_EXPECT(firstNFTokenPage); BEAST_EXPECT(!firstNFTokenPage->isFieldPresent(sfPreviousPageMin)); BEAST_EXPECT(firstNFTokenPage->at(~sfNextPageMin) == lastNFTokenPage->key()); @@ -542,13 +542,13 @@ class NFTokenBurn_test : public beast::unit_test::suite // Removing the last token from the last page deletes the last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(!lastNFTokenPage); // The "middle" page is still present, but has lost the // NextPageMin field. - middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + middleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; BEAST_EXPECT(middleNFTokenPage->isFieldPresent(sfPreviousPageMin)); @@ -576,19 +576,19 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that that all three pages are present and remember the // indexes. - auto lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; uint256 const middleNFTokenPageIndex = lastNFTokenPage->at(sfPreviousPageMin); auto middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; uint256 const firstNFTokenPageIndex = middleNFTokenPage->at(sfPreviousPageMin); auto firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); if (!BEAST_EXPECT(firstNFTokenPage)) return; @@ -604,17 +604,18 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that middle page is gone and the links in the two // remaining pages are correct. middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); BEAST_EXPECT(!middleNFTokenPage); - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(!lastNFTokenPage->isFieldPresent(sfNextPageMin)); BEAST_EXPECT(lastNFTokenPage->getFieldH256(sfPreviousPageMin) == firstNFTokenPageIndex); firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); BEAST_EXPECT( - firstNFTokenPage->getFieldH256(sfNextPageMin) == keylet::nftpage_max(alice).key); + firstNFTokenPage->getFieldH256(sfNextPageMin) == + keylet::nftokenPage_max(alice).key); BEAST_EXPECT(!firstNFTokenPage->isFieldPresent(sfPreviousPageMin)); // Burn the remaining nfts. @@ -637,19 +638,19 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that that all three pages are present and remember the // indexes. - auto lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; uint256 const middleNFTokenPageIndex = lastNFTokenPage->at(sfPreviousPageMin); auto middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; uint256 const firstNFTokenPageIndex = middleNFTokenPage->at(sfPreviousPageMin); auto firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); if (!BEAST_EXPECT(firstNFTokenPage)) return; @@ -664,18 +665,18 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify the first page is gone. firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); BEAST_EXPECT(!firstNFTokenPage); // Check the links in the other two pages. middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; BEAST_EXPECT(!middleNFTokenPage->isFieldPresent(sfPreviousPageMin)); BEAST_EXPECT(middleNFTokenPage->isFieldPresent(sfNextPageMin)); - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; BEAST_EXPECT(lastNFTokenPage->isFieldPresent(sfPreviousPageMin)); @@ -696,20 +697,20 @@ class NFTokenBurn_test : public beast::unit_test::suite // _previous_ page because we need to preserve that last // page an an anchor. The contents of the next-to-last page // are moved into the last page. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(lastNFTokenPage); BEAST_EXPECT(!lastNFTokenPage->isFieldPresent(sfPreviousPageMin)); BEAST_EXPECT(!lastNFTokenPage->isFieldPresent(sfNextPageMin)); BEAST_EXPECT(lastNFTokenPage->getFieldArray(sfNFTokens).size() == 32); // The "middle" page should be gone. - middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + middleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); BEAST_EXPECT(!middleNFTokenPage); // The "first" page should still be gone. - firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + firstNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); BEAST_EXPECT(!firstNFTokenPage); } else @@ -717,13 +718,13 @@ class NFTokenBurn_test : public beast::unit_test::suite // Removing the last token from the last page deletes the last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(!lastNFTokenPage); // The "middle" page is still present, but has lost the // NextPageMin field. - middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + middleNFTokenPage = env.le( + keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; BEAST_EXPECT(!middleNFTokenPage->isFieldPresent(sfPreviousPageMin)); @@ -777,7 +778,7 @@ class NFTokenBurn_test : public beast::unit_test::suite env.app(), ov, tx, tesSUCCESS, env.current()->fees().base, tapNONE, jlog}; // Verify that the last page is present and contains one NFT. - auto lastNFTokenPage = ac.view().peek(keylet::nftpage_max(alice)); + auto lastNFTokenPage = ac.view().peek(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; BEAST_EXPECT(lastNFTokenPage->getFieldArray(sfNFTokens).size() == 1); @@ -810,10 +811,10 @@ class NFTokenBurn_test : public beast::unit_test::suite env.app(), ov, tx, tesSUCCESS, env.current()->fees().base, tapNONE, jlog}; // Verify that the middle page is present. - auto lastNFTokenPage = ac.view().peek(keylet::nftpage_max(alice)); + auto lastNFTokenPage = ac.view().peek(keylet::nftokenPage_max(alice)); auto middleNFTokenPage = ac.view().peek( - keylet::nftpage( - keylet::nftpage_min(alice), + keylet::nftokenPage( + keylet::nftokenPage_min(alice), lastNFTokenPage->getFieldH256(sfPreviousPageMin))); BEAST_EXPECT(middleNFTokenPage); @@ -1093,19 +1094,19 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify that that all three pages are present and remember the // indexes. - auto lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + auto lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); if (!BEAST_EXPECT(lastNFTokenPage)) return; uint256 const middleNFTokenPageIndex = lastNFTokenPage->at(sfPreviousPageMin); auto middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; uint256 const firstNFTokenPageIndex = middleNFTokenPage->at(sfPreviousPageMin); auto firstNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), firstNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), firstNFTokenPageIndex)); if (!BEAST_EXPECT(firstNFTokenPage)) return; @@ -1129,14 +1130,14 @@ class NFTokenBurn_test : public beast::unit_test::suite // Removing the last token from the last page deletes alice's last // page. This is a bug. The contents of the next-to-last page // should have been moved into the last page. - lastNFTokenPage = env.le(keylet::nftpage_max(alice)); + lastNFTokenPage = env.le(keylet::nftokenPage_max(alice)); BEAST_EXPECT(!lastNFTokenPage); BEAST_EXPECT(ownerCount(env, alice) == 2); // The "middle" page is still present, but has lost the // NextPageMin field. middleNFTokenPage = - env.le(keylet::nftpage(keylet::nftpage_min(alice), middleNFTokenPageIndex)); + env.le(keylet::nftokenPage(keylet::nftokenPage_min(alice), middleNFTokenPageIndex)); if (!BEAST_EXPECT(middleNFTokenPage)) return; BEAST_EXPECT(middleNFTokenPage->isFieldPresent(sfPreviousPageMin)); diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index e88c70fb761..f50b32e4a81 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -1561,7 +1561,7 @@ class LedgerEntry_test : public beast::unit_test::suite env(token::mint(issuer, 0), txflags(tfTransferable)); env.close(); - auto const nftpage = keylet::nftpage_max(issuer); + auto const nftpage = keylet::nftokenPage_max(issuer); BEAST_EXPECT(env.le(nftpage) != nullptr); { diff --git a/src/xrpld/rpc/handlers/account/AccountNFTs.cpp b/src/xrpld/rpc/handlers/account/AccountNFTs.cpp index 605dd3b07cb..7d619ca6559 100644 --- a/src/xrpld/rpc/handlers/account/AccountNFTs.cpp +++ b/src/xrpld/rpc/handlers/account/AccountNFTs.cpp @@ -74,8 +74,8 @@ doAccountNFTs(RPC::JsonContext& context) return RPC::invalid_field_error(jss::marker); } - auto const first = keylet::nftpage(keylet::nftpage_min(accountID), marker); - auto const last = keylet::nftpage_max(accountID); + auto const first = keylet::nftokenPage(keylet::nftokenPage_min(accountID), marker); + auto const last = keylet::nftokenPage_max(accountID); auto cp = ledger->read( Keylet(ltNFTOKEN_PAGE, ledger->succ(first.key, last.key.next()).value_or(last.key))); diff --git a/src/xrpld/rpc/handlers/account/AccountObjects.cpp b/src/xrpld/rpc/handlers/account/AccountObjects.cpp index 5b172cd4c3a..200f4bce255 100644 --- a/src/xrpld/rpc/handlers/account/AccountObjects.cpp +++ b/src/xrpld/rpc/handlers/account/AccountObjects.cpp @@ -61,7 +61,7 @@ getAccountObjects( (!typeFilter.has_value() || typeMatchesFilter(typeFilter.value(), ltNFTOKEN_PAGE)) && dirIndex == beast::zero; - Keylet const firstNFTPage = keylet::nftpage_min(account); + Keylet const firstNFTPage = keylet::nftokenPage_min(account); // we need to check the marker to see if it is an NFTTokenPage index. if (iterateNFTPages && entryIndex != beast::zero) @@ -85,7 +85,7 @@ getAccountObjects( Keylet const first = entryIndex == beast::zero ? firstNFTPage : Keylet{ltNFTOKEN_PAGE, entryIndex}; - Keylet const last = keylet::nftpage_max(account); + Keylet const last = keylet::nftokenPage_max(account); // current key uint256 ck = ledger.succ(first.key, last.key.next()).value_or(last.key); From e7b63f04afbb8e65498449638e87ffada9a32ddf Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:27:10 -0400 Subject: [PATCH 06/10] keylet::nftoffer -> keylet::nftokenOffer --- include/xrpl/protocol/Indexes.h | 4 +- .../xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/ledger/helpers/NFTokenHelpers.cpp | 4 +- src/libxrpl/protocol/Indexes.cpp | 2 +- src/libxrpl/tx/Transactor.cpp | 2 +- .../tx/transactors/nft/NFTokenAcceptOffer.cpp | 4 +- .../tx/transactors/nft/NFTokenCancelOffer.cpp | 2 +- src/test/app/FixNFTokenPageLinks_test.cpp | 4 +- src/test/app/Freeze_test.cpp | 12 +- src/test/app/LPTokenTransfer_test.cpp | 4 +- src/test/app/NFTokenAuth_test.cpp | 18 +- src/test/app/NFTokenBurn_test.cpp | 27 +- src/test/app/NFTokenDir_test.cpp | 16 +- src/test/app/NFToken_test.cpp | 336 +++++++++--------- src/test/rpc/LedgerEntry_test.cpp | 2 +- src/test/rpc/Subscribe_test.cpp | 17 +- .../rpc/handlers/orderbook/NFTOffersHelpers.h | 2 +- 17 files changed, 235 insertions(+), 223 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 6bb097db4d1..4be1ba93c63 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -233,10 +233,10 @@ nftokenPage(Keylet const& k, uint256 const& token); /** An offer from an account to buy or sell an NFT */ Keylet -nftoffer(AccountID const& owner, std::uint32_t seq); +nftokenOffer(AccountID const& owner, std::uint32_t seq); inline Keylet -nftoffer(uint256 const& offer) +nftokenOffer(uint256 const& offer) { return {ltNFTOKEN_OFFER, offer}; } diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 044eea03a7d..d8b7c887a15 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -21,7 +21,7 @@ /** A ledger object which identifies an offer to buy or sell an NFT. - \sa keylet::nftoffer + \sa keylet::nftokenOffer */ LEDGER_ENTRY(ltNFTOKEN_OFFER, 0x0037, NFTokenOffer, nft_offer, ({ {sfOwner, soeREQUIRED}, diff --git a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp index 802bf027147..8f43453b4bf 100644 --- a/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/NFTokenHelpers.cpp @@ -600,7 +600,7 @@ removeTokenOffersWithLimit(ApplyView& view, Keylet const& directory, std::size_t // deleting during iteration. for (int i = offerIndexes.size() - 1; i >= 0; --i) { - if (auto const offer = view.peek(keylet::nftoffer(offerIndexes[i]))) + if (auto const offer = view.peek(keylet::nftokenOffer(offerIndexes[i]))) { if (deleteTokenOffer(view, offer)) { @@ -937,7 +937,7 @@ tokenOfferCreateApply( priorBalance < view.fees().accountReserve((*acct)[sfOwnerCount] + 1)) return tecINSUFFICIENT_RESERVE; - auto const offerID = keylet::nftoffer(acctID, seqProxy.value()); + auto const offerID = keylet::nftokenOffer(acctID, seqProxy.value()); // Create the offer: { diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 67e58fa7790..6e73a8cd8c3 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -405,7 +405,7 @@ nftokenPage(Keylet const& k, uint256 const& token) } Keylet -nftoffer(AccountID const& owner, std::uint32_t seq) +nftokenOffer(AccountID const& owner, std::uint32_t seq) { return {ltNFTOKEN_OFFER, indexHash(LedgerNameSpace::NFTOKEN_OFFER, owner, seq)}; } diff --git a/src/libxrpl/tx/Transactor.cpp b/src/libxrpl/tx/Transactor.cpp index 208e8e4dbc0..8e5f1d05764 100644 --- a/src/libxrpl/tx/Transactor.cpp +++ b/src/libxrpl/tx/Transactor.cpp @@ -996,7 +996,7 @@ removeExpiredNFTokenOffers( for (auto const& index : offers) { - if (auto const offer = view.peek(keylet::nftoffer(index))) + if (auto const offer = view.peek(keylet::nftokenOffer(index))) { nft::deleteTokenOffer(view, offer); if (++removed == expiredOfferRemoveLimit) diff --git a/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp index da25f76f867..7b486642d0c 100644 --- a/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenAcceptOffer.cpp @@ -61,7 +61,7 @@ NFTokenAcceptOffer::preclaim(PreclaimContext const& ctx) if (id->isZero()) return {nullptr, tecOBJECT_NOT_FOUND}; - auto offerSLE = ctx.view.read(keylet::nftoffer(*id)); + auto offerSLE = ctx.view.read(keylet::nftokenOffer(*id)); if (!offerSLE) return {nullptr, tecOBJECT_NOT_FOUND}; @@ -443,7 +443,7 @@ NFTokenAcceptOffer::doApply() auto const loadToken = [this](std::optional const& id) { std::shared_ptr sle; if (id) - sle = view().peek(keylet::nftoffer(*id)); + sle = view().peek(keylet::nftokenOffer(*id)); return sle; }; diff --git a/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp b/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp index 9d25a7335f2..281142775b5 100644 --- a/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp +++ b/src/libxrpl/tx/transactors/nft/NFTokenCancelOffer.cpp @@ -83,7 +83,7 @@ NFTokenCancelOffer::doApply() { for (auto const& id : ctx_.tx[sfNFTokenOffers]) { - if (auto offer = view().peek(keylet::nftoffer(id)); + if (auto offer = view().peek(keylet::nftokenOffer(id)); offer && !nft::deleteTokenOffer(view(), offer)) { // LCOV_EXCL_START diff --git a/src/test/app/FixNFTokenPageLinks_test.cpp b/src/test/app/FixNFTokenPageLinks_test.cpp index 6f778318b3d..8382ad26909 100644 --- a/src/test/app/FixNFTokenPageLinks_test.cpp +++ b/src/test/app/FixNFTokenPageLinks_test.cpp @@ -360,7 +360,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite dariaNFTs.reserve(32); for (int i = 0; i < 32; ++i) { - uint256 const offerIndex = keylet::nftoffer(carol, env.seq(carol)).key; + uint256 const offerIndex = keylet::nftokenOffer(carol, env.seq(carol)).key; env(token::createOffer(carol, carolNFTs.back(), XRP(0)), txflags(tfSellNFToken)); env.close(); @@ -394,7 +394,7 @@ class FixNFTokenPageLinks_test : public beast::unit_test::suite // back from daria. for (uint256 const& nft : dariaNFTs) { - uint256 const offerIndex = keylet::nftoffer(carol, env.seq(carol)).key; + uint256 const offerIndex = keylet::nftokenOffer(carol, env.seq(carol)).key; env(token::createOffer(carol, nft, drops(1)), token::owner(daria)); env.close(); diff --git a/src/test/app/Freeze_test.cpp b/src/test/app/Freeze_test.cpp index 29127ec8e16..ca682219c5f 100644 --- a/src/test/app/Freeze_test.cpp +++ b/src/test/app/Freeze_test.cpp @@ -1779,7 +1779,7 @@ class Freeze_test : public beast::unit_test::suite env(token::mint(A2, 0), txflags(tfTransferable)); env.close(); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(10)), token::owner(A2)); env.close(); @@ -1865,10 +1865,10 @@ class Freeze_test : public beast::unit_test::suite env(token::mint(A2, 0), txflags(tfTransferable)); env.close(); - uint256 const sellIdx = keylet::nftoffer(A2, env.seq(A2)).key; + uint256 const sellIdx = keylet::nftokenOffer(A2, env.seq(A2)).key; env(token::createOffer(A2, nftID, USD(10)), txflags(tfSellNFToken)); env.close(); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(11)), token::owner(A2)); env.close(); @@ -1891,13 +1891,13 @@ class Freeze_test : public beast::unit_test::suite env(token::mint(minter, 0), token::xferFee(1u), txflags(tfTransferable)); env.close(); - uint256 const minterSellIdx = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellIdx = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, drops(1)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(A2, minterSellIdx)); env.close(); - uint256 const sellIdx = keylet::nftoffer(A2, env.seq(A2)).key; + uint256 const sellIdx = keylet::nftokenOffer(A2, env.seq(A2)).key; env(token::createOffer(A2, nftID, USD(100)), txflags(tfSellNFToken)); env.close(); env(trust(G1, minter["USD"](1000), tfSetFreeze | tfSetDeepFreeze)); @@ -1950,7 +1950,7 @@ class Freeze_test : public beast::unit_test::suite env(token::mint(account, 0), txflags(tfTransferable)); env.close(); - uint256 const sellOfferIndex = keylet::nftoffer(account, env.seq(account)).key; + uint256 const sellOfferIndex = keylet::nftokenOffer(account, env.seq(account)).key; env(token::createOffer(account, nftID, currency), txflags(tfSellNFToken)); env.close(); diff --git a/src/test/app/LPTokenTransfer_test.cpp b/src/test/app/LPTokenTransfer_test.cpp index 2b440c67d5e..91a8e76362f 100644 --- a/src/test/app/LPTokenTransfer_test.cpp +++ b/src/test/app/LPTokenTransfer_test.cpp @@ -359,7 +359,7 @@ class LPTokenTransfer_test : public jtx::AMMTest env.close(); // bob creates a sell offer for lptoken - uint256 const sellOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const sellOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftID, STAmount{lpIssue, 10}), txflags(tfSellNFToken)); env.close(); @@ -420,7 +420,7 @@ class LPTokenTransfer_test : public jtx::AMMTest env.close(); // bob creates a buy offer with lptoken despite bob's USD is frozen - uint256 const buyOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftID, STAmount{lpIssue, 10}), token::owner(carol)); env.close(); diff --git a/src/test/app/NFTokenAuth_test.cpp b/src/test/app/NFTokenAuth_test.cpp index 445cbcb5c08..4b3f75e0057 100644 --- a/src/test/app/NFTokenAuth_test.cpp +++ b/src/test/app/NFTokenAuth_test.cpp @@ -43,7 +43,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env(token::mint(account, 0), token::xferFee(xfee), txflags(tfTransferable)); env.close(); - auto const sellIdx = keylet::nftoffer(account, env.seq(account)).key; + auto const sellIdx = keylet::nftokenOffer(account, env.seq(account)).key; env(token::createOffer(account, nftID, currency), txflags(tfSellNFToken)); env.close(); @@ -74,7 +74,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env(pay(G1, A1, USD(1000))); auto const [nftID, _] = mintAndOfferNFT(env, A2, drops(1)); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; // It should be possible to create a buy offer even if NFT owner is not // authorized @@ -180,7 +180,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env(pay(G1, A2, USD(10))); env.close(); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(10)), token::owner(A2)); env.close(); @@ -246,7 +246,7 @@ class NFTokenAuth_test : public beast::unit_test::suite // Authorizing trustline to make an offer creation possible env(trust(G1, USD(0), A2, tfSetfAuth)); env.close(); - auto const sellIdx = keylet::nftoffer(A2, env.seq(A2)).key; + auto const sellIdx = keylet::nftokenOffer(A2, env.seq(A2)).key; env(token::createOffer(A2, nftID, USD(10)), txflags(tfSellNFToken)); env.close(); // @@ -270,7 +270,7 @@ class NFTokenAuth_test : public beast::unit_test::suite } else { - auto const sellIdx = keylet::nftoffer(A2, env.seq(A2)).key; + auto const sellIdx = keylet::nftokenOffer(A2, env.seq(A2)).key; // Old behavior: sell offer can be created without authorization env(token::createOffer(A2, nftID, USD(10)), txflags(tfSellNFToken)); @@ -356,7 +356,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env.close(); auto const [nftID, sellIdx] = mintAndOfferNFT(env, A2, USD(10)); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(11)), token::owner(A2)); env.close(); @@ -425,7 +425,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env.close(); auto const [nftID, sellIdx] = mintAndOfferNFT(env, A2, USD(10)); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(11)), token::owner(A2)); env.close(); @@ -487,7 +487,7 @@ class NFTokenAuth_test : public beast::unit_test::suite env.close(); auto const [nftID, sellIdx] = mintAndOfferNFT(env, A2, USD(10)); - auto const buyIdx = keylet::nftoffer(A1, env.seq(A1)).key; + auto const buyIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(11)), token::owner(A2)); env.close(); @@ -563,7 +563,7 @@ class NFTokenAuth_test : public beast::unit_test::suite auto const [nftID, minterSellIdx] = mintAndOfferNFT(env, minter, drops(1), 1); env(token::acceptSellOffer(A1, minterSellIdx)); - uint256 const sellIdx = keylet::nftoffer(A1, env.seq(A1)).key; + uint256 const sellIdx = keylet::nftokenOffer(A1, env.seq(A1)).key; env(token::createOffer(A1, nftID, USD(100)), txflags(tfSellNFToken)); if (features[fixEnforceNFTokenTrustlineV2]) diff --git a/src/test/app/NFTokenBurn_test.cpp b/src/test/app/NFTokenBurn_test.cpp index 4707433a750..c61bd036d82 100644 --- a/src/test/app/NFTokenBurn_test.cpp +++ b/src/test/app/NFTokenBurn_test.cpp @@ -76,7 +76,7 @@ class NFTokenBurn_test : public beast::unit_test::suite for (uint32_t i = 0; i < tokenCancelCount; ++i) { // Create sell offer - offerIndexes.push_back(keylet::nftoffer(owner, env.seq(owner)).key); + offerIndexes.push_back(keylet::nftokenOffer(owner, env.seq(owner)).key); env(token::createOffer(owner, nftokenID, drops(1)), txflags(tfSellNFToken)); env.close(); } @@ -235,7 +235,8 @@ class NFTokenBurn_test : public beast::unit_test::suite { // We do the same work on alice and minter, so make a lambda. auto xferNFT = [&env, &becky](AcctStat& acct, auto& iter) { - uint256 const offerIndex = keylet::nftoffer(acct.acct, env.seq(acct.acct)).key; + uint256 const offerIndex = + keylet::nftokenOffer(acct.acct, env.seq(acct.acct)).key; env(token::createOffer(acct, *iter, XRP(0)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(becky, offerIndex)); @@ -868,11 +869,11 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify all sell offers are present in the ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(env.le(keylet::nftokenOffer(offerIndex))); } // Becky creates a buy offer - uint256 const beckyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftokenID, drops(1)), token::owner(alice)); env.close(); @@ -884,12 +885,12 @@ class NFTokenBurn_test : public beast::unit_test::suite // that alice created for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(!env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(!env.le(keylet::nftokenOffer(offerIndex))); } // Burning the token should also remove the one buy offer // that becky created - BEAST_EXPECT(!env.le(keylet::nftoffer(beckyOfferIndex))); + BEAST_EXPECT(!env.le(keylet::nftokenOffer(beckyOfferIndex))); // alice and becky should have ownerCounts of zero BEAST_EXPECT(ownerCount(env, alice) == 0); @@ -915,7 +916,7 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify all sell offers are present in the ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(env.le(keylet::nftokenOffer(offerIndex))); } // Burn the token @@ -926,7 +927,7 @@ class NFTokenBurn_test : public beast::unit_test::suite // Count the number of sell offers that have been deleted for (uint256 const& offerIndex : offerIndexes) { - if (!env.le(keylet::nftoffer(offerIndex))) + if (!env.le(keylet::nftokenOffer(offerIndex))) offerDeletedCount++; } @@ -959,7 +960,7 @@ class NFTokenBurn_test : public beast::unit_test::suite // Verify all sell offers are present in the ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(env.le(keylet::nftokenOffer(offerIndex))); } // becky creates 2 buy offers @@ -976,7 +977,7 @@ class NFTokenBurn_test : public beast::unit_test::suite // ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(!env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(!env.le(keylet::nftokenOffer(offerIndex))); } // alice should have ownerCount of zero because all her @@ -1047,7 +1048,7 @@ class NFTokenBurn_test : public beast::unit_test::suite env.close(); // Minter creates an offer for the NFToken. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nfts.back(), XRP(0)), txflags(tfSellNFToken)); env.close(); @@ -1118,7 +1119,7 @@ class NFTokenBurn_test : public beast::unit_test::suite nfts.pop_back(); // alice creates an offer for the NFToken. - uint256 const aliceOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, last32NFTs.back(), XRP(0)), txflags(tfSellNFToken)); env.close(); @@ -1152,7 +1153,7 @@ class NFTokenBurn_test : public beast::unit_test::suite for (uint256 const nftID : last32NFTs) { // minter creates an offer for the NFToken. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); diff --git a/src/test/app/NFTokenDir_test.cpp b/src/test/app/NFTokenDir_test.cpp index a1527e8601f..d9999617f4f 100644 --- a/src/test/app/NFTokenDir_test.cpp +++ b/src/test/app/NFTokenDir_test.cpp @@ -142,7 +142,7 @@ class NFTokenDir_test : public beast::unit_test::suite std::vector offers; for (uint256 const& nftID : nftIDs) { - offers.emplace_back(keylet::nftoffer(issuer, env.seq(issuer)).key); + offers.emplace_back(keylet::nftokenOffer(issuer, env.seq(issuer)).key); env(token::createOffer(issuer, nftID, XRP(0)), txflags((tfSellNFToken))); env.close(); } @@ -214,7 +214,7 @@ class NFTokenDir_test : public beast::unit_test::suite env.close(); // Create an offer to give the NFT to buyer for free. - offers.emplace_back(keylet::nftoffer(account, env.seq(account)).key); + offers.emplace_back(keylet::nftokenOffer(account, env.seq(account)).key); env(token::createOffer(account, nftID, XRP(0)), token::destination(buyer), txflags((tfSellNFToken))); @@ -237,7 +237,7 @@ class NFTokenDir_test : public beast::unit_test::suite // generates a non-tesSUCCESS error code. for (uint256 const& nftID : nftIDs) { - uint256 const offerID = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerID = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(100)), txflags(tfSellNFToken)); env.close(); @@ -418,7 +418,7 @@ class NFTokenDir_test : public beast::unit_test::suite env.close(); // Create an offer to give the NFT to buyer for free. - offers.emplace_back(keylet::nftoffer(account, env.seq(account)).key); + offers.emplace_back(keylet::nftokenOffer(account, env.seq(account)).key); env(token::createOffer(account, nftID, XRP(0)), token::destination(buyer), txflags((tfSellNFToken))); @@ -445,7 +445,7 @@ class NFTokenDir_test : public beast::unit_test::suite // generates a non-tesSUCCESS error code. for (uint256 const& nftID : nftIDs) { - uint256 const offerID = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerID = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(100)), txflags(tfSellNFToken)); env.close(); @@ -648,7 +648,7 @@ class NFTokenDir_test : public beast::unit_test::suite env.close(); // Create an offer to give the NFT to buyer for free. - offers.emplace_back(keylet::nftoffer(account, env.seq(account)).key); + offers.emplace_back(keylet::nftokenOffer(account, env.seq(account)).key); env(token::createOffer(account, nftID, XRP(0)), token::destination(buyer), txflags((tfSellNFToken))); @@ -684,7 +684,7 @@ class NFTokenDir_test : public beast::unit_test::suite // a non-tesSUCCESS error code. for (uint256 const& nftID : nftIDs) { - uint256 const offerID = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerID = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(100)), txflags(tfSellNFToken)); env.close(); @@ -820,7 +820,7 @@ class NFTokenDir_test : public beast::unit_test::suite env.close(); // Create an offer to give the NFT to buyer for free. - offers[i].emplace_back(keylet::nftoffer(account, env.seq(account)).key); + offers[i].emplace_back(keylet::nftokenOffer(account, env.seq(account)).key); env(token::createOffer(account, nftID, XRP(0)), token::destination(buyer), txflags((tfSellNFToken))); diff --git a/src/test/app/NFToken_test.cpp b/src/test/app/NFToken_test.cpp index a9252d2b5ee..488aa039477 100644 --- a/src/test/app/NFToken_test.cpp +++ b/src/test/app/NFToken_test.cpp @@ -143,7 +143,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite Account const alice{"alice"}; env.fund(XRP(10000), alice); env.close(); - uint256 const aliceOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId1, XRP(1000)), token::owner(master)); env.close(); @@ -861,7 +861,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, alice) == 1); // This is the offer we'll try to cancel. - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftAlice0ID, XRP(1)), token::owner(alice), ter(tesSUCCESS)); env.close(); BEAST_EXPECT(ownerCount(env, buyer) == 1); @@ -987,32 +987,32 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, alice) == aliceCount); // alice creates sell offers for her nfts. - uint256 const plainOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const plainOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAlice0ID, XRP(10)), txflags(tfSellNFToken)); env.close(); aliceCount++; BEAST_EXPECT(ownerCount(env, alice) == aliceCount); - uint256 const audOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const audOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAlice0ID, gwAUD(30)), txflags(tfSellNFToken)); env.close(); aliceCount++; BEAST_EXPECT(ownerCount(env, alice) == aliceCount); - uint256 const xrpOnlyOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const xrpOnlyOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftXrpOnlyID, XRP(20)), txflags(tfSellNFToken)); env.close(); aliceCount++; BEAST_EXPECT(ownerCount(env, alice) == aliceCount); - uint256 const noXferOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const noXferOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftNoXferID, XRP(30)), txflags(tfSellNFToken)); env.close(); aliceCount++; BEAST_EXPECT(ownerCount(env, alice) == aliceCount); // alice creates a sell offer that will expire soon. - uint256 const aliceExpOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceExpOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftNoXferID, XRP(40)), txflags(tfSellNFToken), token::expiration(lastClose(env) + 5)); @@ -1021,7 +1021,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, alice) == aliceCount); // buyer creates a Buy offer that will expire soon. - uint256 const buyerExpOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerExpOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftAlice0ID, XRP(40)), token::owner(alice), token::expiration(lastClose(env) + 5)); @@ -1089,7 +1089,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, buyer) == buyerCount); // The buy offer must be present in the ledger. - uint256 const missingOfferIndex = keylet::nftoffer(alice, 1).key; + uint256 const missingOfferIndex = keylet::nftokenOffer(alice, 1).key; env(token::acceptBuyOffer(buyer, missingOfferIndex), ter(tecOBJECT_NOT_FOUND)); env.close(); BEAST_EXPECT(ownerCount(env, buyer) == buyerCount); @@ -1151,7 +1151,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // corresponding buy and sell offers. { // buyer creates a buy offer for one of alice's nfts. - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftAlice0ID, gwAUD(29)), token::owner(alice)); env.close(); buyerCount++; @@ -1184,7 +1184,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite } { // buyer creates a buy offer for one of alice's nfts. - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftAlice0ID, gwAUD(31)), token::owner(alice)); env.close(); buyerCount++; @@ -1223,7 +1223,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // preclaim buy { // buyer creates a buy offer for one of alice's nfts. - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftAlice0ID, gwAUD(30)), token::owner(alice)); env.close(); buyerCount++; @@ -1250,7 +1250,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice gives her NFT to gw, so alice no longer owns nftAlice0. { - uint256 const offerIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const offerIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAlice0ID, XRP(0)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(gw, offerIndex)); @@ -1275,7 +1275,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // preclaim sell { // buyer creates a buy offer for one of alice's nfts. - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftXrpOnlyID, XRP(30)), token::owner(alice)); env.close(); buyerCount++; @@ -1303,7 +1303,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // buyer attempting to accept one of alice's offers with // insufficient funds. { - uint256 const offerIndex = keylet::nftoffer(gw, env.seq(gw)).key; + uint256 const offerIndex = keylet::nftokenOffer(gw, env.seq(gw)).key; env(token::createOffer(gw, nftAlice0ID, XRP(0)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(alice, offerIndex)); @@ -1356,7 +1356,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::mint(minter1, 0u), token::issuer(alice), txflags(flags)); env.close(); - uint256 const offerIndex = keylet::nftoffer(minter1, env.seq(minter1)).key; + uint256 const offerIndex = keylet::nftokenOffer(minter1, env.seq(minter1)).key; env(token::createOffer(minter1, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); @@ -1459,13 +1459,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); BEAST_EXPECT(ownerCount(env, alice) == 2); - uint256 const aliceOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftIOUsOkayID, gwAUD(50)), txflags(tfSellNFToken)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 3); BEAST_EXPECT(ownerCount(env, buyer) == 1); - uint256 const buyerOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyerOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftIOUsOkayID, gwAUD(50)), token::owner(alice)); env.close(); BEAST_EXPECT(ownerCount(env, buyer) == 2); @@ -1568,7 +1568,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // becky buys the nft for 1 drop. - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, drops(1)), token::owner(alice)); env.close(); env(token::acceptBuyOffer(alice, beckyBuyOfferIndex)); @@ -1576,14 +1576,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // becky attempts to sell the nft for AUD. TER const createOfferTER = (xferFee != 0u) ? TER(tecNO_LINE) : TER(tesSUCCESS); - uint256 const beckyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, gwAUD(100)), txflags(tfSellNFToken), ter(createOfferTER)); env.close(); // cheri offers to buy the nft for CAD. - uint256 const cheriOfferIndex = keylet::nftoffer(cheri, env.seq(cheri)).key; + uint256 const cheriOfferIndex = keylet::nftokenOffer(cheri, env.seq(cheri)).key; env(token::createOffer(cheri, nftNoAutoTrustID, gwCAD(100)), token::owner(becky), ter(createOfferTER)); @@ -1621,14 +1621,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite break; } // becky buys the nft for 1 drop. - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, drops(1)), token::owner(alice)); env.close(); env(token::acceptBuyOffer(alice, beckyBuyOfferIndex)); env.close(); // becky sells the nft for AUD. - uint256 const beckySellOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckySellOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, gwAUD(100)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(cheri, beckySellOfferIndex)); @@ -1638,7 +1638,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(alice, gwAUD) == gwAUD(10)); // becky buys the nft back for CAD. - uint256 const beckyBuyBackOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyBackOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, gwCAD(50)), token::owner(cheri)); env.close(); env(token::acceptBuyOffer(cheri, beckyBuyBackOfferIndex)); @@ -1658,7 +1659,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // alice sells the nft using AUD. - uint256 const aliceSellOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceSellOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftNoAutoTrustID, gwAUD(200)), txflags(tfSellNFToken)); env.close(); @@ -1675,7 +1676,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite txflags(tfSellNFToken), ter(tecNO_LINE)); env.close(); - uint256 const cheriSellOfferIndex = keylet::nftoffer(cheri, env.seq(cheri)).key; + uint256 const cheriSellOfferIndex = keylet::nftokenOffer(cheri, env.seq(cheri)).key; env(token::createOffer(cheri, nftNoAutoTrustID, gwCAD(100)), txflags(tfSellNFToken)); env.close(); @@ -1722,7 +1723,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite ter(tefNFTOKEN_IS_NOT_TRANSFERABLE)); // alice offers to sell the nft and becky accepts the offer. - uint256 const aliceSellOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceSellOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAliceNoTransferID, XRP(20)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(becky, aliceSellOfferIndex)); @@ -1750,7 +1751,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice offers to buy the nft back from becky. becky accepts // the offer. - uint256 const aliceBuyOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceBuyOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAliceNoTransferID, XRP(22)), token::owner(becky)); env.close(); env(token::acceptBuyOffer(becky, aliceBuyOfferIndex)); @@ -1806,7 +1807,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // minter successfully offers their nft for sale. BEAST_EXPECT(ownerCount(env, minter) == 1); - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftMinterNoTransferID, XRP(22)), txflags(tfSellNFToken)); env.close(); BEAST_EXPECT(ownerCount(env, minter) == 2); @@ -1841,7 +1842,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice can create an offer to buy the nft. BEAST_EXPECT(ownerCount(env, alice) == 0); - uint256 const aliceBuyOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceBuyOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftMinterNoTransferID, XRP(25)), token::owner(becky)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 1); @@ -1856,7 +1857,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Now minter can create an offer to buy the nft. BEAST_EXPECT(ownerCount(env, minter) == 0); - uint256 const minterBuyOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterBuyOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftMinterNoTransferID, XRP(26)), token::owner(becky)); env.close(); BEAST_EXPECT(ownerCount(env, minter) == 1); @@ -1895,12 +1896,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, alice) == 1); // Both alice and becky can make offers for alice's nft. - uint256 const aliceSellOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceSellOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftAliceID, XRP(20)), txflags(tfSellNFToken)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 2); - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAliceID, XRP(21)), token::owner(alice)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 2); @@ -1912,7 +1913,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, becky) == 2); // becky offers to sell the nft. - uint256 const beckySellOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckySellOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAliceID, XRP(22)), txflags(tfSellNFToken)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 0); @@ -1927,7 +1928,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, minter) == 1); // minter offers to sell the nft. - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftAliceID, XRP(23)), txflags(tfSellNFToken)); env.close(); BEAST_EXPECT(ownerCount(env, alice) == 0); @@ -2009,7 +2010,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Becky buys the nft for XAU(10). Check balances. - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(10)), token::owner(alice)); env.close(); BEAST_EXPECT(env.balance(alice, gwXAU) == gwXAU(1000)); @@ -2021,7 +2022,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(becky, gwXAU) == gwXAU(990)); // becky sells nft to carol. alice's balance should not change. - uint256 const beckySellOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckySellOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(10)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(carol, beckySellOfferIndex)); @@ -2031,7 +2032,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(carol, gwXAU) == gwXAU(990)); // minter buys nft from carol. alice's balance should not change. - uint256 const minterBuyOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterBuyOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(10)), token::owner(carol)); env.close(); env(token::acceptBuyOffer(carol, minterBuyOfferIndex)); @@ -2043,7 +2044,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // minter sells the nft to alice. gwXAU balances should finish // where they started. - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(10)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(alice, minterSellOfferIndex)); @@ -2070,7 +2071,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Becky buys the nft for XAU(10). Check balances. - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(10)), token::owner(alice)); env.close(); BEAST_EXPECT(env.balance(alice, gwXAU) == gwXAU(1000)); @@ -2082,7 +2083,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(becky, gwXAU) == gwXAU(990)); // becky sells nft to carol. alice's balance goes up. - uint256 const beckySellOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckySellOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(10)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(carol, beckySellOfferIndex)); @@ -2093,7 +2094,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(carol, gwXAU) == gwXAU(990)); // minter buys nft from carol. alice's balance goes up. - uint256 const minterBuyOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterBuyOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(10)), token::owner(carol)); env.close(); env(token::acceptBuyOffer(carol, minterBuyOfferIndex)); @@ -2106,7 +2107,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // minter sells the nft to alice. Because alice is part of the // transaction no transfer fee is removed. - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(10)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(alice, minterSellOfferIndex)); @@ -2151,7 +2152,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Becky buys the nft for XAU(10). Check balances. - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(10)), token::owner(alice)); env.close(); BEAST_EXPECT(env.balance(alice, gwXAU) == gwXAU(1000)); @@ -2163,7 +2164,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(becky, gwXAU) == gwXAU(990)); // becky sells nft to minter. alice's balance goes up. - uint256 const beckySellOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckySellOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, gwXAU(100)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(minter, beckySellOfferIndex)); @@ -2174,7 +2175,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(minter, gwXAU) == gwXAU(900)); // carol buys nft from minter. alice's balance goes up. - uint256 const carolBuyOfferIndex = keylet::nftoffer(carol, env.seq(carol)).key; + uint256 const carolBuyOfferIndex = keylet::nftokenOffer(carol, env.seq(carol)).key; env(token::createOffer(carol, nftID, gwXAU(10)), token::owner(minter)); env.close(); env(token::acceptBuyOffer(minter, carolBuyOfferIndex)); @@ -2187,7 +2188,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // carol sells the nft to alice. Because alice is part of the // transaction no transfer fee is removed. - uint256 const carolSellOfferIndex = keylet::nftoffer(carol, env.seq(carol)).key; + uint256 const carolSellOfferIndex = keylet::nftokenOffer(carol, env.seq(carol)).key; env(token::createOffer(carol, nftID, gwXAU(10)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(alice, carolSellOfferIndex)); @@ -2238,7 +2239,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice there should be no transfer fee. STAmount aliceBalance = env.balance(alice); STAmount minterBalance = env.balance(minter); - uint256 const minterBuyOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterBuyOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(1)), token::owner(alice)); env.close(); env(token::acceptBuyOffer(alice, minterBuyOfferIndex)); @@ -2252,7 +2253,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice does not get any transfer fee. auto pmt = NumberSwitchOver ? drops(50000) : drops(99999); STAmount carolBalance = env.balance(carol); - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, pmt), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(carol, minterSellOfferIndex)); @@ -2266,7 +2267,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // carol sells to becky. This is the smallest amount to pay for a // transfer that enables a transfer fee of 1 basis point. STAmount beckyBalance = env.balance(becky); - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; pmt = NumberSwitchOver ? drops(50001) : drops(100000); env(token::createOffer(becky, nftID, pmt), token::owner(carol)); env.close(); @@ -2311,7 +2312,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // alice there should be no transfer fee. STAmount aliceBalance = env.balance(alice, gwXAU); STAmount minterBalance = env.balance(minter, gwXAU); - uint256 const minterBuyOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterBuyOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, tinyXAU), token::owner(alice)); env.close(); env(token::acceptBuyOffer(alice, minterBuyOfferIndex)); @@ -2323,7 +2324,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // minter sells to carol. STAmount carolBalance = env.balance(carol, gwXAU); - uint256 const minterSellOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterSellOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, tinyXAU), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(carol, minterSellOfferIndex)); @@ -2341,7 +2342,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite STAmount const cheapNFT(gwXAU, STAmount::cMinValue, STAmount::cMinOffset + 5); STAmount beckyBalance = env.balance(becky, gwXAU); - uint256 const beckyBuyOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftID, cheapNFT), token::owner(carol)); env.close(); env(token::acceptBuyOffer(carol, beckyBuyOfferIndex)); @@ -2571,22 +2572,22 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Test how adding a Destination field to an offer affects permissions // for canceling offers. { - uint256 const offerMinterToIssuer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToIssuer = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(issuer), txflags(tfSellNFToken)); - uint256 const offerMinterToBuyer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToBuyer = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(buyer), txflags(tfSellNFToken)); - uint256 const offerIssuerToMinter = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerIssuerToMinter = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftokenID, drops(1)), token::owner(minter), token::destination(minter)); - uint256 const offerIssuerToBuyer = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerIssuerToBuyer = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftokenID, drops(1)), token::owner(minter), token::destination(buyer)); @@ -2627,7 +2628,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Test how adding a Destination field to a sell offer affects // accepting that offer. { - uint256 const offerMinterSellsToBuyer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterSellsToBuyer = + keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(buyer), txflags(tfSellNFToken)); @@ -2655,7 +2657,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Test how adding a Destination field to a buy offer affects // accepting that offer. { - uint256 const offerMinterBuysFromBuyer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterBuysFromBuyer = + keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::owner(buyer), token::destination(buyer)); @@ -2682,7 +2685,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // If a destination other than the NFToken owner is set, that // destination must act as a broker. The NFToken owner may not // simply accept the offer. - uint256 const offerBuyerBuysFromMinter = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerBuysFromMinter = + keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID, drops(1)), token::owner(minter), token::destination(broker)); @@ -2705,12 +2709,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Show that a sell offer's Destination can broker that sell offer // to another account. { - uint256 const offerMinterToBroker = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToBroker = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(broker), txflags(tfSellNFToken)); - uint256 const offerBuyerToMinter = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerToMinter = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID, drops(1)), token::owner(minter)); env.close(); @@ -2742,15 +2746,15 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Destination doesn't match, but can complete if the Destination // does match. { - uint256 const offerBuyerToMinter = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerToMinter = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID, drops(1)), token::destination(minter), txflags(tfSellNFToken)); - uint256 const offerMinterToBuyer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToBuyer = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::owner(buyer)); - uint256 const offerIssuerToBuyer = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerIssuerToBuyer = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftokenID, drops(1)), token::owner(buyer)); env.close(); @@ -2798,12 +2802,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Show that if a buy and a sell offer both have the same destination, // then that destination can broker the offers. { - uint256 const offerMinterToBroker = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToBroker = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(broker), txflags(tfSellNFToken)); - uint256 const offerBuyerToBroker = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerToBroker = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID, drops(1)), token::owner(minter), token::destination(broker)); @@ -2873,7 +2877,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // create offer (allowed now) then cancel { - uint256 const offerIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(buyer), @@ -2886,7 +2890,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // create offer, enable flag, then cancel { - uint256 const offerIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(buyer), @@ -2905,7 +2909,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // create offer then transfer { - uint256 const offerIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID, drops(1)), token::destination(buyer), @@ -2992,23 +2996,23 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const offerMinterToIssuer = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToIssuer = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), token::destination(issuer), token::expiration(expiration), txflags(tfSellNFToken)); - uint256 const offerMinterToAnyone = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offerMinterToAnyone = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); - uint256 const offerIssuerToMinter = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerIssuerToMinter = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftokenID0, drops(1)), token::owner(minter), token::expiration(expiration)); - uint256 const offerBuyerToMinter = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerToMinter = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, drops(1)), token::owner(minter), token::expiration(expiration)); @@ -3068,13 +3072,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const offer0 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offer0 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); minterCount++; - uint256 const offer1 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const offer1 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID1, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); @@ -3139,7 +3143,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Transfer nftokenID0 back to minter so we start the next test in // a simple place. - uint256 const offerSellBack = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerSellBack = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, XRP(0)), txflags(tfSellNFToken), token::destination(minter)); @@ -3158,13 +3162,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const offer0 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offer0 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, drops(1)), token::owner(minter), token::expiration(expiration)); buyerCount++; - uint256 const offer1 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offer1 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID1, drops(1)), token::owner(minter), token::expiration(expiration)); @@ -3227,7 +3231,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Transfer nftokenID0 back to minter so we start the next test in // a simple place. - uint256 const offerSellBack = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerSellBack = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, XRP(0)), txflags(tfSellNFToken), token::destination(minter)); @@ -3246,23 +3250,23 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const sellOffer0 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer0 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); minterCount++; - uint256 const sellOffer1 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer1 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID1, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); minterCount++; - uint256 const buyOffer0 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer0 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, drops(1)), token::owner(minter)); buyerCount++; - uint256 const buyOffer1 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer1 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID1, drops(1)), token::owner(minter)); buyerCount++; @@ -3321,7 +3325,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Transfer nftokenID0 back to minter so we start the next test in // a simple place. - uint256 const offerSellBack = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerSellBack = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, XRP(0)), txflags(tfSellNFToken), token::destination(minter)); @@ -3340,18 +3344,18 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const sellOffer0 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer0 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), txflags(tfSellNFToken)); - uint256 const sellOffer1 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer1 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID1, drops(1)), txflags(tfSellNFToken)); - uint256 const buyOffer0 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer0 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, drops(1)), token::expiration(expiration), token::owner(minter)); - uint256 const buyOffer1 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer1 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID1, drops(1)), token::expiration(expiration), token::owner(minter)); @@ -3402,7 +3406,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Transfer nftokenID0 back to minter so we start the next test in // a simple place. - uint256 const offerSellBack = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerSellBack = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, XRP(0)), txflags(tfSellNFToken), token::destination(minter)); @@ -3421,22 +3425,22 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { std::uint32_t const expiration = lastClose(env) + 25; - uint256 const sellOffer0 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer0 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID0, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); - uint256 const sellOffer1 = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const sellOffer1 = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftokenID1, drops(1)), token::expiration(expiration), txflags(tfSellNFToken)); - uint256 const buyOffer0 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer0 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, drops(1)), token::expiration(expiration), token::owner(minter)); - uint256 const buyOffer1 = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOffer1 = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID1, drops(1)), token::expiration(expiration), token::owner(minter)); @@ -3478,7 +3482,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Transfer nftokenID0 back to minter so we start the next test in // a simple place. - uint256 const offerSellBack = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerSellBack = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftokenID0, XRP(0)), txflags(tfSellNFToken), token::destination(minter)); @@ -3516,7 +3520,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Anyone can cancel an expired offer. - uint256 const expiredOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const expiredOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftokenID, XRP(1000)), txflags(tfSellNFToken), @@ -3538,7 +3542,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Create a couple of offers with a destination. Those offers // should be cancellable by the creator and the destination. - uint256 const dest1OfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const dest1OfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftokenID, XRP(1000)), token::destination(becky), @@ -3556,7 +3560,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ownerCount(env, alice) == 1); // alice can cancel her own offer, even if becky is the destination. - uint256 const dest2OfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const dest2OfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftokenID, XRP(1000)), token::destination(becky), @@ -3575,7 +3579,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::mint(minter, 0), token::issuer(alice), txflags(tfTransferable)); env.close(); - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, mintersNFTokenID, XRP(1000)), txflags(tfSellNFToken)); env.close(); @@ -3633,7 +3637,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::mint(nftAcct, 0), token::uri(uri), txflags(tfTransferable)); env.close(); - offerIndexes.push_back(keylet::nftoffer(offerAcct, env.seq(offerAcct)).key); + offerIndexes.push_back(keylet::nftokenOffer(offerAcct, env.seq(offerAcct)).key); env(token::createOffer(offerAcct, nftokenID, drops(1)), token::owner(nftAcct), token::expiration(lastClose(env) + 5)); @@ -3646,7 +3650,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // All offers should be in the ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(env.le(keylet::nftokenOffer(offerIndex))); } // alice attempts to cancel all of the expired offers. There is one @@ -3659,7 +3663,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Verify that offer is gone from the ledger. - BEAST_EXPECT(!env.le(keylet::nftoffer(offerIndexes.back()))); + BEAST_EXPECT(!env.le(keylet::nftokenOffer(offerIndexes.back()))); offerIndexes.pop_back(); // But alice adds a sell offer to the list... @@ -3668,7 +3672,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::mint(alice, 0), token::uri(uri), txflags(tfTransferable)); env.close(); - offerIndexes.push_back(keylet::nftoffer(alice, env.seq(alice)).key); + offerIndexes.push_back(keylet::nftokenOffer(alice, env.seq(alice)).key); env(token::createOffer(alice, nftokenID, drops(1)), txflags(tfSellNFToken)); env.close(); @@ -3698,7 +3702,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Verify that remaining offers are gone from the ledger. for (uint256 const& offerIndex : offerIndexes) { - BEAST_EXPECT(!env.le(keylet::nftoffer(offerIndex))); + BEAST_EXPECT(!env.le(keylet::nftokenOffer(offerIndex))); } } @@ -3779,13 +3783,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); // buyer creates their offer. Note: a buy offer can never // offer zero. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(minter)); env.close(); @@ -3821,13 +3825,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); // buyer creates their offer. Note: a buy offer can never // offer zero. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(minter)); env.close(); @@ -3870,13 +3874,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(maxTransferFee); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); // buyer creates their offer. Note: a buy offer can never // offer zero. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(minter)); env.close(); @@ -3912,13 +3916,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(maxTransferFee); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, XRP(0)), txflags(tfSellNFToken)); env.close(); // buyer creates their offer. Note: a buy offer can never // offer zero. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, XRP(1)), token::owner(minter)); env.close(); @@ -3985,14 +3989,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(1000)), txflags(tfSellNFToken)); env.close(); { // buyer creates an offer for more XAU than they currently // own. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1001)), token::owner(minter)); env.close(); @@ -4009,7 +4013,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { // buyer creates an offer for less that what minter is // asking. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(999)), token::owner(minter)); env.close(); @@ -4025,7 +4029,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite } // buyer creates a large enough offer. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1000)), token::owner(minter)); env.close(); @@ -4062,13 +4066,13 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(maxTransferFee); // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(900)), txflags(tfSellNFToken)); env.close(); { // buyer creates an offer for more XAU than they currently // own. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1001)), token::owner(minter)); env.close(); @@ -4085,7 +4089,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { // buyer creates an offer for less that what minter is // asking. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(899)), token::owner(minter)); env.close(); @@ -4100,7 +4104,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); } // buyer creates a large enough offer. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1000)), token::owner(minter)); env.close(); @@ -4140,12 +4144,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(maxTransferFee / 2); // 25% // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(900)), txflags(tfSellNFToken)); env.close(); // buyer creates a large enough offer. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1000)), token::owner(minter)); env.close(); @@ -4177,12 +4181,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const nftID = mintNFT(maxTransferFee / 2); // 25% // minter creates their offer. - uint256 const minterOfferIndex = keylet::nftoffer(minter, env.seq(minter)).key; + uint256 const minterOfferIndex = keylet::nftokenOffer(minter, env.seq(minter)).key; env(token::createOffer(minter, nftID, gwXAU(900)), txflags(tfSellNFToken)); env.close(); // buyer creates a large enough offer. - uint256 const buyOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID, gwXAU(1000)), token::owner(minter)); env.close(); @@ -4232,9 +4236,9 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(nftCount(env, buyer2) == 0); // Both buyer1 and buyer2 create buy offers for nftId. - uint256 const buyer1OfferIndex = keylet::nftoffer(buyer1, env.seq(buyer1)).key; + uint256 const buyer1OfferIndex = keylet::nftokenOffer(buyer1, env.seq(buyer1)).key; env(token::createOffer(buyer1, nftId, XRP(100)), token::owner(issuer)); - uint256 const buyer2OfferIndex = keylet::nftoffer(buyer2, env.seq(buyer2)).key; + uint256 const buyer2OfferIndex = keylet::nftokenOffer(buyer2, env.seq(buyer2)).key; env(token::createOffer(buyer2, nftId, XRP(100)), token::owner(issuer)); env.close(); @@ -4322,7 +4326,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // NFTokenCreateOffer BEAST_EXPECT(ownerCount(env, buyer) == 10); - uint256 const offerIndex0 = keylet::nftoffer(buyer, buyerTicketSeq).key; + uint256 const offerIndex0 = keylet::nftokenOffer(buyer, buyerTicketSeq).key; env(token::createOffer(buyer, nftId, XRP(1)), token::owner(issuer), ticket::use(buyerTicketSeq++)); @@ -4337,7 +4341,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite BEAST_EXPECT(ticketCount(env, buyer) == 8); // NFTokenCreateOffer. buyer tries again. - uint256 const offerIndex1 = keylet::nftoffer(buyer, buyerTicketSeq).key; + uint256 const offerIndex1 = keylet::nftokenOffer(buyer, buyerTicketSeq).key; env(token::createOffer(buyer, nftId, XRP(2)), token::owner(issuer), ticket::use(buyerTicketSeq++)); @@ -4414,7 +4418,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env(token::createOffer(becky, nftId, XRP(2)), token::owner(minter)); env.close(); - uint256 const carlaOfferIndex = keylet::nftoffer(carla, env.seq(carla)).key; + uint256 const carlaOfferIndex = keylet::nftokenOffer(carla, env.seq(carla)).key; env(token::createOffer(carla, nftId, XRP(3)), token::owner(minter)); env.close(); @@ -4692,25 +4696,25 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite TER const offerCreateTER = temBAD_AMOUNT; // Make offers with negative amounts for the NFTs - uint256 const sellNegXrpOfferIndex = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const sellNegXrpOfferIndex = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftID0, XRP(-2)), txflags(tfSellNFToken), ter(offerCreateTER)); env.close(); - uint256 const sellNegIouOfferIndex = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const sellNegIouOfferIndex = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftID1, gwXAU(-2)), txflags(tfSellNFToken), ter(offerCreateTER)); env.close(); - uint256 const buyNegXrpOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyNegXrpOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID0, XRP(-1)), token::owner(issuer), ter(offerCreateTER)); env.close(); - uint256 const buyNegIouOfferIndex = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const buyNegIouOfferIndex = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::createOffer(buyer, nftID1, gwXAU(-1)), token::owner(issuer), ter(offerCreateTER)); @@ -4873,7 +4877,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const& nftID, STAmount const& amount, std::optional const terCode = {}) { - uint256 const offerID = keylet::nftoffer(offerer, env.seq(offerer)).key; + uint256 const offerID = keylet::nftokenOffer(offerer, env.seq(offerer)).key; env(token::createOffer(offerer, nftID, amount), token::owner(owner), terCode ? ter(*terCode) : ter(static_cast(tesSUCCESS))); @@ -4886,7 +4890,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite uint256 const& nftID, STAmount const& amount, std::optional const terCode = {}) { - uint256 const offerID = keylet::nftoffer(offerer, env.seq(offerer)).key; + uint256 const offerID = keylet::nftokenOffer(offerer, env.seq(offerer)).key; env(token::createOffer(offerer, nftID, amount), txflags(tfSellNFToken), terCode ? ter(*terCode) : ter(static_cast(tesSUCCESS))); @@ -5399,10 +5403,10 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Bob creates a buy offer for 5 XRP. Alice creates a sell offer // for 0 XRP. - uint256 const bobBuyOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const bobBuyOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, XRP(5)), token::owner(alice)); - uint256 const aliceSellOfferIndex = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceSellOfferIndex = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, XRP(0)), token::destination(bob), txflags(tfSellNFToken)); @@ -5413,10 +5417,10 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Note that bob still has a buy offer on the books. - BEAST_EXPECT(env.le(keylet::nftoffer(bobBuyOfferIndex))); + BEAST_EXPECT(env.le(keylet::nftokenOffer(bobBuyOfferIndex))); // Bob creates a sell offer for the gift NFT from alice. - uint256 const bobSellOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const bobSellOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, XRP(4)), txflags(tfSellNFToken)); env.close(); @@ -6033,7 +6037,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite token::amount(XRP(10)), token::destination(buyer), token::expiration(lastClose(env) + 25)); - uint256 const offerAliceSellsToBuyer = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const offerAliceSellsToBuyer = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::cancelOffer(alice, {offerAliceSellsToBuyer})); env.close(); @@ -6042,7 +6046,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite token::amount(XRP(10)), token::destination(alice), token::expiration(lastClose(env) + 25)); - uint256 const offerBuyerSellsToAlice = keylet::nftoffer(buyer, env.seq(buyer)).key; + uint256 const offerBuyerSellsToAlice = keylet::nftokenOffer(buyer, env.seq(buyer)).key; env(token::cancelOffer(alice, {offerBuyerSellsToAlice})); env.close(); @@ -6190,12 +6194,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Alice creates one sell offer for each NFT // Verify the offer indexes are correct in the NFTokenCreateOffer tx // meta - uint256 const aliceOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex1 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId1, drops(1)), txflags(tfSellNFToken)); env.close(); verifyNFTokenOfferID(aliceOfferIndex1); - uint256 const aliceOfferIndex2 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex2 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId2, drops(1)), txflags(tfSellNFToken)); env.close(); verifyNFTokenOfferID(aliceOfferIndex2); @@ -6209,7 +6213,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // Bobs creates a buy offer for nftId1 // Verify the offer id is correct in the NFTokenCreateOffer tx meta - auto const bobBuyOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + auto const bobBuyOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId1, drops(1)), token::owner(alice)); env.close(); verifyNFTokenOfferID(bobBuyOfferIndex); @@ -6230,7 +6234,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite verifyNFTokenID(nftId); // Alice creates sell offer and set broker as destination - uint256 const offerAliceToBroker = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const offerAliceToBroker = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), token::destination(broker), txflags(tfSellNFToken)); @@ -6238,7 +6242,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite verifyNFTokenOfferID(offerAliceToBroker); // Bob creates buy offer - uint256 const offerBobToBroker = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const offerBobToBroker = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, drops(1)), token::owner(alice)); env.close(); verifyNFTokenOfferID(offerBobToBroker); @@ -6259,12 +6263,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite verifyNFTokenID(nftId); // Alice creates 2 sell offers for the same NFT - uint256 const aliceOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex1 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), txflags(tfSellNFToken)); env.close(); verifyNFTokenOfferID(aliceOfferIndex1); - uint256 const aliceOfferIndex2 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex2 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), txflags(tfSellNFToken)); env.close(); verifyNFTokenOfferID(aliceOfferIndex2); @@ -6278,7 +6282,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite if (features[featureNFTokenMintOffer]) { - uint256 const aliceMintWithOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceMintWithOfferIndex1 = + keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::mint(alice), token::amount(XRP(0))); env.close(); verifyNFTokenOfferID(aliceMintWithOfferIndex1); @@ -6301,7 +6306,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // acct makes an sell offer - uint256 const sellOfferIndex = keylet::nftoffer(acct, env.seq(acct)).key; + uint256 const sellOfferIndex = keylet::nftokenOffer(acct, env.seq(acct)).key; env(token::createOffer(acct, nftId, amt), txflags(tfSellNFToken)); env.close(); @@ -6506,7 +6511,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Bob makes a buy offer for 1 XRP - auto const buyOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + auto const buyOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, XRP(1)), token::owner(alice)); env.close(); @@ -6554,14 +6559,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); // Alice creates sell offer and set broker as destination - uint256 const offerAliceToBroker = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const offerAliceToBroker = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, XRP(1)), token::destination(broker), txflags(tfSellNFToken)); env.close(); // Bob creates buy offer - uint256 const offerBobToBroker = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const offerBobToBroker = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, XRP(1)), token::owner(alice)); env.close(); @@ -6655,10 +6660,10 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // becky buys the nfts for 1 drop each. { - uint256 const beckyBuyOfferIndex1 = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex1 = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, drops(1)), token::owner(issuer)); - uint256 const beckyBuyOfferIndex2 = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex2 = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, drops(1)), token::owner(issuer)); env.close(); @@ -6668,7 +6673,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite } // becky creates offers to sell the nfts for AUD. - uint256 const beckyAutoTrustOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyAutoTrustOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, gwAUD(100)), txflags(tfSellNFToken)); env.close(); @@ -6686,7 +6692,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite env.close(); BEAST_EXPECT(ownerCount(env, issuer) == 1); - uint256 const beckyNoAutoTrustOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyNoAutoTrustOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, gwAUD(100)), txflags(tfSellNFToken)); env.close(); @@ -6810,10 +6817,10 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // becky buys the nfts for 1 drop each. { - uint256 const beckyBuyOfferIndex1 = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex1 = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, drops(1)), token::owner(issuer)); - uint256 const beckyBuyOfferIndex2 = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyBuyOfferIndex2 = keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, drops(1)), token::owner(issuer)); env.close(); @@ -6840,7 +6847,8 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite // However if the NFToken has the tfTrustLine flag set, // then becky can create the offer. - uint256 const beckyAutoTrustOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyAutoTrustOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, isISU(100)), txflags(tfSellNFToken)); env.close(); @@ -6857,10 +6865,12 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite { // With featureNFTokenMintOffer things go better. // becky creates offers to sell the nfts for ISU. - uint256 const beckyNoAutoTrustOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyNoAutoTrustOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftNoAutoTrustID, isISU(100)), txflags(tfSellNFToken)); env.close(); - uint256 const beckyAutoTrustOfferIndex = keylet::nftoffer(becky, env.seq(becky)).key; + uint256 const beckyAutoTrustOfferIndex = + keylet::nftokenOffer(becky, env.seq(becky)).key; env(token::createOffer(becky, nftAutoTrustID, isISU(100)), txflags(tfSellNFToken)); env.close(); @@ -7094,7 +7104,7 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite checkURI(issuer, "uri", __LINE__); // Account != Owner - uint256 const offerID = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerID = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftId, XRP(0)), txflags(tfSellNFToken)); env.close(); env(token::acceptSellOffer(alice, offerID)); diff --git a/src/test/rpc/LedgerEntry_test.cpp b/src/test/rpc/LedgerEntry_test.cpp index f50b32e4a81..111cb39fc4c 100644 --- a/src/test/rpc/LedgerEntry_test.cpp +++ b/src/test/rpc/LedgerEntry_test.cpp @@ -1527,7 +1527,7 @@ class LedgerEntry_test : public beast::unit_test::suite uint256 const nftokenID0 = token::getNextID(env, issuer, 0, tfTransferable); env(token::mint(issuer, 0), txflags(tfTransferable)); env.close(); - uint256 const offerID = keylet::nftoffer(issuer, env.seq(issuer)).key; + uint256 const offerID = keylet::nftokenOffer(issuer, env.seq(issuer)).key; env(token::createOffer(issuer, nftokenID0, drops(1)), token::destination(buyer), txflags(tfSellNFToken)); diff --git a/src/test/rpc/Subscribe_test.cpp b/src/test/rpc/Subscribe_test.cpp index 0e43713c2a8..0bb202f567e 100644 --- a/src/test/rpc/Subscribe_test.cpp +++ b/src/test/rpc/Subscribe_test.cpp @@ -1451,12 +1451,12 @@ class Subscribe_test : public beast::unit_test::suite // Alice creates one sell offer for each NFT // Verify the offer indexes are correct in the NFTokenCreateOffer tx // meta - uint256 const aliceOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex1 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId1, drops(1)), txflags(tfSellNFToken)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(aliceOfferIndex1); - uint256 const aliceOfferIndex2 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex2 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId2, drops(1)), txflags(tfSellNFToken)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(aliceOfferIndex2); @@ -1470,7 +1470,7 @@ class Subscribe_test : public beast::unit_test::suite // Bobs creates a buy offer for nftId1 // Verify the offer id is correct in the NFTokenCreateOffer tx meta - auto const bobBuyOfferIndex = keylet::nftoffer(bob, env.seq(bob)).key; + auto const bobBuyOfferIndex = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId1, drops(1)), token::owner(alice)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(bobBuyOfferIndex); @@ -1491,7 +1491,7 @@ class Subscribe_test : public beast::unit_test::suite verifyNFTokenID(nftId); // Alice creates sell offer and set broker as destination - uint256 const offerAliceToBroker = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const offerAliceToBroker = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), token::destination(broker), txflags(tfSellNFToken)); @@ -1499,7 +1499,7 @@ class Subscribe_test : public beast::unit_test::suite verifyNFTokenOfferID(offerAliceToBroker); // Bob creates buy offer - uint256 const offerBobToBroker = keylet::nftoffer(bob, env.seq(bob)).key; + uint256 const offerBobToBroker = keylet::nftokenOffer(bob, env.seq(bob)).key; env(token::createOffer(bob, nftId, drops(1)), token::owner(alice)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(offerBobToBroker); @@ -1520,12 +1520,12 @@ class Subscribe_test : public beast::unit_test::suite verifyNFTokenID(nftId); // Alice creates 2 sell offers for the same NFT - uint256 const aliceOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex1 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), txflags(tfSellNFToken)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(aliceOfferIndex1); - uint256 const aliceOfferIndex2 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceOfferIndex2 = keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::createOffer(alice, nftId, drops(1)), txflags(tfSellNFToken)); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(aliceOfferIndex2); @@ -1539,7 +1539,8 @@ class Subscribe_test : public beast::unit_test::suite if (features[featureNFTokenMintOffer]) { - uint256 const aliceMintWithOfferIndex1 = keylet::nftoffer(alice, env.seq(alice)).key; + uint256 const aliceMintWithOfferIndex1 = + keylet::nftokenOffer(alice, env.seq(alice)).key; env(token::mint(alice), token::amount(XRP(0))); BEAST_EXPECT(env.syncClose()); verifyNFTokenOfferID(aliceMintWithOfferIndex1); diff --git a/src/xrpld/rpc/handlers/orderbook/NFTOffersHelpers.h b/src/xrpld/rpc/handlers/orderbook/NFTOffersHelpers.h index 8f68aeaadd0..0d63454e2b2 100644 --- a/src/xrpld/rpc/handlers/orderbook/NFTOffersHelpers.h +++ b/src/xrpld/rpc/handlers/orderbook/NFTOffersHelpers.h @@ -81,7 +81,7 @@ enumerateNFTOffers(RPC::JsonContext& context, uint256 const& nftId, Keylet const if (!startAfter.parseHex(marker.asString())) return rpcError(rpcINVALID_PARAMS); - auto const sle = ledger->read(keylet::nftoffer(startAfter)); + auto const sle = ledger->read(keylet::nftokenOffer(startAfter)); if (!sle || nftId != sle->getFieldH256(sfNFTokenID)) return rpcError(rpcINVALID_PARAMS); From 3af0b6bdd1e80ab4bed24338723be8a5ac6f1dcd Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:28:24 -0400 Subject: [PATCH 07/10] keylet::mptIssuance -> keylet::mptokenIssuance --- include/xrpl/ledger/helpers/EscrowHelpers.h | 2 +- include/xrpl/protocol/Indexes.h | 6 +-- .../xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/ledger/View.cpp | 2 +- src/libxrpl/ledger/helpers/MPTokenHelpers.cpp | 32 +++++++-------- src/libxrpl/ledger/helpers/TokenHelpers.cpp | 10 ++--- src/libxrpl/protocol/Indexes.cpp | 8 ++-- src/libxrpl/tx/invariants/VaultInvariant.cpp | 4 +- src/libxrpl/tx/paths/MPTEndpointStep.cpp | 2 +- .../tx/transactors/dex/AMMClawback.cpp | 2 +- src/libxrpl/tx/transactors/dex/AMMCreate.cpp | 2 +- .../tx/transactors/dex/AMMWithdraw.cpp | 2 +- .../tx/transactors/escrow/EscrowCancel.cpp | 2 +- .../tx/transactors/escrow/EscrowCreate.cpp | 2 +- .../tx/transactors/escrow/EscrowFinish.cpp | 2 +- .../lending/LoanBrokerCoverClawback.cpp | 2 +- src/libxrpl/tx/transactors/token/Clawback.cpp | 2 +- .../tx/transactors/token/MPTokenAuthorize.cpp | 9 ++-- .../token/MPTokenIssuanceCreate.cpp | 2 +- .../token/MPTokenIssuanceDestroy.cpp | 4 +- .../transactors/token/MPTokenIssuanceSet.cpp | 4 +- .../tx/transactors/vault/VaultClawback.cpp | 6 +-- .../tx/transactors/vault/VaultDelete.cpp | 4 +- .../tx/transactors/vault/VaultDeposit.cpp | 4 +- src/libxrpl/tx/transactors/vault/VaultSet.cpp | 4 +- .../tx/transactors/vault/VaultWithdraw.cpp | 4 +- src/test/app/EscrowToken_test.cpp | 5 ++- src/test/app/Invariants_test.cpp | 41 ++++++++++--------- src/test/app/MPToken_test.cpp | 2 +- src/test/app/Vault_test.cpp | 10 ++--- src/test/jtx/impl/Env.cpp | 2 +- src/test/jtx/impl/TestHelpers.cpp | 2 +- src/test/jtx/impl/mpt.cpp | 8 ++-- src/xrpld/rpc/detail/AssetCache.cpp | 2 +- src/xrpld/rpc/handlers/VaultInfo.cpp | 2 +- src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp | 2 +- 36 files changed, 102 insertions(+), 99 deletions(-) diff --git a/include/xrpl/ledger/helpers/EscrowHelpers.h b/include/xrpl/ledger/helpers/EscrowHelpers.h index 06a2ee0a90a..2600299b60e 100644 --- a/include/xrpl/ledger/helpers/EscrowHelpers.h +++ b/include/xrpl/ledger/helpers/EscrowHelpers.h @@ -175,7 +175,7 @@ escrowUnlockApplyHelper( bool const receiverIssuer = issuer == receiver; auto const mptID = amount.get().getMptID(); - auto const issuanceKey = keylet::mptIssuance(mptID); + auto const issuanceKey = keylet::mptokenIssuance(mptID); if (!view.exists(keylet::mptoken(issuanceKey.key, receiver)) && createAsset && !receiverIssuer) { if (std::uint32_t const ownerCount = {sleDest->at(sfOwnerCount)}; diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 4be1ba93c63..cbdf644cde5 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -287,13 +287,13 @@ credential(uint256 const& key) noexcept } Keylet -mptIssuance(std::uint32_t seq, AccountID const& issuer) noexcept; +mptokenIssuance(std::uint32_t seq, AccountID const& issuer) noexcept; Keylet -mptIssuance(MPTID const& issuanceID) noexcept; +mptokenIssuance(MPTID const& issuanceID) noexcept; inline Keylet -mptIssuance(uint256 const& issuanceKey) +mptokenIssuance(uint256 const& issuanceKey) { return {ltMPTOKEN_ISSUANCE, issuanceKey}; } diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index d8b7c887a15..9764e73afff 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -384,7 +384,7 @@ LEDGER_ENTRY(ltAMM, 0x0079, AMM, amm, ({ })) /** A ledger object which tracks MPTokenIssuance - \sa keylet::mptIssuance + \sa keylet::mptokenIssuance */ LEDGER_ENTRY(ltMPTOKEN_ISSUANCE, 0x007e, MPTokenIssuance, mpt_issuance, ({ {sfIssuer, soeREQUIRED}, diff --git a/src/libxrpl/ledger/View.cpp b/src/libxrpl/ledger/View.cpp index 55735ec0e61..131ecb34a9f 100644 --- a/src/libxrpl/ledger/View.cpp +++ b/src/libxrpl/ledger/View.cpp @@ -65,7 +65,7 @@ isVaultPseudoAccountFrozen( if (depth >= maxAssetCheckDepth) return true; // LCOV_EXCL_LINE - auto const mptIssuance = view.read(keylet::mptIssuance(mptShare.getMptID())); + auto const mptIssuance = view.read(keylet::mptokenIssuance(mptShare.getMptID())); if (mptIssuance == nullptr) return false; // zero MPToken won't block deletion of MPTokenIssuance diff --git a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp index c3987ddb03e..ee8f9ad894e 100644 --- a/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/MPTokenHelpers.cpp @@ -41,7 +41,7 @@ namespace xrpl { bool isGlobalFrozen(ReadView const& view, MPTIssue const& mptIssue) { - if (auto const sle = view.read(keylet::mptIssuance(mptIssue.getMptID()))) + if (auto const sle = view.read(keylet::mptokenIssuance(mptIssue.getMptID()))) return sle->isFlag(lsfMPTLocked); return false; } @@ -92,7 +92,7 @@ transferRate(ReadView const& view, MPTID const& issuanceID) // fee is 0-50,000 (0-50%), rate is 1,000,000,000-2,000,000,000 // For example, if transfer fee is 50% then 10,000 * 50,000 = 500,000 // which represents 50% of 1,000,000,000 - if (auto const sle = view.read(keylet::mptIssuance(issuanceID)); + if (auto const sle = view.read(keylet::mptokenIssuance(issuanceID)); sle && sle->isFieldPresent(sfTransferFee)) { auto const fee = sle->getFieldU16(sfTransferFee); @@ -107,7 +107,7 @@ transferRate(ReadView const& view, MPTID const& issuanceID) canAddHolding(ReadView const& view, MPTIssue const& mptIssue) { auto mptID = mptIssue.getMptID(); - auto issuance = view.read(keylet::mptIssuance(mptID)); + auto issuance = view.read(keylet::mptokenIssuance(mptID)); if (!issuance) { return tecOBJECT_NOT_FOUND; @@ -129,7 +129,7 @@ addEmptyHolding( beast::Journal journal) { auto const& mptID = mptIssue.getMptID(); - auto const mpt = view.peek(keylet::mptIssuance(mptID)); + auto const mpt = view.peek(keylet::mptokenIssuance(mptID)); if (!mpt) return tefINTERNAL; // LCOV_EXCL_LINE if (mpt->isFlag(lsfMPTLocked)) @@ -201,7 +201,7 @@ authorizeMPToken( return tecINSUFFICIENT_RESERVE; // Defensive check before we attempt to create MPToken for the issuer - auto const mpt = view.read(keylet::mptIssuance(mptIssuanceID)); + auto const mpt = view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!mpt || mpt->getAccountID(sfIssuer) == account) { // LCOV_EXCL_START @@ -227,7 +227,7 @@ authorizeMPToken( return tesSUCCESS; } - auto const sleMptIssuance = view.read(keylet::mptIssuance(mptIssuanceID)); + auto const sleMptIssuance = view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleMptIssuance) return tecINTERNAL; // LCOV_EXCL_LINE @@ -305,7 +305,7 @@ requireAuth( AuthType authType, int depth) { - auto const mptID = keylet::mptIssuance(mptIssue.getMptID()); + auto const mptID = keylet::mptokenIssuance(mptIssue.getMptID()); auto const sleIssuance = view.read(mptID); if (!sleIssuance) return tecOBJECT_NOT_FOUND; @@ -397,7 +397,7 @@ enforceMPTokenAuthorization( XRPAmount const& priorBalance, // for MPToken authorization beast::Journal j) { - auto const sleIssuance = view.read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) return tefINTERNAL; // LCOV_EXCL_LINE @@ -496,7 +496,7 @@ canTransfer( AccountID const& from, AccountID const& to) { - auto const mptID = keylet::mptIssuance(mptIssue.getMptID()); + auto const mptID = keylet::mptokenIssuance(mptIssue.getMptID()); auto const sleIssuance = view.read(mptID); if (!sleIssuance) return tecOBJECT_NOT_FOUND; @@ -515,7 +515,7 @@ canTrade(ReadView const& view, Asset const& asset) return asset.visit( [&](Issue const&) -> TER { return tesSUCCESS; }, [&](MPTIssue const& mptIssue) -> TER { - auto const sleIssuance = view.read(keylet::mptIssuance(mptIssue.getMptID())); + auto const sleIssuance = view.read(keylet::mptokenIssuance(mptIssue.getMptID())); if (!sleIssuance) return tecOBJECT_NOT_FOUND; if (!sleIssuance->isFlag(lsfMPTCanTrade)) @@ -528,7 +528,7 @@ TER lockEscrowMPT(ApplyView& view, AccountID const& sender, STAmount const& amount, beast::Journal j) { auto const mptIssue = amount.get(); - auto const mptID = keylet::mptIssuance(mptIssue.getMptID()); + auto const mptID = keylet::mptokenIssuance(mptIssue.getMptID()); auto sleIssuance = view.peek(mptID); if (!sleIssuance) { // LCOV_EXCL_START @@ -633,7 +633,7 @@ unlockEscrowMPT( auto const& issuer = netAmount.getIssuer(); auto const& mptIssue = netAmount.get(); - auto const mptID = keylet::mptIssuance(mptIssue.getMptID()); + auto const mptID = keylet::mptokenIssuance(mptIssue.getMptID()); auto sleIssuance = view.peek(mptID); if (!sleIssuance) { // LCOV_EXCL_START @@ -817,7 +817,7 @@ checkCreateMPT( if (mptIssue.getIssuer() == holder) return tesSUCCESS; - auto const mptIssuanceID = keylet::mptIssuance(mptIssue.getMptID()); + auto const mptIssuanceID = keylet::mptokenIssuance(mptIssue.getMptID()); auto const mptokenID = keylet::mptoken(mptIssuanceID.key, holder); if (!view.exists(mptokenID)) { @@ -853,7 +853,7 @@ availableMPTAmount(SLE const& sleIssuance) std::int64_t availableMPTAmount(ReadView const& view, MPTID const& mptID) { - auto const sle = view.read(keylet::mptIssuance(mptID)); + auto const sle = view.read(keylet::mptokenIssuance(mptID)); if (!sle) Throw(transHuman(tecINTERNAL)); return availableMPTAmount(*sle); @@ -877,7 +877,7 @@ issuerFundsToSelfIssue(ReadView const& view, MPTIssue const& issue) { STAmount amount{issue}; - auto const sle = view.read(keylet::mptIssuance(issue)); + auto const sle = view.read(keylet::mptokenIssuance(issue)); if (!sle) return amount; auto const available = availableMPTAmount(*sle); @@ -909,7 +909,7 @@ checkMPTAllowed(ReadView const& view, TxType txType, Asset const& asset, Account if (!view.exists(keylet::account(issuer))) return tecNO_ISSUER; // LCOV_EXCL_LINE - auto const issuanceKey = keylet::mptIssuance(issuanceID); + auto const issuanceKey = keylet::mptokenIssuance(issuanceID); auto const issuanceSle = view.read(issuanceKey); if (!issuanceSle) return tecOBJECT_NOT_FOUND; // LCOV_EXCL_LINE diff --git a/src/libxrpl/ledger/helpers/TokenHelpers.cpp b/src/libxrpl/ledger/helpers/TokenHelpers.cpp index 309d86507a6..f991fe24d1a 100644 --- a/src/libxrpl/ledger/helpers/TokenHelpers.cpp +++ b/src/libxrpl/ledger/helpers/TokenHelpers.cpp @@ -299,7 +299,7 @@ accountHolds( { // if the account is the issuer, and the issuance exists, their limit is // the issuance limit minus the outstanding value - auto const issuance = view.read(keylet::mptIssuance(mptIssue.getMptID())); + auto const issuance = view.read(keylet::mptokenIssuance(mptIssue.getMptID())); if (!issuance) { @@ -336,7 +336,7 @@ accountHolds( } else if (zeroIfUnauthorized == AuthHandling::ahZERO_IF_UNAUTHORIZED) { - auto const sleIssuance = view.read(keylet::mptIssuance(mptIssue.getMptID())); + auto const sleIssuance = view.read(keylet::mptokenIssuance(mptIssue.getMptID())); // if auth is enabled on the issuance and mpt is not authorized, // clear amount @@ -1039,7 +1039,7 @@ directSendNoFeeMPT( beast::Journal j) { // Do not check MPT authorization here - it must have been checked earlier - auto const mptID = keylet::mptIssuance(saAmount.get().getMptID()); + auto const mptID = keylet::mptokenIssuance(saAmount.get().getMptID()); auto const& issuer = saAmount.getIssuer(); auto sleIssuance = view.peek(mptID); if (!sleIssuance) @@ -1124,7 +1124,7 @@ directSendNoLimitMPT( // Safe to get MPT since directSendNoLimitMPT is only called by accountSendMPT auto const& issuer = saAmount.getIssuer(); - auto const sle = view.read(keylet::mptIssuance(saAmount.get().getMptID())); + auto const sle = view.read(keylet::mptokenIssuance(saAmount.get().getMptID())); if (!sle) return tecOBJECT_NOT_FOUND; @@ -1181,7 +1181,7 @@ directSendNoLimitMultiMPT( { auto const& issuer = mptIssue.getIssuer(); - auto const sle = view.read(keylet::mptIssuance(mptIssue.getMptID())); + auto const sle = view.read(keylet::mptokenIssuance(mptIssue.getMptID())); if (!sle) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 6e73a8cd8c3..1f073687ae0 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -519,13 +519,13 @@ oracle(AccountID const& account, std::uint32_t const& documentID) noexcept } Keylet -mptIssuance(std::uint32_t seq, AccountID const& issuer) noexcept +mptokenIssuance(std::uint32_t seq, AccountID const& issuer) noexcept { - return mptIssuance(makeMptID(seq, issuer)); + return mptokenIssuance(makeMptID(seq, issuer)); } Keylet -mptIssuance(MPTID const& issuanceID) noexcept +mptokenIssuance(MPTID const& issuanceID) noexcept { return {ltMPTOKEN_ISSUANCE, indexHash(LedgerNameSpace::MPTOKEN_ISSUANCE, issuanceID)}; } @@ -533,7 +533,7 @@ mptIssuance(MPTID const& issuanceID) noexcept Keylet mptoken(MPTID const& issuanceID, AccountID const& holder) noexcept { - return mptoken(mptIssuance(issuanceID).key, holder); + return mptoken(mptokenIssuance(issuanceID).key, holder); } Keylet diff --git a/src/libxrpl/tx/invariants/VaultInvariant.cpp b/src/libxrpl/tx/invariants/VaultInvariant.cpp index 1281cdd58ae..c860c58edc9 100644 --- a/src/libxrpl/tx/invariants/VaultInvariant.cpp +++ b/src/libxrpl/tx/invariants/VaultInvariant.cpp @@ -320,7 +320,7 @@ ValidVault::finalize( return e; } - auto const sleShares = view.read(keylet::mptIssuance(afterVault.shareMPTID)); + auto const sleShares = view.read(keylet::mptokenIssuance(afterVault.shareMPTID)); return sleShares ? std::optional(Shares::make(*sleShares)) : std::nullopt; }(); @@ -491,7 +491,7 @@ ValidVault::finalize( auto const deltaShares = [&](AccountID const& id) -> std::optional { auto const it = [&]() { if (id == afterVault.pseudoId) - return deltas_.find(keylet::mptIssuance(afterVault.shareMPTID).key); + return deltas_.find(keylet::mptokenIssuance(afterVault.shareMPTID).key); return deltas_.find(keylet::mptoken(afterVault.shareMPTID, id).key); }(); diff --git a/src/libxrpl/tx/paths/MPTEndpointStep.cpp b/src/libxrpl/tx/paths/MPTEndpointStep.cpp index 3dbc4e30cf4..f551eccaf08 100644 --- a/src/libxrpl/tx/paths/MPTEndpointStep.cpp +++ b/src/libxrpl/tx/paths/MPTEndpointStep.cpp @@ -437,7 +437,7 @@ MPTEndpointStep::maxPaymentFlow(ReadView const& sb) const return {toAmount(maxFlow), DebtDirection::redeems}; // From an issuer to a holder - if (auto const sle = sb.read(keylet::mptIssuance(mptIssue_))) + if (auto const sle = sb.read(keylet::mptokenIssuance(mptIssue_))) { // If issuer is the source account, and it is direct payment then // MPTEndpointStep is the only step. Provide available maxFlow. diff --git a/src/libxrpl/tx/transactors/dex/AMMClawback.cpp b/src/libxrpl/tx/transactors/dex/AMMClawback.cpp index 20ec184670f..faee2efb51d 100644 --- a/src/libxrpl/tx/transactors/dex/AMMClawback.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMClawback.cpp @@ -141,7 +141,7 @@ AMMClawback::preclaim(PreclaimContext const& ctx) ((issuerFlagsIn & lsfNoFreeze) == 0u); }, [&](MPTIssue const& issue) { - auto const sleIssuance = ctx.view.read(keylet::mptIssuance(issue.getMptID())); + auto const sleIssuance = ctx.view.read(keylet::mptokenIssuance(issue.getMptID())); return sleIssuance && sleIssuance->isFlag(lsfMPTCanClawback) && sleIssuance->getAccountID(sfIssuer) == ctx.tx[sfAccount]; diff --git a/src/libxrpl/tx/transactors/dex/AMMCreate.cpp b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp index 20b224a774c..31c7839b0b4 100644 --- a/src/libxrpl/tx/transactors/dex/AMMCreate.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMCreate.cpp @@ -208,7 +208,7 @@ AMMCreate::preclaim(PreclaimContext const& ctx) auto clawbackDisabled = [&](Asset const& asset) -> TER { return asset.visit( [&](MPTIssue const& issue) -> TER { - auto const sle = ctx.view.read(keylet::mptIssuance(issue.getMptID())); + auto const sle = ctx.view.read(keylet::mptokenIssuance(issue.getMptID())); if (!sle) return tecINTERNAL; // LCOV_EXCL_LINE if (sle->isFlag(lsfMPTCanClawback)) diff --git a/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp index bcf5fddea15..7da7f39893e 100644 --- a/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp +++ b/src/libxrpl/tx/transactors/dex/AMMWithdraw.cpp @@ -612,7 +612,7 @@ AMMWithdraw::withdraw( bool const assetNotExists = [&] { if (isIssue) return !view.exists(keylet::rippleState(account, asset.get())); - auto const issuanceKey = keylet::mptIssuance(asset.get()); + auto const issuanceKey = keylet::mptokenIssuance(asset.get()); mptokenKey = keylet::mptoken(issuanceKey.key, account); if (!view.exists(*mptokenKey)) return true; diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp index edc07fa0f79..30050d4bad5 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCancel.cpp @@ -73,7 +73,7 @@ escrowCancelPreclaimHelper( return tecINTERNAL; // LCOV_EXCL_LINE // If the mpt does not exist, return tecOBJECT_NOT_FOUND - auto const issuanceKey = keylet::mptIssuance(amount.get().getMptID()); + auto const issuanceKey = keylet::mptokenIssuance(amount.get().getMptID()); auto const sleIssuance = ctx.view.read(issuanceKey); if (!sleIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp index 395ae089ae2..95cc7e3b3c5 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowCreate.cpp @@ -261,7 +261,7 @@ escrowCreatePreclaimHelper( return tecNO_PERMISSION; // If the mpt does not exist, return tecOBJECT_NOT_FOUND - auto const issuanceKey = keylet::mptIssuance(amount.get().getMptID()); + auto const issuanceKey = keylet::mptokenIssuance(amount.get().getMptID()); auto const sleIssuance = ctx.view.read(issuanceKey); if (!sleIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp b/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp index c8697fbaa87..44124d7d3ed 100644 --- a/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp +++ b/src/libxrpl/tx/transactors/escrow/EscrowFinish.cpp @@ -173,7 +173,7 @@ escrowFinishPreclaimHelper( return tesSUCCESS; // If the mpt does not exist, return tecOBJECT_NOT_FOUND - auto const issuanceKey = keylet::mptIssuance(amount.get().getMptID()); + auto const issuanceKey = keylet::mptokenIssuance(amount.get().getMptID()); auto const sleIssuance = ctx.view.read(issuanceKey); if (!sleIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp index 6dc57479e63..ab19b1186a0 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp @@ -208,7 +208,7 @@ preclaimHelper( SLE const& sleIssuer, STAmount const& clawAmount) { - auto const issuanceKey = keylet::mptIssuance(clawAmount.get().getMptID()); + auto const issuanceKey = keylet::mptokenIssuance(clawAmount.get().getMptID()); auto const sleIssuance = ctx.view.read(issuanceKey); if (!sleIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/token/Clawback.cpp b/src/libxrpl/tx/transactors/token/Clawback.cpp index 99323d1b8a9..dd0bae9cf75 100644 --- a/src/libxrpl/tx/transactors/token/Clawback.cpp +++ b/src/libxrpl/tx/transactors/token/Clawback.cpp @@ -158,7 +158,7 @@ preclaimHelper( AccountID const& holder, STAmount const& clawAmount) { - auto const issuanceKey = keylet::mptIssuance(clawAmount.get().getMptID()); + auto const issuanceKey = keylet::mptokenIssuance(clawAmount.get().getMptID()); auto const sleIssuance = ctx.view.read(issuanceKey); if (!sleIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp index c0fbb7f10be..744f46c6fb4 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenAuthorize.cpp @@ -66,7 +66,7 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx) if ((*sleMpt)[sfMPTAmount] != 0) { auto const sleMptIssuance = - ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMptIssuance) return tefINTERNAL; // LCOV_EXCL_LINE @@ -76,7 +76,7 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx) if ((*sleMpt)[~sfLockedAmount].value_or(0) != 0) { auto const sleMptIssuance = - ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMptIssuance) return tefINTERNAL; // LCOV_EXCL_LINE @@ -89,7 +89,8 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx) } // Now test when the holder wants to hold/create/authorize a new MPT - auto const sleMptIssuance = ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + auto const sleMptIssuance = + ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMptIssuance) return tecOBJECT_NOT_FOUND; @@ -108,7 +109,7 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx) if (!sleHolder) return tecNO_DST; - auto const sleMptIssuance = ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + auto const sleMptIssuance = ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMptIssuance) return tecOBJECT_NOT_FOUND; diff --git a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp index 42fc037431b..15ad913c7a7 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceCreate.cpp @@ -106,7 +106,7 @@ MPTokenIssuanceCreate::create(ApplyView& view, beast::Journal journal, MPTCreate return Unexpected(tecINSUFFICIENT_RESERVE); auto const mptId = makeMptID(args.sequence, args.account); - auto const mptIssuanceKeylet = keylet::mptIssuance(mptId); + auto const mptIssuanceKeylet = keylet::mptokenIssuance(mptId); // create the MPTokenIssuance { diff --git a/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp index 80b185641a8..9268a2a4599 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceDestroy.cpp @@ -23,7 +23,7 @@ TER MPTokenIssuanceDestroy::preclaim(PreclaimContext const& ctx) { // ensure that issuance exists - auto const sleMPT = ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + auto const sleMPT = ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMPT) return tecOBJECT_NOT_FOUND; @@ -44,7 +44,7 @@ MPTokenIssuanceDestroy::preclaim(PreclaimContext const& ctx) TER MPTokenIssuanceDestroy::doApply() { - auto const mpt = view().peek(keylet::mptIssuance(ctx_.tx[sfMPTokenIssuanceID])); + auto const mpt = view().peek(keylet::mptokenIssuance(ctx_.tx[sfMPTokenIssuanceID])); if (account_ != mpt->getAccountID(sfIssuer)) return tecINTERNAL; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp b/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp index 540dd6ef0c7..1adcab42268 100644 --- a/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp +++ b/src/libxrpl/tx/transactors/token/MPTokenIssuanceSet.cpp @@ -180,7 +180,7 @@ TER MPTokenIssuanceSet::preclaim(PreclaimContext const& ctx) { // ensure that issuance exists - auto const sleMptIssuance = ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID])); + auto const sleMptIssuance = ctx.view.read(keylet::mptokenIssuance(ctx.tx[sfMPTokenIssuanceID])); if (!sleMptIssuance) return tecOBJECT_NOT_FOUND; @@ -283,7 +283,7 @@ MPTokenIssuanceSet::doApply() } else { - sle = view().peek(keylet::mptIssuance(mptIssuanceID)); + sle = view().peek(keylet::mptokenIssuance(mptIssuanceID)); } if (!sle) diff --git a/src/libxrpl/tx/transactors/vault/VaultClawback.cpp b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp index da22b825788..417a0403267 100644 --- a/src/libxrpl/tx/transactors/vault/VaultClawback.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultClawback.cpp @@ -88,7 +88,7 @@ VaultClawback::preclaim(PreclaimContext const& ctx) auto const holder = ctx.tx[sfHolder]; auto const maybeAmount = ctx.tx[~sfAmount]; auto const mptIssuanceID = vault->at(sfShareMPTID); - auto const sleShareIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID)); + auto const sleShareIssuance = ctx.view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleShareIssuance) { // LCOV_EXCL_START @@ -182,7 +182,7 @@ VaultClawback::preclaim(PreclaimContext const& ctx) return vaultAsset.visit( [&](MPTIssue const& issue) -> TER { - auto const mptIssue = ctx.view.read(keylet::mptIssuance(issue.getMptID())); + auto const mptIssue = ctx.view.read(keylet::mptokenIssuance(issue.getMptID())); if (mptIssue == nullptr) return tecOBJECT_NOT_FOUND; @@ -352,7 +352,7 @@ VaultClawback::doApply() return tefINTERNAL; // LCOV_EXCL_LINE auto const mptIssuanceID = *vault->at(sfShareMPTID); - auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = view().read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START diff --git a/src/libxrpl/tx/transactors/vault/VaultDelete.cpp b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp index e4542d524fe..a4b479e9006 100644 --- a/src/libxrpl/tx/transactors/vault/VaultDelete.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDelete.cpp @@ -59,7 +59,7 @@ VaultDelete::preclaim(PreclaimContext const& ctx) } // Verify we can destroy MPTokenIssuance - auto const sleMPT = ctx.view.read(keylet::mptIssuance(vault->at(sfShareMPTID))); + auto const sleMPT = ctx.view.read(keylet::mptokenIssuance(vault->at(sfShareMPTID))); if (!sleMPT) { @@ -112,7 +112,7 @@ VaultDelete::doApply() // Destroy the share issuance. Do not use MPTokenIssuanceDestroy for this, // no special logic needed. First run few checks, duplicated from preclaim. auto const shareMPTID = *vault->at(sfShareMPTID); - auto const mpt = view().peek(keylet::mptIssuance(shareMPTID)); + auto const mpt = view().peek(keylet::mptokenIssuance(shareMPTID)); if (!mpt) { // LCOV_EXCL_START diff --git a/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp index fbb8908ddb2..5c2c00c292e 100644 --- a/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultDeposit.cpp @@ -70,7 +70,7 @@ VaultDeposit::preclaim(PreclaimContext const& ctx) // LCOV_EXCL_STOP } - auto const sleIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = ctx.view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START @@ -145,7 +145,7 @@ VaultDeposit::doApply() auto const amount = ctx_.tx[sfAmount]; // Make sure the depositor can hold shares. auto const mptIssuanceID = (*vault)[sfShareMPTID]; - auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = view().read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START diff --git a/src/libxrpl/tx/transactors/vault/VaultSet.cpp b/src/libxrpl/tx/transactors/vault/VaultSet.cpp index a5b0b20699c..344346d4347 100644 --- a/src/libxrpl/tx/transactors/vault/VaultSet.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultSet.cpp @@ -77,7 +77,7 @@ VaultSet::preclaim(PreclaimContext const& ctx) } auto const mptIssuanceID = (*vault)[sfShareMPTID]; - auto const sleIssuance = ctx.view.read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = ctx.view.read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START @@ -132,7 +132,7 @@ VaultSet::doApply() auto const vaultAsset = vault->at(sfAsset); auto const mptIssuanceID = (*vault)[sfShareMPTID]; - auto const sleIssuance = view().peek(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = view().peek(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START diff --git a/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp index 3e608733b63..7157b980d06 100644 --- a/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp +++ b/src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp @@ -86,7 +86,7 @@ VaultWithdraw::preclaim(PreclaimContext const& ctx) // to the equivalent asset amount before checking withdrawal // limits. Pre-amendment the limit check was skipped for // share-denominated withdrawals. - auto const sleIssuance = ctx.view.read(keylet::mptIssuance(vaultShare)); + auto const sleIssuance = ctx.view.read(keylet::mptokenIssuance(vaultShare)); if (!sleIssuance) { // LCOV_EXCL_START @@ -155,7 +155,7 @@ VaultWithdraw::doApply() return tefINTERNAL; // LCOV_EXCL_LINE auto const mptIssuanceID = *((*vault)[sfShareMPTID]); - auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID)); + auto const sleIssuance = view().read(keylet::mptokenIssuance(mptIssuanceID)); if (!sleIssuance) { // LCOV_EXCL_START diff --git a/src/test/app/EscrowToken_test.cpp b/src/test/app/EscrowToken_test.cpp index d77043a624f..e837e3dbecf 100644 --- a/src/test/app/EscrowToken_test.cpp +++ b/src/test/app/EscrowToken_test.cpp @@ -57,7 +57,7 @@ struct EscrowToken_test : public beast::unit_test::suite static uint64_t issuerMPTEscrowed(jtx::Env const& env, jtx::MPT const& mpt) { - auto const sle = env.le(keylet::mptIssuance(mpt.mpt())); + auto const sle = env.le(keylet::mptokenIssuance(mpt.mpt())); if (sle && sle->isFieldPresent(sfLockedAmount)) return (*sle)[sfLockedAmount]; return 0; @@ -3113,7 +3113,8 @@ struct EscrowToken_test : public beast::unit_test::suite BEAST_EXPECT(mptEscrowed(env, bob, MPT) == 0); BEAST_EXPECT(env.balance(gw, MPT) == outstandingMPT); BEAST_EXPECT(issuerMPTEscrowed(env, MPT) == 0); - BEAST_EXPECT(!env.le(keylet::mptIssuance(MPT.mpt()))->isFieldPresent(sfLockedAmount)); + BEAST_EXPECT( + !env.le(keylet::mptokenIssuance(MPT.mpt()))->isFieldPresent(sfLockedAmount)); } // Max MPT Amount Issued (Escrow Max MPT) diff --git a/src/test/app/Invariants_test.cpp b/src/test/app/Invariants_test.cpp index 9ecd6f53f32..c6ce01f6d96 100644 --- a/src/test/app/Invariants_test.cpp +++ b/src/test/app/Invariants_test.cpp @@ -960,7 +960,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(1, AccountID(0x4985601))}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); sleNew->setFieldU64(sfOutstandingAmount, -1); ac.view().insert(sleNew); return true; @@ -976,7 +976,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(1, AccountID(0x4985601))}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); sleNew->setFieldU64(sfLockedAmount, -1); ac.view().insert(sleNew); return true; @@ -992,7 +992,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(1, AccountID(0x4985601))}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); sleNew->setFieldU64(sfOutstandingAmount, 1); sleNew->setFieldU64(sfLockedAmount, 10); ac.view().insert(sleNew); @@ -2438,7 +2438,7 @@ class Invariants_test : public beast::unit_test::suite return false; auto const mptIssuanceID = (*sleVault)[sfShareMPTID]; - auto sleShares = ac.peek(keylet::mptIssuance(mptIssuanceID)); + auto sleShares = ac.peek(keylet::mptokenIssuance(mptIssuanceID)); if (!sleShares) return false; @@ -2740,7 +2740,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; ac.view().erase(sleVault); @@ -2765,7 +2765,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; // Note, such an "orphaned" update of MPT issuance attached to a @@ -2855,7 +2855,7 @@ class Invariants_test : public beast::unit_test::suite (*sleVault)[sfAssetsMaximum] = 200; ac.view().update(sleVault); - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; ac.view().erase(sleShares); @@ -3051,7 +3051,7 @@ class Invariants_test : public beast::unit_test::suite if (!sleVault) return false; ac.view().update(sleVault); - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; (*sleShares)[sfOutstandingAmount] = 0; @@ -3071,7 +3071,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; (*sleShares)[sfMaximumAmount] = 10; @@ -3094,7 +3094,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; (*sleShares)[sfOutstandingAmount] = maxMPTokenAmount + 1; @@ -3196,7 +3196,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; ac.view().update(sleVault); @@ -3248,7 +3248,7 @@ class Invariants_test : public beast::unit_test::suite auto sleVault = ac.view().peek(keylet); if (!sleVault) return false; - auto sleShares = ac.view().peek(keylet::mptIssuance((*sleVault)[sfShareMPTID])); + auto sleShares = ac.view().peek(keylet::mptokenIssuance((*sleVault)[sfShareMPTID])); if (!sleShares) return false; ac.view().update(sleVault); @@ -3295,7 +3295,7 @@ class Invariants_test : public beast::unit_test::suite ac.view().insert(sleAccount); auto const sharesMptId = makeMptID(sequence, pseudoId); - auto const sharesKeylet = keylet::mptIssuance(sharesMptId); + auto const sharesKeylet = keylet::mptokenIssuance(sharesMptId); auto sleShares = std::make_shared(sharesKeylet); auto const sharesPage = ac.view().dirInsert( keylet::ownerDir(pseudoId), sharesKeylet, describeOwnerDir(pseudoId)); @@ -3353,7 +3353,7 @@ class Invariants_test : public beast::unit_test::suite ac.view().insert(sleAccount); auto const sharesMptId = makeMptID(sequence, pseudoId); - auto const sharesKeylet = keylet::mptIssuance(sharesMptId); + auto const sharesKeylet = keylet::mptokenIssuance(sharesMptId); auto sleShares = std::make_shared(sharesKeylet); auto const sharesPage = ac.view().dirInsert( keylet::ownerDir(pseudoId), sharesKeylet, describeOwnerDir(pseudoId)); @@ -3395,7 +3395,7 @@ class Invariants_test : public beast::unit_test::suite sleVault->setFieldU64(sfOwnerNode, *vaultPage); auto const sharesMptId = makeMptID(sequence, A2.id()); - auto const sharesKeylet = keylet::mptIssuance(sharesMptId); + auto const sharesKeylet = keylet::mptokenIssuance(sharesMptId); auto sleShares = std::make_shared(sharesKeylet); auto const sharesPage = ac.view().dirInsert( keylet::ownerDir(A2.id()), sharesKeylet, describeOwnerDir(A2.id())); @@ -3978,7 +3978,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(sle->getFieldU32(sfSequence), A1)}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); sleNew->setFieldU64(sfOutstandingAmount, 110); sleNew->setFieldU64(sfMaximumAmount, 100); ac.view().insert(sleNew); @@ -3995,7 +3995,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(sle->getFieldU32(sfSequence), A1)}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); sleNew->setFieldU64(sfOutstandingAmount, 100); sleNew->setFieldU64(sfMaximumAmount, 100); ac.view().insert(sleNew); @@ -4039,7 +4039,7 @@ class Invariants_test : public beast::unit_test::suite }); testPayment( "OutstandingAmount overflow", [&](MPTID const& id, ApplyContext& ac, Account const&) { - auto sle = ac.view().peek(keylet::mptIssuance(id)); + auto sle = ac.view().peek(keylet::mptokenIssuance(id)); if (!sle) return false; sle->setFieldU64(sfOutstandingAmount, 101); @@ -4066,7 +4066,8 @@ class Invariants_test : public beast::unit_test::suite for (int i = 0; i < nTokens; ++i) { MPTIssue const mpt{makeMptID(seq + i, A1)}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = + std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); ac.view().insert(sleNew); sleNew = std::make_shared(keylet::mptoken(mpt.getMptID(), A2)); @@ -4230,7 +4231,7 @@ class Invariants_test : public beast::unit_test::suite return false; MPTIssue const mpt{makeMptID(1, AccountID(0x4985601))}; - auto sleNew = std::make_shared(keylet::mptIssuance(mpt.getMptID())); + auto sleNew = std::make_shared(keylet::mptokenIssuance(mpt.getMptID())); // outstanding exceeds maxMPTokenAmount -> checkAmount sets bad_ sleNew->setFieldU64(sfOutstandingAmount, maxMPTokenAmount + 1); // locked is valid and <= outstanding -> must NOT clear bad_ diff --git a/src/test/app/MPToken_test.cpp b/src/test/app/MPToken_test.cpp index 681d2f25775..03b046d48a0 100644 --- a/src/test/app/MPToken_test.cpp +++ b/src/test/app/MPToken_test.cpp @@ -3344,7 +3344,7 @@ class MPToken_test : public beast::unit_test::suite // view may contain partial state and must be discarded. if (expectedOutstanding) { - auto const sle = av.peek(keylet::mptIssuance(mptt.issuanceID())); + auto const sle = av.peek(keylet::mptokenIssuance(mptt.issuanceID())); if (!BEAST_EXPECT(sle)) return; BEAST_EXPECTS(sle->getFieldU64(sfOutstandingAmount) == *expectedOutstanding, label); diff --git a/src/test/app/Vault_test.cpp b/src/test/app/Vault_test.cpp index bd402671557..50280ab96b3 100644 --- a/src/test/app/Vault_test.cpp +++ b/src/test/app/Vault_test.cpp @@ -108,7 +108,7 @@ class Vault_test : public beast::unit_test::suite { BEAST_EXPECT(vault->at(sfScale) == 0); } - auto const shares = env.le(keylet::mptIssuance(vault->at(sfShareMPTID))); + auto const shares = env.le(keylet::mptokenIssuance(vault->at(sfShareMPTID))); BEAST_EXPECT(shares != nullptr); if (!asset.integral()) { @@ -1688,7 +1688,7 @@ class Vault_test : public beast::unit_test::suite auto v = env.le(keylet); BEAST_EXPECT(v); MPTID const share = (*v)[sfShareMPTID]; - auto issuance = env.le(keylet::mptIssuance(share)); + auto issuance = env.le(keylet::mptokenIssuance(share)); BEAST_EXPECT(issuance); Number const outstandingShares = issuance->at(sfOutstandingAmount); BEAST_EXPECT(outstandingShares == 100); @@ -3288,7 +3288,7 @@ class Vault_test : public beast::unit_test::suite return {vault->at(sfAccount), vault->at(sfShareMPTID)}; }(); BEAST_EXPECT(env.le(keylet::account(vaultAccount))); - BEAST_EXPECT(env.le(keylet::mptIssuance(issuanceId))); + BEAST_EXPECT(env.le(keylet::mptokenIssuance(issuanceId))); PrettyAsset const shares{issuanceId}; { @@ -3442,7 +3442,7 @@ class Vault_test : public beast::unit_test::suite auto vault = sb.peek(keylet::vault(keylet.key)); if (!BEAST_EXPECT(vault)) return false; - auto shares = sb.peek(keylet::mptIssuance(vault->at(sfShareMPTID))); + auto shares = sb.peek(keylet::mptokenIssuance(vault->at(sfShareMPTID))); if (!BEAST_EXPECT(shares)) return false; if (fn(*vault, *shares)) @@ -4666,7 +4666,7 @@ class Vault_test : public beast::unit_test::suite auto const sleVault = env.le(vaultKeylet); BEAST_EXPECT(sleVault != nullptr); - auto const sleIssuance = env.le(keylet::mptIssuance(sleVault->at(sfShareMPTID))); + auto const sleIssuance = env.le(keylet::mptokenIssuance(sleVault->at(sfShareMPTID))); BEAST_EXPECT(sleIssuance != nullptr); return sleIssuance->at(sfOutstandingAmount); diff --git a/src/test/jtx/impl/Env.cpp b/src/test/jtx/impl/Env.cpp index 1818d0dd036..d6bdfcdc31c 100644 --- a/src/test/jtx/impl/Env.cpp +++ b/src/test/jtx/impl/Env.cpp @@ -231,7 +231,7 @@ Env::balance(Account const& account, Asset const& asset) const if (account.id() == issuer) { // Issuer balance - auto const sle = le(keylet::mptIssuance(id)); + auto const sle = le(keylet::mptokenIssuance(id)); if (!sle) return {STAmount(mptIssue, 0), account.name()}; diff --git a/src/test/jtx/impl/TestHelpers.cpp b/src/test/jtx/impl/TestHelpers.cpp index 8c42d0019bc..b361c271563 100644 --- a/src/test/jtx/impl/TestHelpers.cpp +++ b/src/test/jtx/impl/TestHelpers.cpp @@ -407,7 +407,7 @@ expectHolding(Env& env, AccountID const& account, None const& value) [[nodiscard]] bool expectMPT(Env& env, AccountID const& account, STAmount const& value) { - auto const mptIssuanceID = keylet::mptIssuance(value.asset().get()); + auto const mptIssuanceID = keylet::mptokenIssuance(value.asset().get()); auto const mptToken = env.le(keylet::mptoken(mptIssuanceID.key, account)); return mptToken && (*mptToken)[sfMPTAmount] == value.mpt().value(); } diff --git a/src/test/jtx/impl/mpt.cpp b/src/test/jtx/impl/mpt.cpp index e2fd95144cb..d9070e6239d 100644 --- a/src/test/jtx/impl/mpt.cpp +++ b/src/test/jtx/impl/mpt.cpp @@ -185,8 +185,8 @@ MPTTester::create(MPTCreate const& arg) if (!isTesSuccess(submit(arg, jv))) { // Verify issuance doesn't exist - env_.require( - requireAny([&]() -> bool { return env_.le(keylet::mptIssuance(*id_)) == nullptr; })); + env_.require(requireAny( + [&]() -> bool { return env_.le(keylet::mptokenIssuance(*id_)) == nullptr; })); id_.reset(); } @@ -495,7 +495,7 @@ MPTTester::forObject( { if (!id_) Throw("MPT has not been created"); - auto const key = holder_ ? keylet::mptoken(*id_, holder_->id()) : keylet::mptIssuance(*id_); + auto const key = holder_ ? keylet::mptoken(*id_, holder_->id()) : keylet::mptokenIssuance(*id_); if (auto const sle = env_.le(key)) return cb(sle); return false; @@ -660,7 +660,7 @@ MPTTester::getBalance(Account const& account) const Throw("MPT has not been created"); if (account == issuer_) { - if (auto const sle = env_.le(keylet::mptIssuance(*id_))) + if (auto const sle = env_.le(keylet::mptokenIssuance(*id_))) return sle->getFieldU64(sfOutstandingAmount); } else diff --git a/src/xrpld/rpc/detail/AssetCache.cpp b/src/xrpld/rpc/detail/AssetCache.cpp index 28924ceb5ff..9e371142597 100644 --- a/src/xrpld/rpc/detail/AssetCache.cpp +++ b/src/xrpld/rpc/detail/AssetCache.cpp @@ -137,7 +137,7 @@ AssetCache::getMPTs(xrpl::AccountID const& account) auto const mptID = sle->getFieldH192(sfMPTokenIssuanceID); bool const zeroBalance = sle->at(sfMPTAmount) == 0; bool const maxedOut = [&] { - if (auto const sleIssuance = ledger_->read(keylet::mptIssuance(mptID))) + if (auto const sleIssuance = ledger_->read(keylet::mptokenIssuance(mptID))) { return sleIssuance->at(sfOutstandingAmount) == maxMPTAmount(*sleIssuance); } diff --git a/src/xrpld/rpc/handlers/VaultInfo.cpp b/src/xrpld/rpc/handlers/VaultInfo.cpp index 711478658ae..a6c6b27d328 100644 --- a/src/xrpld/rpc/handlers/VaultInfo.cpp +++ b/src/xrpld/rpc/handlers/VaultInfo.cpp @@ -79,7 +79,7 @@ doVaultInfo(RPC::JsonContext& context) auto const sleVault = lpLedger->read(keylet::vault(uNodeIndex)); auto const sleIssuance = sleVault == nullptr // ? nullptr - : lpLedger->read(keylet::mptIssuance(sleVault->at(sfShareMPTID))); + : lpLedger->read(keylet::mptokenIssuance(sleVault->at(sfShareMPTID))); if (!sleVault || !sleIssuance) { jvResult[jss::error] = "entryNotFound"; diff --git a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp index 36dea615534..0efe490b392 100644 --- a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp @@ -555,7 +555,7 @@ parseMPTokenIssuance( "malformedMPTokenIssuance", fieldName, "Hash192"); } - return keylet::mptIssuance(*mptIssuanceID).key; + return keylet::mptokenIssuance(*mptIssuanceID).key; } static Expected From 1e41d0d406189a31b501f1f099e58a3c0df60766 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:29:25 -0400 Subject: [PATCH 08/10] keylet::loanbroker -> keylet::loanBroker --- include/xrpl/protocol/Indexes.h | 4 +- .../xrpl/protocol/detail/ledger_entries.macro | 2 +- src/libxrpl/protocol/Indexes.cpp | 4 +- .../tx/invariants/LoanBrokerInvariant.cpp | 2 +- .../lending/LoanBrokerCoverClawback.cpp | 4 +- .../lending/LoanBrokerCoverDeposit.cpp | 4 +- .../lending/LoanBrokerCoverWithdraw.cpp | 4 +- .../transactors/lending/LoanBrokerDelete.cpp | 4 +- .../tx/transactors/lending/LoanBrokerSet.cpp | 6 +- .../tx/transactors/lending/LoanDelete.cpp | 4 +- .../tx/transactors/lending/LoanManage.cpp | 4 +- .../tx/transactors/lending/LoanPay.cpp | 6 +- .../tx/transactors/lending/LoanSet.cpp | 6 +- src/test/app/Batch_test.cpp | 2 +- src/test/app/Invariants_test.cpp | 2 +- src/test/app/LoanBroker_test.cpp | 24 ++--- src/test/app/Loan_test.cpp | 94 +++++++++---------- src/test/app/Vault_test.cpp | 16 ++-- src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp | 2 +- 19 files changed, 97 insertions(+), 97 deletions(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index cbdf644cde5..91d0cffe30a 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -320,10 +320,10 @@ vault(uint256 const& vaultKey) } Keylet -loanbroker(AccountID const& owner, std::uint32_t seq) noexcept; +loanBroker(AccountID const& owner, std::uint32_t seq) noexcept; inline Keylet -loanbroker(uint256 const& key) +loanBroker(uint256 const& key) { return {ltLOAN_BROKER, key}; } diff --git a/include/xrpl/protocol/detail/ledger_entries.macro b/include/xrpl/protocol/detail/ledger_entries.macro index 9764e73afff..0a9ef2610f5 100644 --- a/include/xrpl/protocol/detail/ledger_entries.macro +++ b/include/xrpl/protocol/detail/ledger_entries.macro @@ -498,7 +498,7 @@ LEDGER_ENTRY(ltVAULT, 0x0084, Vault, vault, ({ /** A ledger object representing a loan broker - \sa keylet::loanbroker + \sa keylet::loanBroker */ LEDGER_ENTRY(ltLOAN_BROKER, 0x0088, LoanBroker, loan_broker, ({ {sfPreviousTxnID, soeREQUIRED}, diff --git a/src/libxrpl/protocol/Indexes.cpp b/src/libxrpl/protocol/Indexes.cpp index 1f073687ae0..bc4fc06f096 100644 --- a/src/libxrpl/protocol/Indexes.cpp +++ b/src/libxrpl/protocol/Indexes.cpp @@ -555,9 +555,9 @@ vault(AccountID const& owner, std::uint32_t seq) noexcept } Keylet -loanbroker(AccountID const& owner, std::uint32_t seq) noexcept +loanBroker(AccountID const& owner, std::uint32_t seq) noexcept { - return loanbroker(indexHash(LedgerNameSpace::LOAN_BROKER, owner, seq)); + return loanBroker(indexHash(LedgerNameSpace::LOAN_BROKER, owner, seq)); } Keylet diff --git a/src/libxrpl/tx/invariants/LoanBrokerInvariant.cpp b/src/libxrpl/tx/invariants/LoanBrokerInvariant.cpp index b72f821f500..c0d18a5eb7f 100644 --- a/src/libxrpl/tx/invariants/LoanBrokerInvariant.cpp +++ b/src/libxrpl/tx/invariants/LoanBrokerInvariant.cpp @@ -135,7 +135,7 @@ ValidLoanBroker::finalize( for (auto const& [brokerID, broker] : brokers_) { auto const& after = - broker.brokerAfter ? broker.brokerAfter : view.read(keylet::loanbroker(brokerID)); + broker.brokerAfter ? broker.brokerAfter : view.read(keylet::loanBroker(brokerID)); if (!after) { diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp index ab19b1186a0..1b2059ac239 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverClawback.cpp @@ -235,7 +235,7 @@ LoanBrokerCoverClawback::preclaim(PreclaimContext const& ctx) auto const brokerID = *findBrokerID; auto const amount = tx[~sfAmount]; - auto const sleBroker = ctx.view.read(keylet::loanbroker(brokerID)); + auto const sleBroker = ctx.view.read(keylet::loanBroker(brokerID)); if (!sleBroker) { JLOG(ctx.j.warn()) << "LoanBroker does not exist."; @@ -329,7 +329,7 @@ LoanBrokerCoverClawback::doApply() auto const brokerID = *findBrokerID; auto const amount = tx[~sfAmount]; - auto sleBroker = view().peek(keylet::loanbroker(brokerID)); + auto sleBroker = view().peek(keylet::loanBroker(brokerID)); if (!sleBroker) return tecINTERNAL; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp index 9b43269ec39..cd3e382829b 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverDeposit.cpp @@ -49,7 +49,7 @@ LoanBrokerCoverDeposit::preclaim(PreclaimContext const& ctx) auto const brokerID = tx[sfLoanBrokerID]; auto const amount = tx[sfAmount]; - auto const sleBroker = ctx.view.read(keylet::loanbroker(brokerID)); + auto const sleBroker = ctx.view.read(keylet::loanBroker(brokerID)); if (!sleBroker) { JLOG(ctx.j.warn()) << "LoanBroker does not exist."; @@ -108,7 +108,7 @@ LoanBrokerCoverDeposit::doApply() auto const brokerID = tx[sfLoanBrokerID]; auto const amount = tx[sfAmount]; - auto broker = view().peek(keylet::loanbroker(brokerID)); + auto broker = view().peek(keylet::loanBroker(brokerID)); if (!broker) return tecINTERNAL; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp index 06f2e518ab5..6802f89df73 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerCoverWithdraw.cpp @@ -69,7 +69,7 @@ LoanBrokerCoverWithdraw::preclaim(PreclaimContext const& ctx) JLOG(ctx.j.warn()) << "Trying to withdraw into a pseudo-account."; return tecPSEUDO_ACCOUNT; } - auto const sleBroker = ctx.view.read(keylet::loanbroker(brokerID)); + auto const sleBroker = ctx.view.read(keylet::loanBroker(brokerID)); if (!sleBroker) { JLOG(ctx.j.warn()) << "LoanBroker does not exist."; @@ -165,7 +165,7 @@ LoanBrokerCoverWithdraw::doApply() auto const amount = tx[sfAmount]; auto const dstAcct = tx[~sfDestination].value_or(account_); - auto broker = view().peek(keylet::loanbroker(brokerID)); + auto broker = view().peek(keylet::loanBroker(brokerID)); if (!broker) return tecINTERNAL; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp index 8343b6e931b..150dc9f8f02 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerDelete.cpp @@ -44,7 +44,7 @@ LoanBrokerDelete::preclaim(PreclaimContext const& ctx) auto const account = tx[sfAccount]; auto const brokerID = tx[sfLoanBrokerID]; - auto const sleBroker = ctx.view.read(keylet::loanbroker(brokerID)); + auto const sleBroker = ctx.view.read(keylet::loanBroker(brokerID)); if (!sleBroker) { JLOG(ctx.j.warn()) << "LoanBroker does not exist."; @@ -117,7 +117,7 @@ LoanBrokerDelete::doApply() auto const brokerID = tx[sfLoanBrokerID]; // Delete the loan broker - auto broker = view().peek(keylet::loanbroker(brokerID)); + auto broker = view().peek(keylet::loanBroker(brokerID)); if (!broker) return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const vaultID = broker->at(sfVaultID); diff --git a/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp index 561890abbf4..106a5c2996e 100644 --- a/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanBrokerSet.cpp @@ -114,7 +114,7 @@ LoanBrokerSet::preclaim(PreclaimContext const& ctx) { // Updating an existing Broker - auto const sleBroker = ctx.view.read(keylet::loanbroker(*brokerID)); + auto const sleBroker = ctx.view.read(keylet::loanBroker(*brokerID)); if (!sleBroker) { JLOG(ctx.j.warn()) << "LoanBroker does not exist."; @@ -178,7 +178,7 @@ LoanBrokerSet::doApply() if (auto const brokerID = tx[~sfLoanBrokerID]) { // Modify an existing LoanBroker - auto broker = view.peek(keylet::loanbroker(*brokerID)); + auto broker = view.peek(keylet::loanBroker(*brokerID)); if (!broker) { // This should be impossible @@ -229,7 +229,7 @@ LoanBrokerSet::doApply() return tefBAD_LEDGER; // LCOV_EXCL_STOP } - auto broker = std::make_shared(keylet::loanbroker(account_, sequence)); + auto broker = std::make_shared(keylet::loanBroker(account_, sequence)); if (auto const ter = dirLink(view, account_, broker)) return ter; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/lending/LoanDelete.cpp b/src/libxrpl/tx/transactors/lending/LoanDelete.cpp index 875af3a03b7..a152ab4d98d 100644 --- a/src/libxrpl/tx/transactors/lending/LoanDelete.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanDelete.cpp @@ -56,7 +56,7 @@ LoanDelete::preclaim(PreclaimContext const& ctx) } auto const loanBrokerID = loanSle->at(sfLoanBrokerID); - auto const loanBrokerSle = ctx.view.read(keylet::loanbroker(loanBrokerID)); + auto const loanBrokerSle = ctx.view.read(keylet::loanBroker(loanBrokerID)); if (!loanBrokerSle) { // should be impossible @@ -87,7 +87,7 @@ LoanDelete::doApply() return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const brokerID = loanSle->at(sfLoanBrokerID); - auto const brokerSle = view.peek(keylet::loanbroker(brokerID)); + auto const brokerSle = view.peek(keylet::loanBroker(brokerID)); if (!brokerSle) return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const brokerPseudoAccount = brokerSle->at(sfAccount); diff --git a/src/libxrpl/tx/transactors/lending/LoanManage.cpp b/src/libxrpl/tx/transactors/lending/LoanManage.cpp index de3de6ca25a..c044cb7ab42 100644 --- a/src/libxrpl/tx/transactors/lending/LoanManage.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanManage.cpp @@ -113,7 +113,7 @@ LoanManage::preclaim(PreclaimContext const& ctx) } auto const loanBrokerID = loanSle->at(sfLoanBrokerID); - auto const loanBrokerSle = ctx.view.read(keylet::loanbroker(loanBrokerID)); + auto const loanBrokerSle = ctx.view.read(keylet::loanBroker(loanBrokerID)); if (!loanBrokerSle) { // should be impossible @@ -400,7 +400,7 @@ LoanManage::doApply() return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const brokerID = loanSle->at(sfLoanBrokerID); - auto const brokerSle = view.peek(keylet::loanbroker(brokerID)); + auto const brokerSle = view.peek(keylet::loanBroker(brokerID)); if (!brokerSle) return tefBAD_LEDGER; // LCOV_EXCL_LINE diff --git a/src/libxrpl/tx/transactors/lending/LoanPay.cpp b/src/libxrpl/tx/transactors/lending/LoanPay.cpp index f24fdc19b3a..926c66e69dd 100644 --- a/src/libxrpl/tx/transactors/lending/LoanPay.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanPay.cpp @@ -110,7 +110,7 @@ LoanPay::calculateBaseFee(ReadView const& view, STTx const& tx) return normalCost; } - auto const brokerSle = view.read(keylet::loanbroker(loanSle->at(sfLoanBrokerID))); + auto const brokerSle = view.read(keylet::loanBroker(loanSle->at(sfLoanBrokerID))); if (!brokerSle) { // Let preclaim worry about the error for this @@ -191,7 +191,7 @@ LoanPay::preclaim(PreclaimContext const& ctx) } auto const loanBrokerID = loanSle->at(sfLoanBrokerID); - auto const loanBrokerSle = ctx.view.read(keylet::loanbroker(loanBrokerID)); + auto const loanBrokerSle = ctx.view.read(keylet::loanBroker(loanBrokerID)); if (!loanBrokerSle) { // This should be impossible @@ -271,7 +271,7 @@ LoanPay::doApply() std::int32_t const loanScale = loanSle->at(sfLoanScale); auto const brokerID = loanSle->at(sfLoanBrokerID); - auto const brokerSle = view.peek(keylet::loanbroker(brokerID)); + auto const brokerSle = view.peek(keylet::loanBroker(brokerID)); if (!brokerSle) return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const brokerOwner = brokerSle->at(sfOwner); diff --git a/src/libxrpl/tx/transactors/lending/LoanSet.cpp b/src/libxrpl/tx/transactors/lending/LoanSet.cpp index 757ec0ec662..0dbbffc9ca8 100644 --- a/src/libxrpl/tx/transactors/lending/LoanSet.cpp +++ b/src/libxrpl/tx/transactors/lending/LoanSet.cpp @@ -150,7 +150,7 @@ LoanSet::checkSign(PreclaimContext const& ctx) if (auto const c = ctx.tx.at(~sfCounterparty)) return c; - if (auto const broker = ctx.view.read(keylet::loanbroker(ctx.tx[sfLoanBrokerID]))) + if (auto const broker = ctx.view.read(keylet::loanBroker(ctx.tx[sfLoanBrokerID]))) return broker->at(sfOwner); return std::nullopt; }(); @@ -268,7 +268,7 @@ LoanSet::preclaim(PreclaimContext const& ctx) auto const account = tx[sfAccount]; auto const brokerID = tx[sfLoanBrokerID]; - auto const brokerSle = ctx.view.read(keylet::loanbroker(brokerID)); + auto const brokerSle = ctx.view.read(keylet::loanBroker(brokerID)); if (!brokerSle) { // This can only be hit if there's a counterparty specified, otherwise @@ -373,7 +373,7 @@ LoanSet::doApply() auto const brokerID = tx[sfLoanBrokerID]; - auto const brokerSle = view.peek(keylet::loanbroker(brokerID)); + auto const brokerSle = view.peek(keylet::loanBroker(brokerID)); if (!brokerSle) return tefBAD_LEDGER; // LCOV_EXCL_LINE auto const brokerOwner = brokerSle->at(sfOwner); diff --git a/src/test/app/Batch_test.cpp b/src/test/app/Batch_test.cpp index 56d398f8f22..2177d759a49 100644 --- a/src/test/app/Batch_test.cpp +++ b/src/test/app/Batch_test.cpp @@ -2694,7 +2694,7 @@ class Batch_test : public beast::unit_test::suite env(vault.deposit({.depositor = lender, .id = vaultKeylet.key, .amount = deposit})); env.close(); - auto const brokerKeylet = keylet::loanbroker(lender.id(), env.seq(lender)); + auto const brokerKeylet = keylet::loanBroker(lender.id(), env.seq(lender)); { using namespace loanBroker; diff --git a/src/test/app/Invariants_test.cpp b/src/test/app/Invariants_test.cpp index c6ce01f6d96..d6658024b26 100644 --- a/src/test/app/Invariants_test.cpp +++ b/src/test/app/Invariants_test.cpp @@ -2059,7 +2059,7 @@ class Invariants_test : public beast::unit_test::suite // Create Loan Broker using namespace loanBroker; - auto const loanBrokerKeylet = keylet::loanbroker(a.id(), env.seq(a)); + auto const loanBrokerKeylet = keylet::loanBroker(a.id(), env.seq(a)); // Create a Loan Broker with all default values. env(set(a, vaultID), fee(increment)); diff --git a/src/test/app/LoanBroker_test.cpp b/src/test/app/LoanBroker_test.cpp index 3bdd3468777..3c1d3484b7a 100644 --- a/src/test/app/LoanBroker_test.cpp +++ b/src/test/app/LoanBroker_test.cpp @@ -91,7 +91,7 @@ class LoanBroker_test : public beast::unit_test::suite using namespace loanBroker; // Can't create a loan broker regardless of whether the vault exists env(set(alice, keylet.key), ter(temDISABLED)); - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); // Other LoanBroker transactions are disabled, too. // 1. LoanBrokerCoverDeposit env(coverDeposit(alice, brokerKeylet.key, asset(1000)), ter(temDISABLED)); @@ -177,7 +177,7 @@ class LoanBroker_test : public beast::unit_test::suite static PrettyAsset const ghostIouAsset = nonExistent["GST"]; PrettyAsset const vaultPseudoIouAsset = vault.pseudoAccount["PSD"]; - auto const badKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const badKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); env(set(alice, badVault.vaultID)); env.close(); auto const badBrokerPseudo = [&]() { @@ -190,7 +190,7 @@ class LoanBroker_test : public beast::unit_test::suite }(); PrettyAsset const badBrokerPseudoIouAsset = badBrokerPseudo["WAT"]; - auto const keylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const keylet = keylet::loanBroker(alice.id(), env.seq(alice)); { // Start with default values auto jtx = env.jt(set(alice, vault.vaultID)); @@ -733,7 +733,7 @@ class LoanBroker_test : public beast::unit_test::suite // Modifications // Update the fields - auto const nextKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const nextKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); // fields that can't be changed // LoanBrokerID @@ -889,7 +889,7 @@ class LoanBroker_test : public beast::unit_test::suite env(vault.deposit({.depositor = alice, .id = vaultKeylet.key, .amount = asset(50)})); env.close(); - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); env(set(alice, vaultInfo.vaultID)); env.close(); @@ -1228,7 +1228,7 @@ class LoanBroker_test : public beast::unit_test::suite env.close(); // Predict LoanBroker key using alice's current sequence BEFORE submit - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); // Create LoanBroker pointing to the vault env(loanBroker::set(alice, vaultKeylet.key)); @@ -1247,7 +1247,7 @@ class LoanBroker_test : public beast::unit_test::suite beast::Journal const jlog{sink}; ApplyContext ac{env.app(), ov, tx, tesSUCCESS, env.current()->fees().base, tapNONE, jlog}; - if (auto sleBroker = ac.view().peek(keylet::loanbroker(brokerKeylet.key))) + if (auto sleBroker = ac.view().peek(keylet::loanBroker(brokerKeylet.key))) { auto const vaultID = (*sleBroker)[sfVaultID]; if (auto sleVault = ac.view().peek(keylet::vault(vaultID))) @@ -1334,7 +1334,7 @@ class LoanBroker_test : public beast::unit_test::suite err); }); - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); // Can create LoanBroker if the vault owner is not authorized forUnauthAuth([&](auto) { env(set(alice, vaultInfo.vaultID)); }); @@ -1410,7 +1410,7 @@ class LoanBroker_test : public beast::unit_test::suite env(vault.deposit({.depositor = alice, .id = vaultKeylet.key, .amount = asset(50)})); env.close(); - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); env(set(alice, vaultInfo.vaultID)); env.close(); @@ -1498,7 +1498,7 @@ class LoanBroker_test : public beast::unit_test::suite ter(err)); env.close(); - auto const brokerKeylet = keylet::loanbroker(broker, env.seq(broker)); + auto const brokerKeylet = keylet::loanBroker(broker, env.seq(broker)); env(loanBroker::set(broker, keylet.key)); env.close(); @@ -1666,7 +1666,7 @@ class LoanBroker_test : public beast::unit_test::suite env(vault.withdraw({.depositor = broker, .id = keylet.key, .amount = token(1'000)})); // Test LoanBroker withdraw - auto const brokerKeylet = keylet::loanbroker(broker, env.seq(broker)); + auto const brokerKeylet = keylet::loanBroker(broker, env.seq(broker)); env(loanBroker::set(broker, keylet.key)); env.close(); @@ -1794,7 +1794,7 @@ class LoanBroker_test : public beast::unit_test::suite } // Test LoanBroker withdraw - auto const brokerKeylet = keylet::loanbroker(broker, env.seq(broker)); + auto const brokerKeylet = keylet::loanBroker(broker, env.seq(broker)); env(loanBroker::set(broker, keylet.key)); env.close(); diff --git a/src/test/app/Loan_test.cpp b/src/test/app/Loan_test.cpp index 6afd44e8d99..4dcf31de4a9 100644 --- a/src/test/app/Loan_test.cpp +++ b/src/test/app/Loan_test.cpp @@ -107,7 +107,7 @@ class Loan_test : public beast::unit_test::suite Account const bob{"bob"}; env.fund(XRP(10000), alice, bob); - auto const keylet = keylet::loanbroker(alice, env.seq(alice)); + auto const keylet = keylet::loanBroker(alice, env.seq(alice)); using namespace std::chrono_literals; using namespace loan; @@ -190,7 +190,7 @@ class Loan_test : public beast::unit_test::suite [[nodiscard]] Keylet brokerKeylet() const { - return keylet::loanbroker(brokerID); + return keylet::loanBroker(brokerID); } [[nodiscard]] Keylet vaultKeylet() const @@ -347,7 +347,7 @@ class Loan_test : public beast::unit_test::suite std::uint32_t ownerCount) const { using namespace jtx; - if (auto brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto brokerSle = env.le(keylet::loanBroker(broker.brokerID)); env.test.BEAST_EXPECT(brokerSle)) { TenthBips16 const managementFeeRate{brokerSle->at(sfManagementFeeRate)}; @@ -450,7 +450,7 @@ class Loan_test : public beast::unit_test::suite paymentRemaining, 1); - if (auto brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto brokerSle = env.le(keylet::loanBroker(broker.brokerID)); env.test.BEAST_EXPECT(brokerSle)) { if (auto vaultSle = env.le(keylet::vault(brokerSle->at(sfVaultID))); @@ -517,7 +517,7 @@ class Loan_test : public beast::unit_test::suite BEAST_EXPECT(vault->at(sfAssetsAvailable) == deposit.value()); } - auto const keylet = keylet::loanbroker(lender.id(), env.seq(lender)); + auto const keylet = keylet::loanBroker(lender.id(), env.seq(lender)); using namespace loanBroker; env(set(lender, vaultKeylet.key, params.flags), @@ -610,7 +610,7 @@ class Loan_test : public beast::unit_test::suite bool canImpairLoan(jtx::Env const& env, BrokerInfo const& broker, LoanState const& state) { - if (auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { if (auto const vaultSle = env.le(keylet::vault(brokerSle->at(sfVaultID))); @@ -780,7 +780,7 @@ class Loan_test : public beast::unit_test::suite BrokerInfo const broker = createVaultAndBroker(env, asset, lender, brokerParams); auto const pseudoAcctOpt = [&]() -> std::optional { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return std::nullopt; auto const brokerPseudo = brokerSle->at(sfAccount); @@ -791,7 +791,7 @@ class Loan_test : public beast::unit_test::suite Account const& pseudoAcct = *pseudoAcctOpt; auto const loanKeyletOpt = [&]() -> std::optional { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return std::nullopt; @@ -1260,7 +1260,7 @@ class Loan_test : public beast::unit_test::suite toEndOfLife) { auto const [keylet, loanSequence] = [&]() { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) { // will be invalid @@ -1349,7 +1349,7 @@ class Loan_test : public beast::unit_test::suite auto const startDate = env.current()->header().parentCloseTime.time_since_epoch().count(); - if (auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { BEAST_EXPECT(brokerSle->at(sfOwnerCount) == 1); @@ -1529,7 +1529,7 @@ class Loan_test : public beast::unit_test::suite borrowerStartingBalance.value() - adjustment); BEAST_EXPECT(env.ownerCount(borrower) == borrowerOwnerCount); - if (auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { BEAST_EXPECT(brokerSle->at(sfOwnerCount) == 0); @@ -1605,7 +1605,7 @@ class Loan_test : public beast::unit_test::suite auto const loanSetFee = fee(env.current()->fees().base * 2); auto const pseudoAcct = [&]() { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return Account{lender}; auto const brokerPseudo = brokerSle->at(sfAccount); @@ -1868,7 +1868,7 @@ class Loan_test : public beast::unit_test::suite // XRP can not be frozen, but run through the loop anyway to test // the tecLIMIT_EXCEEDED case { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return; @@ -1992,7 +1992,7 @@ class Loan_test : public beast::unit_test::suite // Finally! Create a loan auto coverAvailable = [&env, this](uint256 const& brokerID, Number const& expected) { - if (auto const brokerSle = env.le(keylet::loanbroker(brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerID)); BEAST_EXPECT(brokerSle)) { auto const available = brokerSle->at(sfCoverAvailable); @@ -2002,7 +2002,7 @@ class Loan_test : public beast::unit_test::suite return Number{}; }; auto getDefaultInfo = [&env, this](LoanState const& state, BrokerInfo const& broker) { - if (auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { BEAST_EXPECT( @@ -3520,7 +3520,7 @@ class Loan_test : public beast::unit_test::suite } } - if (auto brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { BEAST_EXPECT(brokerSle->at(sfOwnerCount) == 0); @@ -3531,7 +3531,7 @@ class Loan_test : public beast::unit_test::suite lender, broker.brokerID, STAmount(broker.asset, coverAvailable))); env.close(); - brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle && brokerSle->at(sfCoverAvailable) == 0); } // Verify we can delete the loan broker @@ -3763,7 +3763,7 @@ class Loan_test : public beast::unit_test::suite BrokerInfo const broker{createVaultAndBroker(env, xrpAsset, lender, brokerParams)}; - if (auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle)) { BEAST_EXPECT(brokerSle->at(sfDebtMaximum) == 0); @@ -3833,7 +3833,7 @@ class Loan_test : public beast::unit_test::suite createJson["OverpaymentInterestRate"] = 1360; createJson["PaymentInterval"] = 727; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -4176,7 +4176,7 @@ class Loan_test : public beast::unit_test::suite Env env(*this); auto getCoverBalance = [&](BrokerInfo const& brokerInfo, auto const& accountField) { - if (auto const le = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const le = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(le)) { auto const account = le->at(accountField); @@ -4358,7 +4358,7 @@ class Loan_test : public beast::unit_test::suite env.close(); auto const pseudoBroker = [&]() -> std::optional { - if (auto brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { return Account{"pseudo", brokerSle->at(sfAccount)}; @@ -4588,7 +4588,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = "2891743748"; createJson["PrincipalRequested"] = "8516.98"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); createJson = env.json(createJson, sig(sfCounterpartySignature, lender)); env(createJson, ter(temINVALID)); @@ -4649,7 +4649,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = 5678; createJson["PrincipalRequested"] = "9924.81"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -4658,7 +4658,7 @@ class Loan_test : public beast::unit_test::suite env.close(); auto const pseudoAcct = [&]() { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return Account{lender}; auto const brokerPseudo = brokerSle->at(sfAccount); @@ -4739,7 +4739,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = 1; createJson["PrincipalRequested"] = "0.000763058"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -4803,7 +4803,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = 3239184; createJson["PrincipalRequested"] = "3959.37"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -4882,7 +4882,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = 5678; createJson["PrincipalRequested"] = "9924.81"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -4986,7 +4986,7 @@ class Loan_test : public beast::unit_test::suite createJson["PaymentTotal"] = 5678; createJson["PrincipalRequested"] = "9924.81"; - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -5151,7 +5151,7 @@ class Loan_test : public beast::unit_test::suite } { // Start date when the ledger is closed will be larger - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -5178,7 +5178,7 @@ class Loan_test : public beast::unit_test::suite } { // Start date when the ledger is closed will be larger - auto const brokerStateBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerStateBefore = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSequence = brokerStateBefore->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -5226,7 +5226,7 @@ class Loan_test : public beast::unit_test::suite if (!BEAST_EXPECT(total != 0)) return; - auto const brokerState = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerState = env.le(keylet::loanBroker(broker.brokerID)); // Intentionally shadow the outer values auto const loanSequence = brokerState->at(sfLoanSequence); auto const keylet = keylet::loan(broker.brokerID, loanSequence); @@ -5356,7 +5356,7 @@ class Loan_test : public beast::unit_test::suite env(createTx); env.close(); - auto const brokerKeylet = keylet::loanbroker(alice.id(), env.seq(alice)); + auto const brokerKeylet = keylet::loanBroker(alice.id(), env.seq(alice)); env(set(alice, vaultKeylet.key)); env.close(); @@ -5450,7 +5450,7 @@ class Loan_test : public beast::unit_test::suite auto const loanSetFee = fee(env.current()->fees().base * 2); - auto const brokerPreLoan = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerPreLoan = env.le(keylet::loanBroker(broker.brokerID)); if (BEAST_EXPECT(brokerPreLoan); !brokerPreLoan.has_value()) return; @@ -5485,7 +5485,7 @@ class Loan_test : public beast::unit_test::suite auto const overdueClose = tp{d{state1.nextPaymentDate + state1.paymentInterval}}; env.close(overdueClose); - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); auto const loanSle = env.le(loanKeylet); if (!BEAST_EXPECT(brokerSle && loanSle)) return; @@ -5616,7 +5616,7 @@ class Loan_test : public beast::unit_test::suite env(createTx); env.close(); - auto const brokerBefore = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerBefore = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerBefore); if (!brokerBefore) return; @@ -5633,7 +5633,7 @@ class Loan_test : public beast::unit_test::suite env(coverClawback(issuer, 0), loanBrokerID(broker.brokerID)); env.close(); - auto const brokerAfter = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerAfter = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerAfter); if (!brokerAfter) return; @@ -5725,7 +5725,7 @@ class Loan_test : public beast::unit_test::suite gracePeriod(grace), fee(loanSetFee)); - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle); auto const loanSequence = brokerSle ? brokerSle->at(sfLoanSequence) : 0; auto const loanKeylet = keylet::loan(broker.brokerID, loanSequence); @@ -5756,7 +5756,7 @@ class Loan_test : public beast::unit_test::suite auto after = getCurrentState(env, broker, loanKeylet); auto const loanSle = env.le(loanKeylet); BEAST_EXPECT(loanSle); - auto const brokerSle2 = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle2 = env.le(keylet::loanBroker(broker.brokerID)); BEAST_EXPECT(brokerSle2); auto const closePaymentFee = loanSle ? loanSle->at(sfClosePaymentFee) : Number{}; @@ -5912,7 +5912,7 @@ class Loan_test : public beast::unit_test::suite auto broker = createVaultAndBroker(env, asset, lender, brokerParams); auto const loanKeyletOpt = [&]() -> std::optional { - auto const brokerSle = env.le(keylet::loanbroker(broker.brokerID)); + auto const brokerSle = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(brokerSle)) return std::nullopt; @@ -6183,7 +6183,7 @@ class Loan_test : public beast::unit_test::suite txfee); env.close(); - auto const brokerKeyLet = keylet::loanbroker(lender.id(), env.seq(lender)); + auto const brokerKeyLet = keylet::loanBroker(lender.id(), env.seq(lender)); env(loanBroker::set(lender, vaultKeyLet.key), txfee); env.close(); @@ -6257,7 +6257,7 @@ class Loan_test : public beast::unit_test::suite env.close(); // Verify DebtTotal is exactly 804 - if (auto const brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { log << *brokerSle << std::endl; @@ -6278,7 +6278,7 @@ class Loan_test : public beast::unit_test::suite env.close(); // Validate CoverAvailable == 80 XRP and DebtTotal remains 804 - if (auto const brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { log << *brokerSle << std::endl; @@ -6388,7 +6388,7 @@ class Loan_test : public beast::unit_test::suite txFee); env.close(); - auto const brokerKeylet = keylet::loanbroker(broker.id(), env.seq(broker)); + auto const brokerKeylet = keylet::loanBroker(broker.id(), env.seq(broker)); env(loanBroker::set(broker, vaultKeylet.key), txFee); env.close(); @@ -6691,7 +6691,7 @@ class Loan_test : public beast::unit_test::suite // Verify trustline is still deleted BEAST_EXPECT(env.le(brokerTrustline) == nullptr); // Verify the service fee went to the broker pseudo-account - if (auto const brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { Account const pseudo("pseudo-account", brokerSle->at(sfAccount)); @@ -6772,7 +6772,7 @@ class Loan_test : public beast::unit_test::suite // Verify the MPT is still unauthorized. BEAST_EXPECT(env.le(brokerMpt) == nullptr); // Verify the service fee went to the broker pseudo-account - if (auto const brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { Account const pseudo("pseudo-account", brokerSle->at(sfAccount)); @@ -6875,7 +6875,7 @@ class Loan_test : public beast::unit_test::suite // Verify broker is still not authorized env(pay(issuer, broker, MPT(1'000)), ter(tecNO_AUTH)); // Verify the service fee went to the broker pseudo-account - if (auto const brokerSle = env.le(keylet::loanbroker(brokerInfo.brokerID)); + if (auto const brokerSle = env.le(keylet::loanBroker(brokerInfo.brokerID)); BEAST_EXPECT(brokerSle)) { Account const pseudo("pseudo-account", brokerSle->at(sfAccount)); @@ -7145,7 +7145,7 @@ class Loan_test : public beast::unit_test::suite env.close(); // Create a loan - auto const sleBroker = env.le(keylet::loanbroker(broker.brokerID)); + auto const sleBroker = env.le(keylet::loanBroker(broker.brokerID)); if (!BEAST_EXPECT(sleBroker)) return; diff --git a/src/test/app/Vault_test.cpp b/src/test/app/Vault_test.cpp index 50280ab96b3..bd6d358332a 100644 --- a/src/test/app/Vault_test.cpp +++ b/src/test/app/Vault_test.cpp @@ -4191,7 +4191,7 @@ class Vault_test : public beast::unit_test::suite BEAST_EXPECT(env.balance(d.depositor, d.shares) == d.share(1000)); // Create a loan broker backed by this vault - auto const brokerKeylet = keylet::loanbroker(d.owner.id(), env.seq(d.owner)); + auto const brokerKeylet = keylet::loanBroker(d.owner.id(), env.seq(d.owner)); env(set(d.owner, d.keylet.key)); env.close(); @@ -4705,7 +4705,7 @@ class Vault_test : public beast::unit_test::suite env.close(); auto const& sharesAvailable = vaultShareBalance(vaultKeylet); - auto const& brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const& brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5098,7 +5098,7 @@ class Vault_test : public beast::unit_test::suite PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); // Create a loan broker backed by this vault - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5156,7 +5156,7 @@ class Vault_test : public beast::unit_test::suite PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); // Create a loan broker backed by this vault - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5211,7 +5211,7 @@ class Vault_test : public beast::unit_test::suite PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); // Create a loan broker backed by this vault - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5265,7 +5265,7 @@ class Vault_test : public beast::unit_test::suite return; PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5313,7 +5313,7 @@ class Vault_test : public beast::unit_test::suite return; PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); @@ -5419,7 +5419,7 @@ class Vault_test : public beast::unit_test::suite PrettyAsset const shares = MPTIssue(vaultSle->at(sfShareMPTID)); // Create a loan broker backed by this vault - auto const brokerKeylet = keylet::loanbroker(owner.id(), env.seq(owner)); + auto const brokerKeylet = keylet::loanBroker(owner.id(), env.seq(owner)); env(set(owner, vaultKeylet.key)); env.close(); diff --git a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp index 0efe490b392..98c5849f069 100644 --- a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp @@ -493,7 +493,7 @@ parseLoanBroker( if (!seq) return Unexpected(seq.error()); - return keylet::loanbroker(*id, *seq).key; + return keylet::loanBroker(*id, *seq).key; } static Expected From 68bfec14efd2d2d87ca59e1491d9b63ad0259833 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:30:49 -0400 Subject: [PATCH 09/10] rename nft serial -> nft sequence --- include/xrpl/protocol/nft.h | 4 ++-- src/xrpld/rpc/handlers/account/AccountNFTs.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/xrpl/protocol/nft.h b/include/xrpl/protocol/nft.h index 6dce8d10456..1d019aebffd 100644 --- a/include/xrpl/protocol/nft.h +++ b/include/xrpl/protocol/nft.h @@ -52,7 +52,7 @@ getTransferFee(uint256 const& id) } inline std::uint32_t -getSerial(uint256 const& id) +getSequence(uint256 const& id) { std::uint32_t seq = 0; memcpy(&seq, id.begin() + 28, 4); @@ -92,7 +92,7 @@ getTaxon(uint256 const& id) // The taxon cipher is just an XOR, so it is reversible by applying the // XOR a second time. - return cipheredTaxon(getSerial(id), toTaxon(taxon)); + return cipheredTaxon(getSequence(id), toTaxon(taxon)); } inline AccountID diff --git a/src/xrpld/rpc/handlers/account/AccountNFTs.cpp b/src/xrpld/rpc/handlers/account/AccountNFTs.cpp index 7d619ca6559..79ded76d02d 100644 --- a/src/xrpld/rpc/handlers/account/AccountNFTs.cpp +++ b/src/xrpld/rpc/handlers/account/AccountNFTs.cpp @@ -134,7 +134,7 @@ doAccountNFTs(RPC::JsonContext& context) obj[sfFlags.jsonName] = nft::getFlags(nftokenID); obj[sfIssuer.jsonName] = to_string(nft::getIssuer(nftokenID)); obj[sfNFTokenTaxon.jsonName] = nft::toUInt32(nft::getTaxon(nftokenID)); - obj[jss::nft_serial] = nft::getSerial(nftokenID); + obj[jss::nft_serial] = nft::getSequence(nftokenID); if (std::uint16_t const xferFee = {nft::getTransferFee(nftokenID)}) obj[sfTransferFee.jsonName] = xferFee; } From 83bdf861165183cd236422171a5723ea7653721a Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 30 Apr 2026 15:43:13 -0400 Subject: [PATCH 10/10] Update include/xrpl/protocol/Indexes.h Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- include/xrpl/protocol/Indexes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xrpl/protocol/Indexes.h b/include/xrpl/protocol/Indexes.h index 91d0cffe30a..052e1ef02e3 100644 --- a/include/xrpl/protocol/Indexes.h +++ b/include/xrpl/protocol/Indexes.h @@ -98,7 +98,7 @@ rippleState(AccountID const& id0, AccountID const& id1, Currency const& currency inline Keylet rippleState(AccountID const& id, Issue const& issue) noexcept { - return line(id, issue.account, issue.currency); + return rippleState(id, issue.account, issue.currency); } /** @} */