SPIKE: Protocol 28 (CAP-0085)#982
Draft
sisuresh wants to merge 1 commit into
Draft
Conversation
Bump XDR pin to stellar-xdr#308 (76218a9) and regen for CAP-0085 externally managed contract executables. Enables only CAP_0085_EXECUTABLE_REF on the next channel (curr channel has no CAP features; this stack is independent of the CAP-0083/CAP-0084 stacks). Adds the SCV_EXECUTABLE_TAG ScVal arm and the CONTRACT_EXECUTABLE_EXTERNAL_REF / ContractExecutableExternalRef ContractExecutable arm. Graceful handling of the new executable arm in buildInvocationTree; external-ref preimage validation flagged for spec review.
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.
SPIKE regenerating the JS XDR codec for Protocol 28 / CAP-0085 (externally managed contract executables). Pinned to
stellar-xdr76218a994f8c5ba752cba368080fb2f89843ad3c(#308); resolves#ifdefgates viastellar-xdr xfile preprocessbefore xdrgen.Changes
xfile preprocessstep;XDR_FEATURES_NEXT=CAP_0085_EXECUTABLE_REF,XDR_FEATURES_CURR=(empty).nextchannel only.SCV_EXECUTABLE_TAG(ScValType) andCONTRACT_EXECUTABLE_EXTERNAL_REF+ContractExecutableExternalRef(ContractExecutable).scValToNative: decode thescvExecutableTagSCStringpayload (next-only case label guarded with optional chaining).buildInvocationTree: non-throwingexternal_refarm; wasm↔preimage sanity check now scoped to wasm/sac arms only.types/next.d.ts(dts-xdr master format drift) +.gitignore*.tgz, CHANGELOG.Verification (pinned SHA
76218a9):grep -c contractExecutableExternalRef src/generated/next_generated.js→ 2 (present)grep -c contractExecutableExternalRef src/generated/curr_generated.js→ 0 (next-only)grep -ci EMPTY_TX_SET src/generated/*_generated.js→ 0 (both channels)Needs review
invocation.jsexternal-refContractIdPreimagevalidation — the preimage shape for external-ref creation is not finalized in the CAP, so it is decoded but not validated. Flagged, not guessed.Deferred
Out-of-scope observations
SorobanCredentialsAddressV2structs on thecurrchannel (present at the pinned.x, not CAP-gated); matches the sibling protocol-28 stacks. No action taken.Upstream
stellar/stellar-xdr#308— canonical.x(already merged/pinned; not modified here).stellar/rs-soroban-env#1703— host draft.Independent of the CAP-0083 / CAP-0084 SPIKE stacks; enables only CAP-0085. Stays draft.