Consider bundles for scheduler processor run [prototype]#723
Consider bundles for scheduler processor run [prototype]#723facuMH wants to merge 9 commits intoprototype/bundlesfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
HerbertJordan
left a comment
There was a problem hiding this comment.
The modification looks concise and at the right point, but one or two additional edge cases need to be considered. Please have a look.
About the testing: I think it is sufficient to have one dedicated test for running bundles in single-proposer mode or a few selected for which the block-formation mode is relevant. No need to run all tests in both modes.
5ad32a0 to
c46f282
Compare
be94cfb to
93ac7ca
Compare
93ac7ca to
1681cb6
Compare
| bundleTracker BundleTracker | ||
| } | ||
|
|
||
| func (p *evmProcessor) run(tx *types.Transaction) ( |
There was a problem hiding this comment.
I lack of context here, I do not know if this is documented somewhere else:
what is the boolean value, and how does it relate to bundles?
It returns true if any transaction is not skipped? But a bundle which yields no transactions is not skipped?
I am quite confused about how to define the expectations of these functions. This prevents me from providing a good review for the testing.
There was a problem hiding this comment.
documentation added in 1b83457. Hopefully this can help you better judge the intentions.
b388b3b to
1b83457
Compare
This PR considers processed bundles in the scheduler processor run, when checking whether a transaction could be processed or not. Without this check no bundle would ever be considered for a proposal in single proposer mode.
Bundle integration tests are modified to run once with single block proposal and once with distributed block proposal.
Note for reviewers:
Each commit in the current iteration has been refactored to be conceptually unitary:
Add bundle tracker to scheduler processor.
Handle bundles in scheduler processor.
Update mocks.
Adapt existing unit tests.
Add processor bundle unit tests.
Run bundle integration tests with single proposer mode.