Skip to content

Conversation

mvadari
Copy link
Collaborator

@mvadari mvadari commented Jun 6, 2025

High Level Overview of Change

This PR allows users to submit simulate requests from a multisign account without needing to specify the accounts that are doing the multisigning, and fixes an error with simulate that allowed double-"signed" (both single-sign and multi-sign public keys are provided) transactions.

Context of Change

There was some confusion about how to use simulate with a multisign account. Receiving tefMASTER_DISABLED was unexpected. This change makes it more intuitive.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

API Impact

  • Public API: Non-breaking change

Before / After

Before:
Submitting a simulate request for a transaction from an account with the master key disabled and a multisig setup would result in tefMASTER_DISABLED.
You can submit a simulate request with both SigningPubKey and Signers.

After:
Submitting a simulate request for a transaction from an account with the master key disabled and a multisig setup ignores signature checking completely (unless Signers is provided in any way, shape, or form).
Submitting a simulate request with both SigningPubKey and Signers results in temINVALID.

Test Plan

Tests were adjusted and CI passes.

@mvadari mvadari requested review from Bronek and oleks-rip June 6, 2025 13:47
Copy link

codecov bot commented Jun 6, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 79.1%. Comparing base (d494bf4) to head (d02257c).
Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           develop   #5479   +/-   ##
=======================================
  Coverage     79.1%   79.1%           
=======================================
  Files          817     817           
  Lines        71700   71703    +3     
  Branches      8257    8241   -16     
=======================================
+ Hits         56692   56711   +19     
+ Misses       15008   14992   -16     
Files with missing lines Coverage Δ
src/xrpld/app/tx/detail/Transactor.cpp 89.3% <100.0%> (+0.1%) ⬆️

... and 10 files with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Collaborator

@Bronek Bronek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simple change with good unit test coverage. Ship it :)

@Bronek Bronek self-requested a review June 6, 2025 16:09
@mvadari
Copy link
Collaborator Author

mvadari commented Jun 6, 2025

@Bronek you may want to re-review, I found another issue when refactoring (you could simulate a transaction that was both single- and multi-"signed")

Copy link
Collaborator

@Bronek Bronek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice !

@Bronek Bronek added the Ready to merge *PR author* thinks it's ready to merge. Has passed code review. Perf sign-off may still be required. label Jun 10, 2025
@bthomee bthomee merged commit 35a40a8 into XRPLF:develop Jun 10, 2025
26 checks passed
This was referenced Jun 12, 2025
@legleux legleux mentioned this pull request Jun 23, 2025
yinyiqian1 pushed a commit to yinyiqian1/rippled that referenced this pull request Jul 5, 2025
This change allows users to submit simulate requests from a multi-sign account without needing to specify the accounts that are doing the multi-signing, and fixes an error with simulate that allowed double-"signed" (both single-sign and multi-sign public keys are provided) transactions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ready to merge *PR author* thinks it's ready to merge. Has passed code review. Perf sign-off may still be required.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants