Skip to content

Add Stellar data feeds changeset suite (cache + proxy) - #23213

Closed
Fletch153 wants to merge 19 commits into
developfrom
df-25475-stellar-changesets
Closed

Add Stellar data feeds changeset suite (cache + proxy)#23213
Fletch153 wants to merge 19 commits into
developfrom
df-25475-stellar-changesets

Conversation

@Fletch153

@Fletch153 Fletch153 commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds the CLD changeset suite for Stellar Data Feeds: deploy, configure, ownership, upgrade, and token recovery for the cache and proxy contracts, all driven through the generated chainlink-stellar clients. Brings Stellar to parity with the existing EVM, Solana, and Aptos suites.

Testing

Unit tests per changeset, plus a full deploy to ownership e2e verified against a local Soroban node.

Notes

Depends on a pinned chainlink-stellar branch; re-pin to the merged version before merging. MCMS proposals are out of scope for now.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No conflicts with other open PRs targeting develop

@trunk-io

trunk-io Bot commented Jul 23, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

ChangeSetV2 suite under deployment/data-feeds/changeset/stellar:
deploy, configure, feed admin, freeze, ownership, upgrade, and
recover-tokens operations driving the generated bindings, with
unit fakes and a live-network e2e (TestStellarDataFeedsE2E).
@Fletch153
Fletch153 force-pushed the df-25475-stellar-changesets branch from 2bb4896 to 04ba83f Compare August 4, 2026 13:39
- Bump chainlink-stellar pins to the reworked PR #162 head
- Rebuild testdata WASM from the same contracts (matched pair)
- Add SetFeedFrozen; generalize Upgrade and RecoverTokens to the proxy
- Extend the e2e to all 26 cache and 14 proxy functions with optional
  decimals/description and FeedFrozen assertions
- Trim comments to the Solana-suite register
- Add resolveDeps: parses the pre-validated version and drops the
  unused AddressRef return; use it at every single-contract Apply
- Delete the per-request resolve methods in feed_admin and ownership
- Add validateContract to replace three identical type-check blocks
- Add chainDeps, ownerOrSigner, and recordAddress to deps.go
- DeployCache and DeployProxy now share the chain lookup, owner
  defaulting, and AddressRef recording they previously duplicated
- Remove fakeDeployer.DeployContract: not part of the
  SorobanContractDeployer interface and never called
- Reuse the e2e's cache feed id for proxy reads instead of an
  identical pdid copy
The five cache-or-proxy operations repeated the same IsProxy branch;
contractAdmin captures the ownership/upgrade/recovery surface both
generated clients share, and adminClient picks the right one.
- resolveContractDeps now parses the version itself and reuses
  chainDeps, removing the duplicated chain lookup and ref-error text
- Delete state.go's loadContractClientDeps; the client loaders call
  resolveContractDeps directly
- Merge deploy_cache.go and deploy_proxy.go into deploy.go
- Rename configure_cache, remove_feeds, and freeze_feeds to match
  their changeset names (set_feed_configs, remove_feed_configs,
  set_feed_frozen)
- Split changeset_test.go into per-action test files, mirroring the
  Aptos suite; shared fakes, env builder, and datastore seeding move
  to testutil_test.go
- Move each CLDF operation from operation/operation.go into the
  action file that executes it, mirroring the Aptos layout; the
  operation package is deleted
- Operation vars and inputs are unexported; shared machinery
  (StellarDeps, contractAdmin, adminClient) moves to deps.go
- Drop the package README
Request, changeset type, operation input, VerifyPreconditions,
Apply, operation definition — pure moves, no behavior change.
Multi-changeset files group per changeset with its operation.
Drop restated signatures, parenthetical asides, and narration of
visible code; keep constraint comments like frozen-read errors,
data-id alignment, and the test seam.
Registers every changeset into a CLD ChangesetsRegistry and lists the
keys, the same path cld durable-pipeline list uses. Doubles as the
registration template for the chainlink-deployments wiring.
- SetFeedConfigs and RemoveFeedConfigs maintain a per-cache Feeds map
  of description, decimals, and workflow permissions, keyed by data id
- DeployProxy and SetProxyCache record the proxy's current cache target
- On-chain state stays authoritative; the mirror makes configuration
  queryable off-chain
- Assert the ContractMetadata mirror in the set/remove feed config,
  set proxy cache, and deploy proxy tests, including the read-modify-
  write merge with pre-existing metadata and id-derived decimals
- Run a two-feed batch through SetFeedConfigs Apply
- Add bad-version and missing-wasm precondition rejections to deploys
- Inline standalone rejection tests, reuse seedCacheRef, and fold the
  per-error state_test funcs into the happy-path tests
Renouncing is irreversible and permanently bricks every owner-gated
function, so it should not sit one changeset away. The e2e still
exercises renounce_ownership on both contracts via direct client
calls, keeping the every-exported-function guarantee.
- Split TransferOwnershipRequest from OwnershipRequest so accept no
  longer carries transfer-only fields (NewOwner, LiveUntilLedger)
- Share cache feed preconditions via verifyFeedPreconditions
- Add CacheVersion so a proxy can reference a cache recorded under a
  different version
- Drop the resolveDeps wrapper; resolve via resolveContractDeps and a
  shared getAddressRef
- Return errors instead of panicking on bad versions in apply paths
- Rename deps.go to chain_util.go and fold the byte converters
  (dataIDsToBytes, workflowNameToBytes, workflowOwnerToBytes) into it
- Move recordAddress next to its only callers in deploy.go
- Rename testutil_test.go to test_util.go
- Drop validation_test.go
@Fletch153

Copy link
Copy Markdown
Collaborator Author

Superseded — moved to chainlink-data-feeds as part of relocating CRE-related changesets. Ported verbatim (all 24 files sha256-identical) to deployment/changesets/stellar on branch DF-25475.

@Fletch153 Fletch153 closed this Aug 10, 2026
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