alchemyplatform / rundler

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

feat(builder): cancel transaction when replacement underpriced #720

Closed dancoombs closed 1 week ago

dancoombs commented 2 weeks ago

Closes #550

Proposed Changes

codecov[bot] commented 2 weeks ago

Codecov Report

Attention: Patch coverage is 1.39721% with 494 lines in your changes missing coverage. Please review.

Project coverage is 54.37%. Comparing base (7ae5087) to head (43fa7ad).

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/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/720?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/720?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | Coverage Δ | | |---|---|---| | [crates/builder/src/bundle\_proposer.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?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==) | `89.11% <100.00%> (+0.03%)` | :arrow_up: | | [crates/builder/src/server/local.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fserver%2Flocal.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlcnZlci9sb2NhbC5ycw==) | `0.00% <ø> (ø)` | | | [crates/builder/src/sender/mod.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fsender%2Fmod.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlbmRlci9tb2QucnM=) | `1.06% <0.00%> (-0.21%)` | :arrow_down: | | [crates/builder/src/sender/bloxroute.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fsender%2Fbloxroute.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlbmRlci9ibG94cm91dGUucnM=) | `0.00% <0.00%> (ø)` | | | [crates/builder/src/sender/conditional.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fsender%2Fconditional.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlbmRlci9jb25kaXRpb25hbC5ycw==) | `0.00% <0.00%> (ø)` | | | [crates/builder/src/sender/raw.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fsender%2Fraw.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlbmRlci9yYXcucnM=) | `0.00% <0.00%> (ø)` | | | [crates/builder/src/transaction\_tracker.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?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.56% <0.00%> (-9.39%)` | :arrow_down: | | [crates/builder/src/sender/flashbots.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?src=pr&el=tree&filepath=crates%2Fbuilder%2Fsrc%2Fsender%2Fflashbots.rs&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform#diff-Y3JhdGVzL2J1aWxkZXIvc3JjL3NlbmRlci9mbGFzaGJvdHMucnM=) | `0.00% <0.00%> (ø)` | | | [crates/builder/src/bundle\_sender.rs](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720?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=) | `0.00% <0.00%> (ø)` | | | [Flag](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/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/720/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `54.37% <1.39%> (-0.68%)` | :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/720/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/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `0.00% <ø> (ø)` | | | [builder](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `45.75% <1.39%> (-3.28%)` | :arrow_down: | | [dev](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/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/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `64.37% <ø> (ø)` | | | [provider](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `16.68% <ø> (ø)` | | | [rpc](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `25.67% <ø> (ø)` | | | [sim](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `77.86% <ø> (ø)` | | | [tasks](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/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/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `65.45% <ø> (ø)` | | | [utils](https://app.codecov.io/gh/alchemyplatform/rundler/pull/720/components?src=pr&el=component&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=alchemyplatform) | `18.28% <ø> (ø)` | |