SPIKE: Protocol 28 (CAP-0084)#5337
Draft
sisuresh wants to merge 6 commits into
Draft
Conversation
Add protocol 28 / CAP-0084 (muxed contract addresses) to the vnext build. Soroban host: - Add the src/rust/soroban/p28 rs-soroban-env submodule (CAP-0084 host) with its .gitmodules entry, and wire it into the multi-soroban rlib build (src/Makefile.am, src/rust/Cargo.toml, Cargo.lock, soroban_proto_all.rs). - soroban_module_cache.rs: add a separate p28 protocol-specific module cache (the next protocol is a real WIP host, not an alias of p27). XDR / address handling (gated on CAP_0084_MUXED_CONTRACT): - Bump the src/protocol-curr/xdr submodule to the CAP-0084 .x. - Hash and JSON-serialize the new SC_ADDRESS_TYPE_MUXED_CONTRACT arm (LedgerHashUtils.h, XDRCereal.cpp). - Wire the CAP_0084_MUXED_CONTRACT feature flag (configure.ac, common.mk, src/Makefile.am); enabled with --enable-next-protocol-version-unsafe-for-production. Tests: - SorobanTxTestUtils: makeMuxedContractAddress helper + de-muxing of MUXED_CONTRACT to the underlying contract in transfer invocations. - InvokeHostFunctionTests: new muxed-contract transfer/mint sections in the "Stellar asset contract transfer with CAP-67 address types" test; update "Module cache across protocol versions" to account for p28's separate module cache (next protocol now adds to the module-cache entry count). - Re-record test-tx-meta-baseline-next/InvokeHostFunctionTests.json and add the p28 cargo dep-tree expectation. SPIKE: depends on unmerged upstream rs-soroban-env / rs-stellar-xdr / stellar-xdr.
…/Z; use env next feature
…ap_0084_muxed_contract)
This was referenced Jul 3, 2026
Contributor
Author
This was referenced Jul 3, 2026
…b035c0 389ee9e accidentally re-pinned src/rust/soroban/p27 to the CAP-0084 host (b5fdf26e) instead of p28. Restore p27 to the released baseline b03d2563f (matches master) — p27 must never carry protocol-28 work. Advance the p28 WIP host submodule + Cargo.toml/Cargo.lock to 26b035c0, which gates CAP-0084 on the per-cap leaf feature cap_0084_muxed_contract (aggregated by the umbrella `next` feature). Regenerate p28-expect.txt (stellar-xdr cf7fdedf) and update the Makefile.am comment to match the new gating.
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.
Protocol 28 / CAP-0084 (Muxed Contract Addresses) — muxed contract address support in core (SAC transfer to muxed contract; de-mux to underlying contract).
Changes
src/rust/soroban/p27to rs-soroban-env Instrument garbage collection process #1700 headb5fdf26e; xdr submodule at stellar-xdr#307787382ef.Deferred
test-tx-meta-baseline-nextre-record → CI/follow-up (not run this pass).XDRFieldResolverrenders muxed-contract as "UNKNOWN" in --query (like other non-account/contract arms).Upstream