alchemyplatform / rundler

An ERC-4337 Bundler in Rust
GNU Lesser General Public License v3.0
246 stars 29 forks source link

fix(builder): fix builder state machine replacement tracking #738

Closed dancoombs closed 3 days ago

dancoombs commented 4 days ago

Implement a better tracking mechanism for state machine replacement underpriced tracking.

TODO:

codecov[bot] commented 4 days ago

Codecov Report

Attention: Patch coverage is 58.98438% with 105 lines in your changes missing coverage. Please review.

Project coverage is 57.27%. Comparing base (e6c9f15) to head (7c9c85b).

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/graphs/tree.svg?width=650&height=150&src=pr&token=FQKCPQJU2X&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform)](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | [Files](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | Coverage Δ | | |---|---|---| | [crates/pool/src/mempool/pool.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=crates%2Fpool%2Fsrc%2Fmempool%2Fpool.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL3Bvb2wvc3JjL21lbXBvb2wvcG9vbC5ycw==) | `95.79% <94.11%> (-0.07%)` | :arrow_down: | | [crates/builder/src/task.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Ftask.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3Rhc2sucnM=) | `0.00% <0.00%> (ø)` | | | [bin/rundler/src/cli/builder.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=bin%2Frundler%2Fsrc%2Fcli%2Fbuilder.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-YmluL3J1bmRsZXIvc3JjL2NsaS9idWlsZGVyLnJz) | `0.00% <0.00%> (ø)` | | | [crates/builder/src/bundle\_proposer.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fbundle_proposer.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL2J1bmRsZV9wcm9wb3Nlci5ycw==) | `90.29% <75.00%> (-0.08%)` | :arrow_down: | | [crates/builder/src/transaction\_tracker.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Ftransaction_tracker.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3RyYW5zYWN0aW9uX3RyYWNrZXIucnM=) | `79.17% <66.66%> (-2.00%)` | :arrow_down: | | [crates/builder/src/bundle\_sender.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fbundle_sender.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL2J1bmRsZV9zZW5kZXIucnM=) | `69.97% <52.86%> (-2.83%)` | :arrow_down: | | [Flag](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | Coverage Δ | | |---|---|---| | [unit-tests](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `57.27% <58.98%> (-0.10%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#carryforward-flags-in-the-pull-request-comment) to find out more. | [Components](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=components&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | Coverage Δ | | |---|---|---| | [rundler binary](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `0.00% <0.00%> (ø)` | | | [builder](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `59.16% <57.44%> (-0.38%)` | :arrow_down: | | [dev](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `0.00% <ø> (ø)` | | | [pool](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `64.95% <94.11%> (-0.07%)` | :arrow_down: | | [provider](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `16.10% <ø> (ø)` | | | [rpc](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `25.64% <ø> (ø)` | | | [sim](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `78.25% <ø> (ø)` | | | [tasks](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `∅ <ø> (∅)` | | | [types](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `66.68% <ø> (ø)` | | | [utils](https://app.codecov.io/gh/alchemyplatform/rundler/pull/738/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `18.28% <ø> (ø)` | |