Skip to content

SPIKE: Protocol 28 (CAP-0084)#307

Draft
sisuresh wants to merge 2 commits into
stellar:mainfrom
sisuresh:p28-cap-0084
Draft

SPIKE: Protocol 28 (CAP-0084)#307
sisuresh wants to merge 2 commits into
stellar:mainfrom
sisuresh:p28-cap-0084

Conversation

@sisuresh

@sisuresh sisuresh commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Changes

  • Add SC_ADDRESS_TYPE_MUXED_CONTRACT enum arm + MuxedContract { uint64 id; ContractID contractId; } struct + SCAddress union arm to Stellar-contract.x, all gated behind #ifdef CAP_0084_MUXED_CONTRACT, mirroring the existing MuxedEd25519Account muxed-account pattern.
  • Gated, so the new types appear only in the next branch (built --all-features) and stay out of curr until core bumps max protocol to 28. curr/next regenerate automatically on merge — not edited here.
  • Stellar-ledger.x comment revert (deliberate — reviewer please note): drops the unrelated Fix conflicting comment on rent fee #304 comment change so the p28 SPIKE XDR base stays byte-identical to the frozen p27 host (ledger.x hash 93cdd4dd), avoiding downstream host-identity drift.

Flag-token contract (downstream)

This repo is the root of the chain — no upstream. Downstreams pin this PR's head commit by full 40-char SHA: 787382ef2099cca168ca1cb282730d6b7b9e2f16 (never the truncated 787382e). The ifdef token CAP_0084_MUXED_CONTRACT is the verbatim contract for every downstream:

  • cargo feature (rs-stellar-xdr / rs-soroban-env / js-xdr-json): cap_0084_muxed_contract
  • XDR_FEATURES / xfile preprocess --features (go-stellar-sdk / js-stellar-base): CAP_0084_MUXED_CONTRACT

A mismatched/truncated token silently strips the new types downstream.

Verification

Local stellar-xdr xfile preprocess: arm absent with no features (curr); all three arms present and file parses with --features CAP_0084_MUXED_CONTRACT.

Deferred

  • Downstream PRs (rs-soroban-env/-sdk, stellar-core, go-stellar-sdk, horizon, rpc, js-stellar-base/-sdk, js-stellar-xdr-json, laboratory, docker) pin this PR's head SHA — opened by their own per-repo passes.

Downstream: stellar/rs-stellar-xdr#551 (pins this PR head 787382e)
CAP-0084: stellar/stellar-protocol#1968

sisuresh added 2 commits June 26, 2026 14:54
Add SC_ADDRESS_TYPE_MUXED_CONTRACT arm and MuxedContract struct to
SCAddress, gated behind #ifdef CAP_0084_MUXED_CONTRACT, mirroring the
existing MuxedEd25519Account muxed-account pattern. Appears only in the
`next` branch until core bumps the max supported protocol to 28.

CAP-0084 (Muxed Contract Addresses):
stellar/stellar-protocol#1968
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant