Skip to content

PLEX-2773: Support both include reverted states#1563

Open
silaslenihan wants to merge 7 commits into
feature/solcap-read_triggerfrom
PLEX-2773/support-both-include-reverted-states
Open

PLEX-2773: Support both include reverted states#1563
silaslenihan wants to merge 7 commits into
feature/solcap-read_triggerfrom
PLEX-2773/support-both-include-reverted-states

Conversation

@silaslenihan

@silaslenihan silaslenihan commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

@silaslenihan silaslenihan force-pushed the PLEX-2773/support-both-include-reverted-states branch from 6b59576 to c922e7a Compare June 2, 2026 18:40
@silaslenihan silaslenihan changed the base branch from develop to feature/solcap-read_trigger June 2, 2026 18:40
@silaslenihan silaslenihan force-pushed the PLEX-2773/support-both-include-reverted-states branch 3 times, most recently from f5f6fa0 to 2d99eac Compare June 2, 2026 20:25
@silaslenihan silaslenihan force-pushed the PLEX-2773/support-both-include-reverted-states branch from 2d99eac to d6689e0 Compare June 2, 2026 20:30
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

📊 API Diff Results

No changes detected for module github.com/smartcontractkit/chainlink-solana/contracts

View full report

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

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

⚠️ Breaking Changes (1)

pkg/solana.(*solanaService) (1)
  • QueryTrackedLogs — Type changed:
func(
  context.Context, 
  []github.com/smartcontractkit/chainlink-common/pkg/types/query.Expression, 
  github.com/smartcontractkit/chainlink-common/pkg/types/query.LimitAndSort, 
  + string
)
([]*github.com/smartcontractkit/chainlink-common/pkg/types/chains/solana.Log, error)

📄 View full apidiff report

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

📊 API Diff Results

No changes detected for module github.com/smartcontractkit/chainlink-solana/integration-tests

View full report

@silaslenihan silaslenihan force-pushed the PLEX-2773/support-both-include-reverted-states branch 2 times, most recently from f9f12f7 to 8154840 Compare June 3, 2026 18:28
@silaslenihan silaslenihan force-pushed the PLEX-2773/support-both-include-reverted-states branch from 8154840 to cb18231 Compare June 3, 2026 18:39
@cl-sonarqube-production

Copy link
Copy Markdown

@silaslenihan silaslenihan marked this pull request as ready for review June 3, 2026 19:15
@silaslenihan silaslenihan requested review from a team as code owners June 3, 2026 19:15
}

// ensure that the value of IncludeReverted isn't different from any other filters with the same address and event type
if contractFilters, okAddr := fl.filtersByAddress[filter.Address]; okAddr {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until CCIP starts passing the filter name we should keep this logic, but hide it behind feature flag that is enabled by default and disabled for CRE

// FilteredLogs runs a DSL query against stored logs. When queryName is set, results are
// scoped to that registered filter (filter_id in SQL, no dedup). An empty queryName is the
// legacy path: query all filters for the chain and dedupe by (block_number, log_index).
func (o *DSORM) FilteredLogs(ctx context.Context, filter []query.Expression, limitAndSort query.LimitAndSort, queryName string) ([]types.Log, error) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking change that occurs at runtime, leading to hard-to-track bugs.
You are re-proposing a previously existing function argument. Previously it was queryName, and now it's filterName.
If someone imported DSORM and passed a non-empty queryName, now it'll be treated as filterName

logsFields = [...]string{"chain_id", "log_index", "block_hash", "block_number", "block_timestamp", "address",
"event_sig", "tx_hash", "data", "error"}

scopedLogsFields = [...]string{"filter_id", "chain_id", "log_index", "block_hash", "block_number", "block_timestamp", "address",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we use filter_id from the Logs structure after select? I'm worried that the field's presence depends on the filter value.

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.

2 participants