From dde7ca9f28d52d1b8d0a9224a95b4b8bf94941ea Mon Sep 17 00:00:00 2001 From: Olek <115580134+oleks-rip@users.noreply.github.com> Date: Mon, 4 May 2026 19:52:23 -0400 Subject: [PATCH] fix: Use transaction sequence numbers in permissioned domains (#98) --- src/xrpld/app/tx/detail/PermissionedDomainSet.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp b/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp index 0aff107bec..6048e35a78 100644 --- a/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp +++ b/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp @@ -119,12 +119,14 @@ PermissionedDomainSet::doApply() if (balance < reserve) return tecINSUFFICIENT_RESERVE; - Keylet const pdKeylet = keylet::permissionedDomain( - account_, ctx_.tx.getFieldU32(sfSequence)); + bool const fix313 = view().rules().enabled(fixCleanup3_1_3); + auto const seq = + fix313 ? ctx_.tx.getSeqValue() : ctx_.tx.getFieldU32(sfSequence); + Keylet const pdKeylet = keylet::permissionedDomain(account_, seq); auto slePd = std::make_shared(pdKeylet); slePd->setAccountID(sfOwner, account_); - slePd->setFieldU32(sfSequence, ctx_.tx.getFieldU32(sfSequence)); + slePd->setFieldU32(sfSequence, seq); slePd->peekFieldArray(sfAcceptedCredentials) = std::move(sortedLE); auto const page = view().dirInsert( keylet::ownerDir(account_), pdKeylet, describeOwnerDir(account_));