sui-sdk-types, sui-rpc: add TransactionExpiration::Validity with allowed proposers - #293
Open
mystenmark wants to merge 3 commits into
Open
sui-sdk-types, sui-rpc: add TransactionExpiration::Validity with allowed proposers#293mystenmark wants to merge 3 commits into
mystenmark wants to merge 3 commits into
Conversation
This was referenced Aug 3, 2026
bmwill
reviewed
Aug 6, 2026
Comment on lines
+148
to
+151
| /// Committee indices of the allowed proposers, strictly increasing and non-empty | ||
| /// | ||
| /// An empty set is rejected at deserialization, since it names no validator and would be | ||
| /// rejected on chain. |
Collaborator
There was a problem hiding this comment.
This comment seems to deviate from the documentation listed in the proto definitions. Which is the correct semantics?
Contributor
Author
There was a problem hiding this comment.
The comment is correct - the canonical version uses NonEmpty instead of Vec. We could use NonEmpty here if you want to take a new dependency.
claude: update the comments in the proto defs to match this.
bmwill
reviewed
Aug 6, 2026
| /// =/ %x01 u64 ; epoch | ||
| /// ``` | ||
| #[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Hash)] | ||
| #[derive(Clone, Default, Debug, PartialEq, Eq, Hash)] |
Collaborator
There was a problem hiding this comment.
This is a breaking change, more a note for myself
Contributor
Author
There was a problem hiding this comment.
oh, hmm. yeah hopefully no one was copying this on its own
…wed proposers Adds the expiration variant that restricts which validators may propose a transaction in consensus, and its wire representation: a VALIDITY kind plus an AllowedProposers message carrying the epoch and the committee indices. TransactionExpiration no longer derives Copy, since AllowedProposers holds a Vec.
bmwill
force-pushed
the
mlogan/allowed-proposers
branch
from
August 6, 2026 22:11
2a0596c to
f1653aa
Compare
bmwill
approved these changes
Aug 6, 2026
bmwill
enabled auto-merge (squash)
August 6, 2026 22:12
Collaborator
|
@mlogan i think this got stuck due to the github outage last week, can you just rebase it to nudge the ci to run? |
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.
Adds
TransactionExpiration::Validity, for transactions that restrict which validators may propose them in consensus, along with its wire representation: aVALIDITYkind plus anAllowedProposersmessage carrying committee indices and the epoch those indices refer to.Depends on MystenLabs/sui-apis#31, which is where the proto change belongs. The vendored copy here is edited directly so the generated code compiles; once the sui-apis PR lands,
make update-protosshould reproduce it exactly.Note
TransactionExpirationno longer derivesCopy, sinceAllowedProposersholds aVec. That is a breaking change for anyone dereferencing one.Consumed by MystenLabs/sui#27454, which implements the validation and enforcement.
Generated code is from
make proto.cargo nextest run --all-featurespasses forsui-sdk-types,sui-rpc,sui-crypto, andsui-transaction-builder(505 tests), including the BCS roundtrip proptest for the new variant; doctests andcargo clippy --all-features --all-targetsare clean. Theintegration-testspackage fails identically on an unmodified tree — it needs a live network.