Skip to content

Add finalized state check as optional interfaces to avoid breaking shared code#100

Draft
Krish-vemula wants to merge 3 commits intomainfrom
cre/PLEX-2476-v2
Draft

Add finalized state check as optional interfaces to avoid breaking shared code#100
Krish-vemula wants to merge 3 commits intomainfrom
cre/PLEX-2476-v2

Conversation

@Krish-vemula
Copy link
Copy Markdown
Contributor

Re-introduces the finalized state availability check from PR #83, but decouples it from the shared NodeConfig and RPCClient interfaces by using optional interfaces (FinalizedStateCheckConfig, FinalizedStateChecker) with type assertions. This allows EVM to opt-in without forcing Solana to implement and audit no-op stubs.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 13, 2026

⚠️ API Diff Results - github.com/smartcontractkit/chainlink-framework/multinode

⚠️ Breaking Changes (2)

nodeMetrics (2)
  • IncrementFinalizedStateFailed — ➕ Added

  • IncrementNodeTransitionsToFinalizedStateNotAvailable — ➕ Added

✅ Compatible Changes (5)

./ (3)
  • ErrFinalizedStateUnavailable — ➕ Added

  • FinalizedStateCheckConfig — ➕ Added

  • FinalizedStateChecker — ➕ Added

(*RPCClientBase[HEAD]) (2)
  • CheckFinalizedStateAvailability — ➕ Added

  • CheckFinalizedStateAvailability — ➕ Added


📄 View full apidiff report

Move this field out of the shared MultiNode struct to avoid imposing it
on chains that don't use finalized state checking (e.g. Solana). The EVM
side provides this value through its own NodePool config, and the
framework's optional FinalizedStateCheckConfig interface handles the
type assertion in node_lifecycle.go.
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