Skip to content

SPIKE: Protocol 28 (CAP-0084)#5960

Closed
sisuresh wants to merge 3 commits into
stellar:protocol-nextfrom
sisuresh:p28-cap-0084
Closed

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

Conversation

@sisuresh

Copy link
Copy Markdown
Contributor

Changes

  • Bump XDR_COMMIT to stellar-xdr@7b56181 (Protocol 28 / CAP-0084); XDR_FEATURES = CAP_0083,CAP_0084_MUXED_CONTRACT.
  • make xdr regen: adds SC_ADDRESS_TYPE_MUXED_CONTRACT arm + MuxedContract struct to the ScAddress union (only .x delta vs CAP-0083 base).
  • xdr/scval.go: handle the new muxed-contract arm in the exhaustive ScAddress.String() / ScAddress.Equals() switches (previously errored/panicked on the new arm).
  • Tests: explicit MuxedContract case in xdr/scval_test.go; processors/token_transfer test asserting muxed-contract event parsing doesn't panic.

Deferred

  • Muxed-contract event semantics: SDK parsing (extractAddress / parseBalanceChangeEvent) returns the underlying base contract address (no panic, no dropped events). There is no strkey encoding for muxed contracts in this package yet; surfacing the muxed id into MuxedInfo is left to horizon's processor (mirrors how the muxed-account work was scoped).
  • No protocol-version constant lives here (that's horizon's MaxSupportedProtocolVersion), so no version bump.

Upstream: stellar/stellar-xdr#306 · stellar/rs-stellar-xdr#549 · stellar/rs-soroban-env#1696 · stellar/rs-soroban-sdk#1922 · stellar/stellar-core (sisuresh#18)

…ndling

Bump stellar-xdr to 7b56181 (Protocol 28 / CAP-0084) with
XDR_FEATURES=CAP_0083,CAP_0084_MUXED_CONTRACT. Regen adds the
SC_ADDRESS_TYPE_MUXED_CONTRACT arm to the ScAddress union.

Update the exhaustive hand-written ScAddress switches in xdr/scval.go
(String/Equals) to handle the muxed-contract arm so they no longer
error/panic. SDK event parsing (extractAddress, parseBalanceChangeEvent)
returns the underlying base contract address for muxed-contract
destinations; surfacing the muxed id is deferred to horizon.
sisuresh added 2 commits July 1, 2026 15:20
Commit 51284c1 bumped the .x sources to 787382e but did not fully
regenerate gxdr/. Rerunning go generate picks up the corrected
SorobanTransactionMetaExtV1.RentFeeCharged doc comment
(totalNonRefundableResourceFeeCharged -> totalRefundableResourceFeeCharged),
fixing the `check` (gogenerate diff) CI job. Comment-only; no behavior change.
@sisuresh

sisuresh commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

Closing — this stack will be regenerated from scratch by the automated protocol-release flow.

@sisuresh sisuresh closed this Jul 2, 2026
@sisuresh sisuresh deleted the p28-cap-0084 branch July 2, 2026 23:52
@sisuresh sisuresh restored the p28-cap-0084 branch July 3, 2026 00:40
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