Skip to content

Releases: alchemyplatform/rundler

Rundler v0.3.0

08 Jul 21:18
Compare
Choose a tag to compare

Summary

  • Main Feature: Bundle builder state machine improvements
    • Rewrite the state machine to support "cancellations." A cancellation occurs when the bundler receives a "replacement underpriced" error from a node, but it believes its submitting a fair gas price and there are current UOs that pay this gas price. Previously, the bundler would get stuck in this state and UOs that pay fair gas wouldn't get mined. It was possible to get into this price if a bundle was submitted with a high priority fee, but wasn't mined, and is blocking the bundler's nonce. The bundler now detects this state and attempts to remedy it with a transaction cancellation.
    • There are two types of cancellations: hard and soft. Some RPCs support soft cancellations which allow the sender to cancel and existing transaction without issuing a replacement (i.e. Flashbots). Hard cancellations require a replacement transaction and cost tokens.
    • Remove maximum fee increases from bundle submission - if a UO is paying enough gas to be included in a bundle it should. Maximum fee increases still applies to hard cancellation transactions.
    • Remove transaction status polling from the tracker, the state machine runs completely off of a defined trigger - either a new block or a timeout.
    • Add time to mine tracking and metrics.
  • Chain support:
    • Add support for Avalanche
    • Ban access to Arbitrum Stylus contracts without whitelist
    • Remove Goerli networks
  • Bug fixes:
    • Fix race condition in paymaster tracking.
    • Fix error message for unstaked entity mempool count.
    • Raise Polygon Amoy chain configuration min fee to 30 gwei.
    • Add a timeout of 10s to the tracer calls.
  • Small Features:
    • Allow for multiple private keys to be configured.
    • Allow staked senders to have multiple UOs per bundle.
    • Check for total gas limit exceeded after estimation.
    • Remove ops from pool if condition is not met when using conditional RPC.
    • Update to Rust v1.79.0
    • Fix transaction sender's support of transaction status across various provider types.

Breaking changes

  • Removed BUILDER_MAX_FEE_INCREASES replaced with BUILDER_MAX_CANCELLATION_FEE_INCREASES
  • Removed BUILDER_SENDER=conditional replaced with BUILDER_SENDER=raw and BUILDER_USE_CONDITIONAL_RPC=true
  • Deprecated BUILDER_PRIVATE_KEY replaced with BUILDER_PRIVATE_KEYS

