From a51f16754b4d1b4140ed50e9b325ce422ea8f1f8 Mon Sep 17 00:00:00 2001 From: Shawn Xie Date: Wed, 26 Aug 2026 10:51:46 -0400 Subject: [PATCH] fix conflicts --- include/xrpl/protocol/detail/transactions.macro | 4 +--- .../tx/transactors/proposal/TransactionProposalCreate.cpp | 3 ++- src/test/app/TransactionProposalCreate_test.cpp | 2 +- src/test/jtx/impl/proposal.cpp | 5 +++-- src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/xrpl/protocol/detail/transactions.macro b/include/xrpl/protocol/detail/transactions.macro index 9b8b1b456e..0ad99cb985 100644 --- a/include/xrpl/protocol/detail/transactions.macro +++ b/include/xrpl/protocol/detail/transactions.macro @@ -1137,9 +1137,7 @@ TRANSACTION(ttSPONSORSHIP_SET, 91, SponsorshipSet, # include #endif TRANSACTION(ttTRANSACTION_PROPOSAL_CREATE, 92, TransactionProposalCreate, - Delegation::NotDelegable, - featureCosign, - NoPriv, + ({.amendment = featureCosign}), ({ {sfProposedTransaction, SoeRequired}, {sfExpiration, SoeRequired}, diff --git a/src/libxrpl/tx/transactors/proposal/TransactionProposalCreate.cpp b/src/libxrpl/tx/transactors/proposal/TransactionProposalCreate.cpp index 3a397cac00..560dee044d 100644 --- a/src/libxrpl/tx/transactors/proposal/TransactionProposalCreate.cpp +++ b/src/libxrpl/tx/transactors/proposal/TransactionProposalCreate.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -232,7 +233,7 @@ TransactionProposalCreate::preclaim(PreclaimContext const& ctx) // The proposal reserves the ticket for as long as it exists (On-Chain // Cosigner spec §4.2.1, §5.3.2): a ticket that doesn't exist yet can't be // reserved. - if (!ctx.view.exists(keylet::ticket(target, ticketSequence))) + if (!ctx.view.exists(keylet::ticket(target, SeqProxy::rawTicket(ticketSequence)))) { JLOG(ctx.j.debug()) << "TransactionProposalCreate: target ticket " "does not exist."; diff --git a/src/test/app/TransactionProposalCreate_test.cpp b/src/test/app/TransactionProposalCreate_test.cpp index 30ba7f4c1c..2b9ec279d7 100644 --- a/src/test/app/TransactionProposalCreate_test.cpp +++ b/src/test/app/TransactionProposalCreate_test.cpp @@ -209,7 +209,7 @@ struct TransactionProposalCreate_test : public beast::unit_test::Suite Ter(temMALFORMED)); env.close(); BEAST_EXPECT(!proposal::entry(env, target, selfTicketSeq)); - BEAST_EXPECT(env.le(keylet::ticket(target.id(), selfTicketSeq))); + BEAST_EXPECT(env.le(keylet::ticket(target.id(), SeqProxy::rawTicket(selfTicketSeq)))); BEAST_EXPECT(ownerCount(env, target) == 2); // Consume the leftover Ticket so target's OwnerCount is back to diff --git a/src/test/jtx/impl/proposal.cpp b/src/test/jtx/impl/proposal.cpp index 3497f2d744..de72a14cd4 100644 --- a/src/test/jtx/impl/proposal.cpp +++ b/src/test/jtx/impl/proposal.cpp @@ -234,7 +234,7 @@ verify::Create::operator()(Env& env, JTx& jt) const reserveSponsor ? std::optional{env.sponsoringOwnerCount(*reserveSponsor)} : std::nullopt; auto const proposalBefore = view.read(proposalKeylet); auto const targetBefore = view.read(keylet::account(target)); - auto const ticketBefore = view.read(keylet::ticket(target, ticketSeq)); + auto const ticketBefore = view.read(keylet::ticket(target, SeqProxy::rawTicket(ticketSeq))); auto const proposerDirBefore = ownerDirKeys(view, proposer.id()); auto const targetDirBefore = ownerDirKeys(view, target); @@ -264,7 +264,8 @@ verify::Create::operator()(Env& env, JTx& jt) const // The target's ticket is left for the proposed transaction, including // when the target is also the proposer. test.expect( - unchanged(ticketBefore, view.read(keylet::ticket(target, ticketSeq))), + unchanged( + ticketBefore, view.read(keylet::ticket(target, SeqProxy::rawTicket(ticketSeq)))), "proposal target ticket"); // Nothing else of a distinct target's moves: the proposal belongs in diff --git a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp index 55c53af5ff..a92b828556 100644 --- a/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp +++ b/src/xrpld/rpc/handlers/ledger/LedgerEntry.cpp @@ -761,14 +761,14 @@ parseTransactionProposal( return parseObjectID(params, fieldName, "hex string"); auto const targetID = - LedgerEntryHelpers::requiredAccountID(params, jss::account, "malformedAddress"); + ledger_entry_helpers::requiredAccountID(params, jss::account, "malformedAddress"); if (!targetID) return std::unexpected(targetID.error()); // The proposed transaction's TicketSequence (a proposed transaction is // ticket-only), mirroring how parseTicket looks up a Ticket object. auto const ticketSequence = - LedgerEntryHelpers::requiredUInt32(params, jss::ticket_seq, "malformedRequest"); + ledger_entry_helpers::requiredUInt32(params, jss::ticket_seq, "malformedRequest"); if (!ticketSequence) return std::unexpected(ticketSequence.error());