Add Stellar data feeds changeset suite (cache + proxy) - #23213
Closed
Fletch153 wants to merge 19 commits into
Closed
Add Stellar data feeds changeset suite (cache + proxy)#23213Fletch153 wants to merge 19 commits into
Fletch153 wants to merge 19 commits into
Conversation
Contributor
|
✅ No conflicts with other open PRs targeting |
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
force-pushed
the
df-25475-stellar-changesets
branch
from
August 4, 2026 13:39
2bb4896 to
04ba83f
Compare
- 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
Collaborator
Author
|
Superseded — moved to |
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.
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.