Repository navigation
Protocol 30 (CAP-0084) - #5472
Merged
Merged
Conversation
This was referenced Sep 24, 2026
sisuresh
force-pushed
the
p30-cap-0084-validate
branch
from
September 26, 2026 00:20
99d1d47 to
e8a5e6d
Compare
Adds the protocol-30 host (rs-soroban-env#1700) as a vnext-only WIP host, with CAP_0084_MUXED_CONTRACT defined only in vnext builds, and SAC transfer tests to muxed contracts. Protocol 29 is an internal release, so a stand-in p29 host at rs-soroban-env main becomes the current host and CURRENT_LEDGER_PROTOCOL_VERSION moves to 29. stellar-quorum-analyzer moves to stellar#27 so non-vnext startup passes the XDR identity check.
Muxed accounts (M...) and, under CAP_0084_MUXED_CONTRACT, muxed contracts (W...) can be stored as contract data values but rendered as "UNKNOWN".
Re-recorded for protocols 29 (current) and 30 (next) with --capture-lcm (stellar#5435), plus the protocol-30 ledger-close-meta reference files.
sisuresh
force-pushed
the
p30-cap-0084-validate
branch
from
September 28, 2026 21:49
890f729 to
387990e
Compare
sisuresh
marked this pull request as ready for review
September 28, 2026 21:49
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Generated XDR headers can remain stale after switching CAP-0084 configuration because they do not depend on the regenerated Makefile.
Review effort: Balanced
Findings: 1
What changed in this PR
Introduces protocol 30 CAP-0084 support while promoting protocol 29 to current.
Changes:
- Adds protocol 29/30 Soroban hosts and dispatch.
- Implements muxed-contract encoding, hashing, serialization, and SAC tests.
- Regenerates protocol 29/30 TxMeta and LCM goldens.
| File | Description |
|---|---|
.gitmodules |
Registers p29/p30 hosts. |
Cargo.lock |
Locks updated Rust dependencies. |
common.mk, configure.ac, src/Makefile.am |
Configures CAP-0084 and host builds. |
src/crypto/StrKey.h, src/ledger/LedgerHashUtils.h |
Supports muxed-contract identifiers. |
src/main/Config.cpp, src/main/main.cpp |
Advances protocols and validates XDR identity. |
src/protocol-curr/xdr |
Updates current XDR definitions. |
src/rust/Cargo.toml, src/rust/soroban/p29, src/rust/soroban/p30 |
Adds pinned hosts. |
src/rust/src/dep-trees/* |
Records host dependency trees. |
src/rust/src/soroban_module_cache.rs, soroban_proto_all.rs |
Dispatches and caches p29/p30 hosts. |
src/transactions/test/* |
Tests muxed-contract SAC transfers. |
src/util/ProtocolVersion.h, XDRCereal.cpp, xdrquery/* |
Adds protocol and utility support. |
src/testdata/*protocol-30.json |
Adds protocol-30 metadata references. |
test-tx-meta-baseline-{current,next}/* |
Regenerates transaction metadata goldens. |
test-lcm-{current,next}/* |
Regenerates LCM indexes and XDR goldens. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Sep 29, 2026
graydon
requested changes
Sep 29, 2026
graydon
left a comment
Contributor
There was a problem hiding this comment.
couple nits but basically ok. I'll be around for a while if you need a quick re-review rubber stamp.
Regenerate XDR headers when the Makefile changes, keep the commented-out module-cache adjustment, move the CAP-0084 guard into demuxContractAddress, and drop p27 from fastdev.
graydon
approved these changes
Sep 29, 2026
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.

Changes
169890d5(merged), 30.0.0) asWIP_SOROBAN_PROTOCOL: vnext-only, nonext;CAP_0084_MUXED_CONTRACTonly under vnext; SACtransferto muxed contract tests; LCM in test-lcm-next/InvokeHostFunctionTests.cb32250d, 29.0.0) inALL_SOROBAN_PROTOCOLS; CURRENT_LEDGER_PROTOCOL_VERSION 29 (vnext 30); protocol-curr/xdree040cd6; current-tier goldens and protocol-30 ledger-close-meta refs recorded.3a023060(rs-stellar-xdra9c9750e, same XDR hashes as the p29 host), so non-vnext startup passes the XDR identity check.Deferred
Upstream: stellar/stellar-xdr#307, stellar/rs-stellar-xdr#592, stellar/rs-soroban-env#1700, stellar/stellar-quorum-analyzer#27. Supersedes #5337.