Repository navigation
Update RPC and Horizon types for Protocol 30 server releases - #1836
Merged
Merged
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
The localized type updates preserve runtime behavior, include regression coverage, and have no unresolved findings.
No open issues 🎉
What changed in this PR
Aligns SDK response types with Protocol 30 RPC and Horizon server updates.
Changes:
- Makes
inSuccessfulContractCalloptional and deprecated, with a regression test for its absence. - Adds optional muxed-contract fields to Horizon credit effects.
- Updates the changelog and generated RPC reference documentation.
| File | Description |
|---|---|
test/unit/server/soroban/get_events.test.ts |
Tests events without the deprecated field. |
src/rpc/api.ts |
Updates the shared event response type. |
src/horizon/types/effects.ts |
Adds muxed-contract address and ID fields. |
docs/reference/network-rpc.md |
Reflects optionality, deprecation, and source-line changes. |
CHANGELOG.md |
Documents additions and TypeScript compatibility impact. |
Review effort: Balanced
quietbits
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
inSuccessfulContractCallonrpc.Api.EventResponseandrpc.Api.RawEventResponseis now optional and marked@deprecated. A new test checks that agetEventsevent without the field parses.ContractCredited(Horizoncontract_creditedeffect) gains optionalcontract_muxedandcontract_muxed_idstring fields.Why
The RPC release that ships with Protocol 30 no longer returns
inSuccessfulContractCallfromgetEvents(stellar-rpc#1050). The parser never read the field, so nothing fails at runtime, but the type said it was always aboolean. Making it optional makes the type match what new servers send. Older servers still send it, so the field stays for now and goes away in the next major. Understrict, code that uses it as abooleanmay now fail to compile; the changelog calls this out.Horizon adds the two fields when a Stellar Asset Contract
transferormintsends to a CAP-84 muxed contract (W…) address (stellar-horizon#237). This change is additive.