Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

web3morebundlers

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

web3morebundlers

Superset of Flashbots' plugin for Web3.py allowing bundles to be submitted to many miners.

  • 0.1.1
  • PyPI
  • Socket score

Maintainers
1

Web3 More Bundlers

This library works by injecting flashbots (bundler) as a new module in the Web3.py instance, which allows submitting "bundles" of transactions directly to miners. This is done by also creating a middleware which captures calls to eth_sendBundle and eth_callBundle, and sends them to an RPC endpoint which you have specified, which corresponds to mev-geth.

To apply correct headers we use the flashbot method which injects the correct header on POST.

This is a superset project of Flashbot's package for Web3.py, and originally adapted from TitanBuilder's PR (flashbots/web3-flashbots#76). Flashbots currently only supports Web3.py version ^5.22.0 (not >=6).

Quick Start

Installing

Currently, this is not a published packaged, and is easiest to install using Poetry (pipx). But, any package/env management solution that can install from Git/Github will work.

poetry add git+https://github.com/vile/web3-more-bundlers

Example

import os

from eth_account.account import Account
from eth_account.signers.local import LocalAccount
from web3 import HTTPProvider, Web3

from web3morebundlers import bundler

ETH_ACCOUNT_SIGNATURE: LocalAccount = Account.from_key(os.environ.get("ETH_SIGNER_KEY"))
BUNDLER_ENDPOINTS = ["https://relay.flashbots.net", "https://rpc.titanbuilder.xyz", ...]


w3 = Web3(HTTPProvider("http://localhost:8545"))
bundler(w3=w3, signature_account=ETH_ACCOUNT_SIGNATURE, endpoint_uris=BUNDLER_ENDPOINTS)

Now the w3.flashbots.sendBundle method should be available to you. Look in examples/simple.py for usage examples.

Using Testnets

Currently, the base flashbots package only supports Goerli. To use Goerli, add the Goerli relay RPC to the bundler function arguments.

bundler(w3=w3, signature_account=ETH_ACCOUNT_SIGNATURE, endpoint_uris=BUNDLER_ENDPOINTS, flashbots_uri="https://relay-goerli.flashbots.net")

Migrating

Switching from the base Flashbots package to web3morebundlers is simple. This package initializes flashbot under the hood and exposes all existing w3.flashbot functions; only the initializer function needs to be changed (with an additional param).

Let's migrate flashbot's quickstart example:

from eth_account.signers.local import LocalAccount
from web3 import Web3, HTTPProvider
- from flashbots import flashbot
+ from web3morebundlers import bundler
from eth_account.account import Account
import os

ETH_ACCOUNT_SIGNATURE: LocalAccount = Account.from_key(os.environ.get("ETH_SIGNER_KEY"))
+ BUNDLER_ENDPOINTS = ["https://relay.flashbots.net", "https://rpc.titanbuilder.xyz", ...]

w3 = Web3(HTTPProvider("http://localhost:8545"))
- flashbot(w3, ETH_ACCOUNT_SIGNATURE)
+ bundler(w3=w3, signature_account=ETH_ACCOUNT_SIGNATURE, endpoint_uris=BUNDLER_ENDPOINTS)

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc