Starknet 0.14.3 readiness: starknet.go v0.17.1, devnet-rs 0.8.2, G++ 2.6.6 - #695
Merged
Conversation
- Fix golangci-lint issues in rpc_raw.go (unconvert, embedded field selectors) - Fall back from pre_confirmed to pending on legacy RPC nodes (fixes TXM integration tests against starknet-devnet-rs) - Add tests for fallback paths and error detection - Revert mock import formatting to match Linux mockery output (check-tidy)
TXM paths use pre_confirmed only. CI and local devnet updated to starknet-devnet-rs 0.8.2 (RPC 0.10.x) which supports the tag natively.
starknet-devnet-rs 0.8+ removed the HTTP /predeployed_accounts endpoint. Fetch seed=0 accounts via devnet_getPredeployedAccounts JSON-RPC instead.
starknet-devnet-rs 0.8+ returns 404 on GET /predeployed_accounts. Use devnet_getPredeployedAccounts JSON-RPC in TS test helpers and fix noctx lint in Go FetchDevnetAccounts.
Migrate L1-L2 postman helpers to JSON-RPC, update Contract constructors for starknet.js v8, and fetch smoke-test devnet accounts via devnet_getPredeployedAccounts.
Poll POST /reports after async /execute responses so deploy operations receive contractAddress, and return proper errors instead of panicking on empty results.
Return OPERATION_ERROR details from immediate /execute responses instead of empty contractAddress, and document smoke CI dependency on a gauntlet-plus-plus image with RPC 0.9+ block tag support.
Requires gauntlet-plus-plus#1691 to be merged and v2.5.21 published to ECR.
Upgrade NethermindEth/starknet.go from v0.9.0 to v0.17.1 across relayer, monitoring, and integration-tests. Native pre_confirmed block tag support lets us delete rpc_raw.go and route nonce, fee, call, and event queries through the SDK provider instead. Adapt TXM to v0.17 transaction types (BroadcastInvokeTxnV3 alias, FeeUnit renames, pointer ResourceBounds). Tolerate ErrIncompatibleVersion when connecting to RPC 0.10.x nodes while the SDK still advertises 0.9.0.
Run go mod tidy for direct gnark-crypto usage, fix goimports and unconvert lint in relayer, and vendor a patched chainlink-common/keystore so integration-tests build against starknet.go v0.17 (upstream still uses removed curve.Curve API).
Prune stale indirect module entries from the keystore fork go.sum so check-tidy passes in CI.
Update nixpkgs for go_1_26, revert integration-tests lint to nix develop, and pin keystore to latest chainlink-common #2154 commit.
Match the old ECR image behavior: download gauntlet-v* ubuntu/macos assets, install all bundle plugins on the CI host, and run gauntlet serve on node:18.
Align integration-tests with ad4255ca (fr.Modulus for OCR2 curve order).
Send install-plugins progress to stderr so eval "$(download-gauntlet-plus-plus.sh)" only receives the export line. Also run Build Test Image in parallel without gating smoke, and add integration test docs/clarity fixes.
Drop nix from the smoke test job in favor of ctf-setup-go, add a minimal ci dev shell for the soak test image, and filter dependencies.txt before install-plugins.sh so CI skips cross-chain plugin installs.
Re-align GenericContainerRequest fields in gauntletplusplus.go and stark.go so golangci-lint goimports passes in CI.
After gauntlet-plus-plus #1708, nops releases include Starknet ops plugins pre-built. Drop the full-tarball dependencies.txt filter and install-plugins workaround from f1e97f5.
Move FetchDevnetAccounts and DevnetMint out of txm; delete unused PrivateKeys0Seed, TestKeys, and SetupLocalStarknetNode. Update integration-test imports and README link.
Keep the vendored go-gauntlet client as one-shot HTTP (/execute and /reports only) and poll async reports in gauntlet_plus_plus_starknet. Relocate devnet JSON-RPC helpers under relayer/pkg/starknet/devnet/utils.
Move freeport to indirect in relayer/go.mod and refresh mockery import ordering.
Restore Linux mockery import grouping for check-tidy, and make test-integration-prep build only Go relayer and Cairo contracts so the minimal ci nix shell no longer needs yarn.
4 tasks
The minimal .#ci nix shell has no Rust/cargo, so scarb fails inside Docker. Build contracts on the CI runner before docker build and only run build-go-relayer in buildTests.
Clarify that #2154 commit ad4255ca is pinned via replace until a semver tag beats transitive v1.0.2 under MVS; tagging does not require merge.
blockHashAndNumber returns the chain tip; a follow-up getBlockWithTxs by hash can fail with RPC code 24 when the tip moves before HeadReporter runs.
Drop the temporary keystore replace pin; use chainlink-common and keystore at bdae88e1 (starknet.go v0.17 starkkey) across integration-tests, relayer, and monitoring.
Refresh mockery import grouping after chainlink-common bump so check-tidy generate step passes on ubuntu-latest.
HeadReporter used blockHashAndNumber then getBlockWithTxs by hash or number; the tip can move between those calls on any RPC version, yielding code 24 Block not found. Use one getBlockWithTxs with the "latest" tag.
karen-stepanyan
previously approved these changes
Jun 16, 2026
Use timeutil.JitterPct(0.1).Apply after chainlink-common bump surfaced SA1019 staticcheck errors in OCR2 caches and TXM confirm loop.
Add HeadReporter/Starknet RPC rationale on LatestHead for review. Use services.DefaultJitter; allow empty block_hash in telemetry when absent.
augustbleeds
approved these changes
Jun 16, 2026
|
2 tasks
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
Starknet 0.14.3 readiness for chainlink-starknet: upgrades
github.com/NethermindEth/starknet.gofrom v0.9.0 → v0.17.1 (andjunoto v0.15.11) across relayer, monitoring, and integration-tests; bumps devnet to starknet-devnet-rs 0.8.2; and updates smoke CI to use Gauntlet++ 2.6.6 nops tarballs.core ref: feature/bump-starknet-plugin-0.14
Companion Chainlink core PR: chainlink #22849 (add
build-publishlabel for temporary smoke image)Relayer (starknet.go v0.17.1)
rpc_raw.goworkaround — v0.17.1 has nativepre_confirmedblock tag supportBroadcastInvokeTxnV3alias,FeeUnit/FriUnitrenames, pointerResourceBounds,SkipValidate)ErrIncompatibleVersionwhen connecting to RPC 0.10.x nodes (warn + continue; documented inrelayer/CONFIG.md)pre_confirmedfor TXM nonce/fees;latestfor read-only calls (STOM, OCR cache);pre_confirmedevent fallback when a block is ahead of chain tipMonitoring (STOM)
monitoring/pkg/*monitoring/README.mddocuments RPC 0.9/0.10.x endpoint requirementIntegration tests
DevnetMint,FetchDevnetAccounts) inrelayer/pkg/starknet/devnet/utils; starknet.js v8 contract test updatesgauntlet-nops-v2.6.6tarballs viadownload-gauntlet-plus-plus.sh(Starknet ops included after gauntlet-plus-plus #1708)go-gauntletis one-shot HTTP (/execute,/reports); async report polling lives inops/gauntlet/gauntlet_plus_plus_starknet.goReuse: false), G++ served onnode:18-bookwormwithlinux/amd64platformctf-setup-goinstead of Nix; integration-tests lint vianix develop(Go 1.26 shell)build-chainlink-image.sh) — see docs/integration-tests/README.mdchainlink-common
bdae88e1) —chainlink-common/keystore v1.2.1-0.20260616124219-bdae88e1c732(starknet.go v0.17 starkkey)Toolchain
shell-ci.nixfor soak image buildsExternal dependencies
Test plan
cd relayer && go test ./...cd monitoring && go test ./...ErrIncompatibleVersion, pre_confirmed RPC, events continuation tokenDevnetMint/FetchDevnetAccountsunit tests (relayer/pkg/starknet/devnet/utils)ops/gauntlet/gauntlet_plus_plus_starknet_test.go)TestOCRBasicwith G++ 2.6.6 nops tarballcheck-tidy(make gomodtidy,make generate)build-publishimage)Notes
develop; Add support for Starknet 0.14.3 #694 does not need to merge separately