From 2fe984297a70a862502b21360df7ec5207564fce Mon Sep 17 00:00:00 2001 From: Nicholas Dudfield Date: Sun, 28 Jun 2026 20:10:28 +0700 Subject: [PATCH] fix(consensus): filter agreed export signers by active view --- src/xrpld/app/consensus/ConsensusExtensions.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/xrpld/app/consensus/ConsensusExtensions.cpp b/src/xrpld/app/consensus/ConsensusExtensions.cpp index eb1e9fbb3..2eceefdb8 100644 --- a/src/xrpld/app/consensus/ConsensusExtensions.cpp +++ b/src/xrpld/app/consensus/ConsensusExtensions.cpp @@ -1256,6 +1256,8 @@ ConsensusExtensions::agreedExportSignatures( return std::nullopt; } + auto const validatorView = activeValidatorView(); + auto const isActiveSigner = activeSignerFilter(*this, validatorView); ExportSignatureSnapshot signatures; bool invalid = false; agreedMap->visitLeaves( @@ -1292,6 +1294,8 @@ ConsensusExtensions::agreedExportSignatures( return; PublicKey const valPK{makeSlice(pk)}; + if (!isActiveSigner(valPK)) + return; auto const sigVL = sidecar.getFieldVL(sfTxnSignature); auto const sigSlice = makeSlice(sigVL);