Skip to content

SPIKE: Protocol 28 (CAP-0084)#203

Draft
sisuresh wants to merge 4 commits into
stellar:protocol-nextfrom
sisuresh:p28-cap-0084
Draft

SPIKE: Protocol 28 (CAP-0084)#203
sisuresh wants to merge 4 commits into
stellar:protocol-nextfrom
sisuresh:p28-cap-0084

Conversation

@sisuresh

@sisuresh sisuresh commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Changes

  • Bump MaxSupportedProtocolVersion to 28; pin go-stellar-sdk to the CAP-0084 branch (go-stellar-sdk#5961 HEAD eeca7aa4).
  • Full semantic muxed-contract event handling in internal/ingest/contractevents/events.go: SAC transfer/mint to a muxed-contract destination surfaces the base contract in the to topic and the mux id via to_muxed_id.
  • Unit tests in contractevents/events_test.go ("V4 transfer/mint to muxed contract (CAP-0084)").
  • Re-captured InvokeHostFunctionTests native/custom-asset test-lcms fixtures from a CAP-0084 vnext core build so TestCoreLCMIngestion ingests real muxed-contract ledgers end-to-end.
  • CI matrix → protocol [27, 28]; CHANGELOG entry under Unreleased.

⚠️ Human review wanted on the to_muxed_id semantics: TestCoreLCMIngestion only asserts ingestion is non-error, so the exact mux-id value is guarded only by the unit tests, not the fixture.

Deferred

  • PROTOCOL_28 core image stays on the CAP-0083-era vnext build (3589a696b): no -vnext image/deb for CAP-0084 core (stellar-core#5337, HEAD 4cdd2fc9e) is published yet. Fixture above was captured from a local #5337 build (at 389ee9ee5, one commit behind HEAD; delta is a host-submodule env re-pin).
  • PROTOCOL_28 stellar-rpc image left "" until stellar-rpc#837 publishes one.
  • Productionize (drop the go-stellar-sdk replace, un-draft, drop SPIKE) once go-stellar-sdk#5961 merges to protocol-next.

Upstream: stellar/go-stellar-sdk#5961 · stellar/stellar-core#5337 · stellar/stellar-rpc#837

sisuresh added 3 commits June 26, 2026 22:57
Re-pin go-stellar-sdk to the CAP-0084 regen (sisuresh/go@318bde14) which
adds the SC_ADDRESS_TYPE_MUXED_CONTRACT arm. The SAC host de-muxes the
destination and emits to_muxed_id as a uint64 (mirroring CAP-67 muxed
accounts) for both transfer and mint, so horizon's existing V4
contractevents path already handles it; this documents that and adds
regression tests.
@sisuresh

sisuresh commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

- CHANGELOG: note Protocol 28 (CAP-0084) muxed-contract ingestion under Unreleased.
- test-lcms: re-capture InvokeHostFunctionTests native/custom-asset LCM from a
  CAP-0084 vnext core build so TestCoreLCMIngestion exercises real muxed-contract
  SAC transfer/mint ledgers (surfacing to_muxed_id) end-to-end, not just P27 data.
- horizon.yml: relabel the P28 leg CAP-0083 -> CAP-0084 and refresh the RPC
  tracking ref to stellar-rpc#837.

Note: fixture captured from core #5337 built at 389ee9ee5 (one commit behind HEAD
4cdd2fc9e; delta is a host-submodule env re-pin). Muxed-id semantics still want
human review - TestCoreLCMIngestion only asserts non-error.
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