-
Notifications
You must be signed in to change notification settings - Fork 3
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
Modifications/Testing for Speedup strategy #22
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #22 +/- ##
=======================================
Coverage ? 90.48%
=======================================
Files ? 14
Lines ? 1261
Branches ? 0
=======================================
Hits ? 1141
Misses ? 120
Partials ? 0 ☔ View full report in Codecov by Sentry. |
…TransactionFaulted for unrecoverable/don't bother retrying errors, return updated params for an updated retry, or None if the strategy has no recommendation for updated params and the params should remain unchanged in which case wait for the existing tx a little while longer. There is no need to raise a Wait exception, since other strategies may feel differently.
…rn None if the machine should do nothing and wait based on this strategy. Remove Wait exception and its uses.
Ensure that even if some txs don't include both maxPriorityFeePerGas and maxFeePerGas the strategy still works. Handle legacy transaction speed up. Parameterize speed up factor and max tip. Questions remain about the default for max tip, but since parameterized, less of an issue - but something to revisit.
…ggested tip as a way to limit the speedup strategy getting out of control. Update maxFeePerGas depending on whether previously set or not - web3 py uses a default that doubles the base fee as part of maxFeePerGas so we probably don't want to further double that again. Clean up constructor params validation and update tests.
Use tx.id in addition to nonce for speed up logs.
…resent in transaction parameters (eip1559 allows one or both).
…re expontential because they build on previous updates.
…meout is too short and warn threshold becomes too low. Loosen warn factor from 5% to 15%.
0636aef
to
1c67055
Compare
…lling _cycle() on the machine - the latter could hide bugs so don't do it.
self.speedup_factor = 1 + speedup_increase_percentage | ||
self.max_tip_factor = max_tip_factor | ||
|
||
def _calculate_eip1559_speedup_fee(self, params: TxParams) -> Tuple[int, int, int]: |
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.
Based over #21 .
Related to #15.
Fixes #19
This speed up strategy is fairly aggressive by default - we can think about ways to dial it back. That being said, it attempts to be customizable.