Added support for tracing (local) dry-runs - #27592
Closed
awelc wants to merge 8 commits into
Closed
Conversation
awelc
temporarily deployed
to
sui-typescript-aws-kms-test-env
August 6, 2026 00:38 — with
GitHub Actions
Inactive
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
tzakian
reviewed
Aug 12, 2026
Contributor
There was a problem hiding this comment.
I think the main questions I have on this are the following:
- How important is it that we anchor to a consistent checkpoint view? My gut is that it's not super important, and my (possibly incorrect) read, is that if we relax things in this manner it makes the implementation much simpler and able to reuse a lot of the existing functionality.
- If we do decide that we want to checkpoint anchor everything, I'd like to see if there is some way of unifying some things, as it feels like there's a lot of parallel and "almost the same but slightly dissimilar" place throughout -- so just enough to cause a lot of almost-duplicate-but-not-quite code which I'd prefer if we could avoid.
| } | ||
|
|
||
| /// Recheck address-owned inputs against the latest live state at the selected checkpoint. | ||
| fn validate_live_owned_inputs<S>( |
Contributor
There was a problem hiding this comment.
Not sure I follow why this is needed in addition to the check_transaction_input checks? IMO it feels like this should share a lot/all with that and if not that's a good signal to re-evaluate probably
| pub start_timestamp: u64, | ||
| } | ||
|
|
||
| /// Chain and epoch metadata for executing against state at a finalized checkpoint. |
Contributor
There was a problem hiding this comment.
This feels like the wrong place for this to live?
I get why you want it here, but the fact that it needs to exist here makes me a bit iffy about this...
Contributor
Author
|
Superseded by #27749 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds tracing support for
sui client ptb --dry-runvia an additional--traceflag. It produces artifacts similar to those created by the replay tool, most importantly the artifacts needed for trace debugging.The traced dry-run executes locally, similarly to how the replay tool executes historical transactions. Unlike a regular dry-run on a full node, which executes against the latest chain state and may observe state mid-checkpoint, it executes against the latest completed checkpoint. This ensures that the epoch, protocol version, gas price, timestamp, packages, and object state form a consistent snapshot for local execution.
We chose the replay tool as a foundation because it already supports traced transaction execution, produces artifacts needed for trace debugging, and provides convenient data-store abstractions (but we had to add dry-run-specific input preparation and a checkpoint-bounded runtime store to support correct dry-run validation and checkpoint consistency)
Test plan
New tests have been added. All tests must pass. Also tested manually end-to-end