Skip to content

SPIKE: Protocol 28 (CAP-0084)#199

Closed
sisuresh wants to merge 1 commit into
stellar:protocol-nextfrom
sisuresh:p28-cap-0084
Closed

SPIKE: Protocol 28 (CAP-0084)#199
sisuresh wants to merge 1 commit into
stellar:protocol-nextfrom
sisuresh:p28-cap-0084

Conversation

@sisuresh

Copy link
Copy Markdown
Contributor

Changes

  • Re-pin go-stellar-sdk → CAP-0084 fork head (sisuresh/go@094cee38): adds the muxed-contract XDR arm + destination_muxed_id on the contract_credited effect resource.
  • Drop the interim ScAddressType placeholder in contractevents; ScAddress.String() now renders the muxed-contract arm directly.
  • Surface destination_muxed_id on contract_credited effects for muxed-contract transfer/mint destinations (mirrors operations_processor SAC balance-change handling).
  • Tests across ingest, effects-processor, and resourceadapter layers, incl. a mux id 0 round-trip.

Review notes

  • destination_muxed_id representation needs human review. It's a string (mirroring operations.AssetContractBalanceChange.DestinationMuxedId) specifically so a mux id of 0 round-trips details → SDK struct → API JSON; uint64+,string+omitempty would silently drop "0". No canonical muxed-contract strkey exists upstream yet, so the raw id is surfaced.

Deferred

  • LCM fixture (TestCoreLCMIngestion muxed-contract dir): local core binary is v27.0.0-28-g930fa0226 — the parent of CAP-0084 fc0a370d — with empty soroban-env-host; needs a CAP-0084 stellar-core build + C++-test LCM dump. Unit/resource tests are the real correctness gate.
  • Required follow-up (gated on artifact): re-pin PROTOCOL_28_CORE_DOCKER_IMG / PROTOCOL_28_CORE_DEBIAN_PKG_VERSION to a fc0a370d build — not yet published (newest vnext is 6e768de7a/3369). The P28 leg otherwise runs a host that can't exercise CAP-0084.

Upstream

…int destinations

Re-pin go-stellar-sdk to the CAP-0084 fork head (sisuresh/go@094cee38),
which adds the muxed-contract XDR arm and a destination_muxed_id field on the
contract_credited effect resource. Drop the interim ScAddressType placeholder
in contractevents and surface destination_muxed_id on contract_credited
effects for muxed-contract destinations (mirroring SAC balance-change handling).

destination_muxed_id is a decimal string (mirroring
operations.AssetContractBalanceChange.DestinationMuxedId) so a mux id of 0
round-trips through details -> SDK struct -> API JSON.

Upstream: stellar/go-stellar-sdk via sisuresh/go#1.
Deferred only if local core build blocks: TestCoreLCMIngestion
muxed-contract fixture (capture via local stellar-core#17 --capture-lcm).
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