Skip to content

Protocol 28 Support - #5969

Open
Shaptic wants to merge 4 commits into
mainfrom
protocol-next
Open

Protocol 28 Support#5969
Shaptic wants to merge 4 commits into
mainfrom
protocol-next

Conversation

@Shaptic

@Shaptic Shaptic commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Merges protocol-next into main for the Protocol 28 GA. Part of the release train (#5967).

Contents

Merge instructions

Please use a merge commit (not squash/rebase) — the GA convention keeps protocol-next an ancestor of main so the post-release fast-forward re-sync works and v0.7.0 tags a main-reachable commit.

🤖 Generated with Claude Code

sisuresh and others added 4 commits June 16, 2026 09:55
* xdr: regenerate for Protocol 28 (CAP-0083)

Bump XDR_COMMIT to stellar-xdr@8521b97 and add CAP_0083 to XDR_FEATURES
so the EmptyTxSet StellarValueType variant is emitted. CAP-0071 is
unconditional at this commit, so CAP_0083 is the only feature gate needed.

* Apply suggestion from @sisuresh
Re-pins stellar-xdr to the merged CAP-0085 commit
8d1c926a5e5d9167d0fc7327b5dad06dc1ec4fd7 (stellar-xdr#308) and enables the
CAP_0085_EXECUTABLE_REF feature alongside CAP_0083 in the Makefile XDR_FEATURES
list. Regenerates gxdr/ and xdr/ generated Go plus xdr/Stellar-contract.x, and
re-applies the hand-written SCVal/ContractExecutable helpers for the new
SCV_EXECUTABLE_TAG and CONTRACT_EXECUTABLE_EXTERNAL_REF arms.

Supersedes closed #5962 (which pinned the unmerged dmkozh fork).
* xdr: Protocol 28 GA — pin stellar-xdr 9c9c1459, clear XDR_FEATURES

XDR_COMMIT moves to 9c9c145953e80990d6ff1ae3a6a973a0ce6d0694, the commit
stellar-core 28.0.0 (28.0.0-3486.2332980a1) pins as src/protocol-curr/xdr.
CAP-0083 and CAP-0085 are ungated upstream at this commit, so XDR_FEATURES
drops to empty; the new CAP_0084_MUXED_CONTRACT gate stays disabled (not in
P28). Regenerated diff is cosmetic only (preprocessor comma artifacts gone,
file hashes, commit stamp). CHANGELOG gains the v0.7.0 section.

Train: #5967

* CHANGELOG: backfill 0.4.0, 0.5.0, 0.6.0 from release notes

The root changelog was unmaintained after 0.3.0; entries reconstructed and
categorized from the GitHub release notes for v0.4.0 (P26), v0.5.0, and
v0.6.0 (P27).

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Conflicts: CHANGELOG.md (kept both — main's Pending entry for #5958 plus the
0.7.0 section and backfill), xdr/xdr_views_generated.go (regenerated with
main's extended generator (#5951) over the P28 XDR; build and xdr/ingest
tests pass).

Train: #5967

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 31, 2026 23:15
@Shaptic Shaptic mentioned this pull request Jul 31, 2026
12 tasks

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Protocol 28 support by importing CAP-0083/CAP-0085 XDR and updating SDK helpers and release documentation.

Changes:

  • Pins and regenerates XDR from stellar-xdr 9c9c1459.
  • Adds empty transaction-set and external executable-reference types.
  • Extends SCVal helpers/tests and updates the changelog.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Makefile Pins the Protocol 28 XDR source.
CHANGELOG.md Documents Protocol 28 and prior releases.
gxdr/xdr_generated.go Regenerates generic Protocol 28 types.
xdr/Stellar-contract.x Adds CAP-0085 contract types.
xdr/Stellar-ledger.x Adds CAP-0083 ledger types.
xdr/scval.go Supports new variants in helpers.
xdr/scval_test.go Tests CAP-0085 equality behavior.
xdr/xdr_commit_generated.txt Records the XDR source commit.
xdr/xdr_generated.go Regenerates standard XDR models.
xdr/xdr_views_generated.go Regenerates zero-copy XDR views.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread xdr/scval.go
Comment on lines +303 to +304
case ContractExecutableTypeContractExecutableExternalRef:
result = fmt.Sprintf("(ExternalRef %s)", string(s.Instance.Executable.ExternalRef.Tag))
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.

3 participants