Skip to content

SPIKE: Protocol 28 (CAP-0084)#306

Draft
sisuresh wants to merge 1 commit into
stellar:mainfrom
sisuresh:p28-cap-0084
Draft

SPIKE: Protocol 28 (CAP-0084)#306
sisuresh wants to merge 1 commit into
stellar:mainfrom
sisuresh:p28-cap-0084

Conversation

@sisuresh

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.

Flag-token contract (downstream)

This repo is the root of the chain — no upstream. 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-stellar-xdr, 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.

CAP-0084: stellar/stellar-protocol#1968

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
@sisuresh

Copy link
Copy Markdown
Contributor Author

Downstream: stellar/rs-stellar-xdr#549 regenerates the Rust codec against this PR's head (7b56181), gated behind cap_0084_muxed_contract.

@sisuresh

Copy link
Copy Markdown
Contributor Author

Downstream (Protocol 28 / CAP-0084): go-stellar-sdk stellar/go-stellar-sdk#5960 pins this commit (7b56181).

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