All Changes

  • feat: add support for avax chains
  • feat(sim): ban access to arbitrum stylus contracts during sim
  • fix(builder): improve replacement underpriced handling
  • fix(cli): error if recursive base config, remove goerli netowrks
  • feat(tx): change transaction size limit (#749)
  • fix: various v0.3-rc fixes
  • chore: update to rust v1.79.0
  • chore(amoy): raise amoy chain config min fee to 30gwei
  • fix(pool): fix crash when block height goes backwards
  • chore: fix docs and set v0.3 version number
  • fix(rpc): fix error message for unstaked entity mempool count
  • fix(builder): fix builder state machine replacement tracking
  • feat(sim): check total gas limit after estimation
  • chore(builder): add unit tests to bundle_sender
  • feat(builder): allow for multiple private keys
  • feat(builder): reject ops if condition not met after failure
  • fix(builder): rework raw sender to support dropped/conditional/split-rpcs correctly
  • refactor(builder): large refactor of bundle sender state machine and metrics
  • feat(builder): cancel transaction when replacement underpriced
  • feat(builder): remove polling from transaction tracker, update state machine
  • feat(pool): allow staked senders to have multiple UOs in best_operations
  • feat(pool): add time to mine tracking and metrics
  • fix(pool): fix race condition in paymaster tracking
  • fix(tracer): set tracer timeout default back to 10s (#733)
  • chore(deps): bump braces from 3.0.2 to 3.0.3 in /crates/sim/tracer
  • feat(tracer): add timeout of 10s to tracer (#730)
  • feat(ci): check if output file exists (#727)

Binaries

The binaries are signed with the PGP key: 85C5 DEF0 37D3 FDE4 FC17 94B1 475B 35EA 9352 EB2

System Architecture Binary PGP Signature
x86_64 rundler-v0.3.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 rundler-v0.3.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 rundler-v0.3.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 rundler-v0.3.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 rundler-v0.3.0-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker v0.3.0

Rundler v0.2.2

11 Jun 14:58
Compare
Choose a tag to compare

Rundler v0.2.2

All Changes

  • chore: release v0.2.2
  • fix(cli): fix ep disable flags

Binaries

The binaries are signed with the PGP key: 85C5 DEF0 37D3 FDE4 FC17 94B1 475B 35EA 9352 EB2

System Architecture Binary PGP Signature
x86_64 rundler-v0.2.2-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 rundler-v0.2.2-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.2-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.2-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 rundler-v0.2.2-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker v0.2.2

Rundler v0.2.1

07 Jun 15:55
Compare
Choose a tag to compare

Rundler v0.2.1

Summary

Small bug fix release:

  • Fix missing CLI parameters
  • Fix for v0.7 gas estimation using the new executeUserOp special feature of the v0.7 entry point.

All Changes

  • chore: release 0.2.1, small doc fix
  • fix(sim): handle v0.7 executeUserOp special call in call gas estimation
  • fix(cli): add missing global to many common parameters

Binaries

The binaries are signed with the PGP key: 85C5 DEF0 37D3 FDE4 FC17 94B1 475B 35EA 9352 EB2

System Architecture Binary PGP Signature
x86_64 rundler-v0.2.1-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 rundler-v0.2.1-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.1-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.1-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 rundler-v0.2.1-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker v0.2.1

Rundler v0.2.0

24 May 17:11
Compare
Choose a tag to compare

Summary

  • Entry point v0.7 support
  • Bug fixes

All Changes

  • chore: release v0.2.0
  • feat(simulation): check whether the op fits within a valid time range (#712)
  • fix(sim): update simulation for dencun opcodes
  • fix(builder): filter fee before filtering by gas limit
  • chore(docs): fix dead ERC-4337 links
  • fix(provider): use state overrides for gas used, not ctor method
  • fix(chain): set maximum transaction size bytes to 128KB for ethereum chains
  • chore(docs): add docs for entry point version support
  • fix(types): define entrypoint specific gas overheads
  • fix(types): fix unpack factory from initcode on v0.7
  • feat(builder): support multiple flashbots builders
  • fix: add flashbots signature header
  • refactor: use flashbots relay rpc
  • feat(builder): add option to pass in additional builders to flashbots mev-share rpc
  • chore(deps): bump rustls from 0.22.2 to 0.22.4
  • feat(entrypoint): use checksummed address with correct casing
  • fix(sim): handle explicit zero fees in 0.7 pre-verification gas
  • fix(sim): handle explicit zero fees in 0.6 pre-verification gas
  • chore(sim): move bytecode to contracts crate, use hex constant
  • fix(simulation): don't use abi-generated EntryPoint bytecode
  • fix(cli): enforce num keys greater than or equal to num builders
  • fix(rpc): make the validationRevert error message more clear
  • feat(rpc): return internal errors and increment metric on panic
  • feat(rpc): add distinct types for EP version gas estimations
  • feat(sim): skip estimation if gas field is provided in op
  • chore(docs): Update commands in makefile, readme, and help messages
  • fix(rpc): include inner error message in revert message
  • fix: add abi_encoded_size back to UserOperation
  • refactor(simulation): use abi-generated EntryPoint bytecode
  • feat(simulation): v0.7 call gas estimation
  • feat(rpc): return validation revert data from rpc
  • chore(simulation): remove postop gas estimates
  • feat(simulation): v0.7 verification gas estimation
  • chore(ci): fix remote tests for v0.6 and v0.7
  • fix(sim): use same method for expected storage in v0.7 from v0.6 tracer
  • feat(sim): sto-022 factory or entity needs stake, with cleanups
  • feat: add entry point to some logs and metrics
  • fix(sim): use H256 instead of U256 for expected storage
  • feat(sim): correctly attribute OP-054 and OP-061 to the correct phase
  • feat(sim): cleanups for v0.7 sim
  • feat(sim): implement simulation for v0.7 entrypoint using reference tracer
  • refactor: create context interface for simulation
  • fix(mempool): fix configuration deserialization
  • feat: cleanups for entry point v0.7 support
  • chore: fixing PR comments
  • chore: fixing PR comments
  • fix: remove extra box from dyn objects
  • chore: fixing PR comments
  • feat: end to end entry point routing (#649)
  • feat: unsafe mode for EP v0.6 (#648)
  • feat(provider): add an entry point v0.7 provider
  • feat(builder): start support for multiple entry points in builder (#645)
  • feat(pool): Add entry point routing to pool
  • refactor: move builder and pool traits to types
  • feat(rpc): introduce entry point routing
  • feat: add and use a user operation trait
  • feat(types): add entrypoint 0.7 contract types
  • feat: add and use a user operation trait
  • feat(types): add entrypoint 0.7 contract types
  • chore: start v0.2.0-rc0

Binaries

The binaries are signed with the PGP key: 85C5 DEF0 37D3 FDE4 FC17 94B1 475B 35EA 9352 EB2

System Architecture Binary PGP Signature
x86_64 rundler-v0.2.0-x86_64-unknown-linux-gnu.tar.gz PGP Signature
aarch64 rundler-v0.2.0-aarch64-unknown-linux-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.0-x86_64-pc-windows-gnu.tar.gz PGP Signature
x86_64 rundler-v0.2.0-x86_64-apple-darwin.tar.gz PGP Signature
aarch64 rundler-v0.2.0-aarch64-apple-darwin.tar.gz PGP Signature
System Option - Resource
Docker v0.2.0