fix: bind batch signer signatures to outer account and sequence

This commit is contained in:
Denis Angell
2026-04-21 07:06:17 +02:00
parent 477532edfe
commit 7618b726b3
4 changed files with 192 additions and 7 deletions

View File

@@ -73,7 +73,12 @@ sig::operator()(Env& env, JTx& jt) const
jo[jss::SigningPubKey] = strHex(e.sig.pk().slice());
Serializer msg;
serializeBatch(msg, stx.getFlags(), stx.getBatchTransactionIDs());
serializeBatch(
msg,
stx.getAccountID(sfAccount),
stx.getSeqValue(),
stx.getFlags(),
stx.getBatchTransactionIDs());
finishMultiSigningData(e.acct.id(), msg);
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
auto const sig = xrpl::sign(*publicKeyType(e.sig.pk().slice()), e.sig.sk(), msg.slice());
@@ -112,7 +117,13 @@ msig::operator()(Env& env, JTx& jt) const
iso[jss::SigningPubKey] = strHex(e.sig.pk().slice());
Serializer msg;
serializeBatch(msg, stx.getFlags(), stx.getBatchTransactionIDs());
serializeBatch(
msg,
stx.getAccountID(sfAccount),
stx.getSeqValue(),
stx.getFlags(),
stx.getBatchTransactionIDs());
msg.addBitString(master.id());
finishMultiSigningData(e.acct.id(), msg);
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
auto const sig = xrpl::sign(*publicKeyType(e.sig.pk().slice()), e.sig.sk(), msg.slice());