Add Stellar data feeds changeset suite (cache + proxy) - #23213
Draft
Fletch153 wants to merge 21 commits into
Draft
Add Stellar data feeds changeset suite (cache + proxy)#23213Fletch153 wants to merge 21 commits into
Fletch153 wants to merge 21 commits into
Conversation
… seam, test fakes
…rt deterministic salt
…xy-cache changesets
…e and proxy function
One-page overview of the Stellar Data Feeds changeset package: layout (changesets -> operations -> chainlink-stellar bindings/deployer), the permissions model (CRE forwarder flows into FeedPermission.AllowedSender via SetFeedConfigs, no standalone "set forwarder"), how to regenerate testdata WASM + bindings together, how to run the container-backed e2e test including the arm64 STELLAR_E2E_RPC_URL override, and what's explicitly out of scope (durable-pipeline registration, MCMS, forwarder deployment).
- e2e_test.go: assert require.NotNil on get_round/find_round results so the test actually fails if the round comes back void instead of the stored value. - state.go/deps.go: replace the duplicated Addresses().Get(...) + error-string pattern in loadContractClientDeps with a shared resolveContractDeps that also returns the AddressRef for callers that need more than its Address. - operation/operation.go: drop the misleading omitempty from OwnershipInput's NewOwner/LiveUntilLedger json tags (zero values are valid input, not "absent"). - deps.go: extract the chain-exists + version-parse + AddressRef-exists skeleton (duplicated verbatim across every changeset's VerifyPreconditions) into verifyContractRef; update all nine changeset files to call it instead of repeating the checks inline.
…nd_range non-empty
- e2e_test.go fundViaFriendbot: use NewRequestWithContext (noctx) - README/testdata README: correct wasm output path to wasm32v1-none - document cross-contract version coupling (DeployProxy/SetProxyCache resolve cache refs at the proxy's own Version, not a separate field) - verifyContractRef: drop unused *semver.Version return - unify verifyContractRef/resolveContractDeps param order to (qualifier, version) across all call sites - testutil_test.go: drop unused fakeInvoker.simResults - configure_cache.go: reject empty Permissions in VerifyPreconditions - README: correct e2e test coverage description (35 calls, 2 InvalidAction error paths) - e2e_test.go: require.Contains -> require.ErrorContains - fix stale cache.Bound struct-literal usage left by a bindings regeneration elsewhere in the workspace (kept e2e compiling)
- report_encoding_test.go: pin buildReportMetadata's 64-byte on_report header layout and buildReport's ScMap alphabetical key order - changeset_test.go: DeployCache invalid-owner precondition-rejection case, plus TestDeployCacheChangeset_ExplicitOwner pinning that an explicit req.Owner (not the chain signer) seeds the deploy salt
Contributor
|
✅ No conflicts with other open PRs targeting |
- Bump chainlink-stellar + /bindings pseudo-versions to a5c7938 (I256 completeness, #[topic] event decoding, deployer resource-fee cushion, hardened generation scripts) - Define SorobanContractDeployer + StellarDeps locally in the operation package; upstream no longer exports a widened deployer interface - Replace removed alias types (DataId, WasmHash, WorkflowOwner, WorkflowName) with their literal array types - Bound is now an integer enum: pass cache.BoundAtOrBefore directly - Rebuild testdata wasms from the current contracts (old ones predate Bound's explicit discriminants and trap on find_round)
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
ChangeSetV2suite for the Stellar Data Feeds cache and proxy underdeployment/data-feeds/changeset/stellar/, mirroring the Solana suite's structure (changesets +operation/+ Operations API).DataFeedsCache/DataFeedsProxyclients from chainlink-stellar — deploy (constructor args via create-contract-v2), feed configs, feed admins, proxy cache pointer, ownership, upgrade, token recovery.Context
Refs: DF-25475. Brings Stellar DF deploy/configure tooling to parity with EVM/Solana/Aptos: CLD changesets drive generated bindings, no hand-rolled encoders. Consumes chainlink-stellar pinned at the head of smartcontractkit/chainlink-stellar#162 (pseudo-version
681eb03502fb); re-pin to the merged version once that lands.Changes
deploy_cache,deploy_proxy,configure_cache,remove_feeds,feed_admin,ownership(transfer/accept/renounce for both contracts),upgrade_cache,recover_tokens,set_proxy_cache.operation/operation.go— one Operations-API operation per on-chain call;deps.go/state.go/validation.goshared skeleton;testdata/WASM fixtures.deployment/go.mod: bump chainlink-stellar + chainlink-stellar/bindings to the add filepath support for create command #162 head.Testing
changeset_test.go,state_test.go,validation_test.go) — pass.TestStellarDataFeedsE2E— full deploy→configure→ownership sequence (37 contract functions, cache + proxy) against a live protocol-26 Soroban quickstart — pass, 31s (external-container path on arm64; CTF path on amd64).latest_round,find_round,round_range) execute as free simulations via the bindings' explicit read-only lists.Notes
go.modentries here to the merged pseudo-version (one-line follow-up).chainlink-data-feeds) follows the existing EVM/Solana/Tron suites here; if DF-24577 relocates the family, this moves with it.🤖 Generated with Claude Code