-
Notifications
You must be signed in to change notification settings - Fork 553
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
Event subscribing, listening, retrieving #1453
Merged
iamdefinitelyahuman
merged 40 commits into
eth-brownie:master
from
YerimB:events-methods-2
May 15, 2022
Merged
Event subscribing, listening, retrieving #1453
iamdefinitelyahuman
merged 40 commits into
eth-brownie:master
from
YerimB:events-methods-2
May 15, 2022
Conversation
This file contains 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
Remove personal file from .gitignore
Stops alerts on tests before assertion phase
Reducing lines at the same time
Not working yet, pushing to change PC
Events related classes moved from "brownie/network/alert.py" to "brownie/network/event.py"
+ Added a listen function to the ContractEvents class. + Fix : Removing event subscription after one trigger when repeat is disabled.
Completing and bug-fixing on event subscription and listening - related methods and classes. Corrected and added tests on listening and subscribing with callback to an event.
- Added comments on the EventWatcher class - Fixed the bug that made EventWatcher wait for the minimum 'delay' in the EventWatchData list each loop when no event is detected.
The main purpose of this is that if a callback takes too long, others aren't blocked
Replacing ThreadPool with a simple thead list. A thread is created whenever a callback instruction needs to be executed (avoids blocking callback problem).
4 tasks
EventWatchData class was renamed to _EventWatchData Updated 2 classes: - _EvenWatchData : it now manages all callbacks set to an event as well as removing them when they are not repeating ones. Creating threads when callback instructions are required by function call. - EventWatcher : it now has a dict with the _EventWatchData instances instead of a list and uses that to call instructions on events. Does not creates threads by itself, delegates it to _EventWatchData.
Forgot one line.
iamdefinitelyahuman
approved these changes
May 15, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, impressive work
Thanks |
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.
What I did
Related issue: #1162 #327 #1421
How I did it
general
subscribing
listening
retrieving
To get events, I am using the web3.py ContractEvent.createFilter and the get_all_entries or the get_new_entries method
How to verify it
Added some tests to the tests/network/test_event.py file.
Checklist