Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: block filters can be also recreated #85

Merged
merged 2 commits into from
Oct 30, 2024
Merged

Conversation

AuHau
Copy link
Member

@AuHau AuHau commented Oct 24, 2024

Adds also support for the recreation of blocks filters.

@AuHau AuHau requested a review from emizzle October 24, 2024 15:36
Base automatically changed from fix/subscription-cleanup-adam to main October 25, 2024 03:58
if subscriptions.filters.hasKey(originalId):
let filter = subscriptions.filters[originalId]
newId = await subscriptions.client.eth_newFilter(filter)
else:
Copy link
Contributor

@emizzle emizzle Oct 25, 2024

Choose a reason for hiding this comment

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

This seems loose... maybe we could store an object in subscriptionMapping that has an id and kind, and then here we can check the kind before deciding what to do... wdyt?

Copy link
Member Author

Choose a reason for hiding this comment

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

I was also thinking a bit about this "looseness", but I did not really find any reason why it should lead to bug.

If there is a callback (and hence, that is why this function is called), then the callback had to be created either through subscribeLogs, and hence it will have an entry in filters or through suscribeBlocks and then it will not have an entry in filters. IMHO this is good enough reasoning. If you think there will "magically disappear filters" then we have a problem and a bug somewhere anyway and will have to track that case down...

Soooo I would leave it as is.

Copy link
Contributor

Choose a reason for hiding this comment

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

If you think there will "magically disappear filters" then we have a problem and a bug somewhere anyway and will have to track that case down...

It's more about if filters functionality is changed at some point in the future, then we may introduce a bug that isn't easy to spot/debug.

It's also not the most easy to reason about... As I was reading the change, i thought "why wouldn't filters also contain a block filter?" Then I had to look at how creating a block filter doesn't add to filters.

It seems a bit fragile honestly.

Copy link
Member Author

Choose a reason for hiding this comment

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

Alright, so what about renaming filters to logFilters in order to better communicate it? Because that is what that really is. In the context of this Table, there are no "block filters", because block filters are only subscriptions for new blocks, not for "notify me when some specific blocks arrive" and hence it does not really make sense to store them in that Table...

Copy link
Contributor

Choose a reason for hiding this comment

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

Yep, that works 👍

Copy link
Contributor

Choose a reason for hiding this comment

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

there are no "block filters"

Might be worth updating the comment?

@AuHau AuHau force-pushed the fix/filters-renewal-for-blocks branch from 353f736 to 1c2610a Compare October 25, 2024 07:18
Copy link
Contributor

@emizzle emizzle left a comment

Choose a reason for hiding this comment

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

The filters > logFilters comment isn't a blocker, so approving now 👍

@AuHau AuHau force-pushed the fix/filters-renewal-for-blocks branch from 26d3e6d to c827403 Compare October 30, 2024 15:19
@AuHau AuHau force-pushed the fix/filters-renewal-for-blocks branch from c827403 to 569664e Compare October 30, 2024 16:13
@AuHau AuHau merged commit 80b2ead into main Oct 30, 2024
6 checks passed
@AuHau AuHau deleted the fix/filters-renewal-for-blocks branch October 30, 2024 16:26
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