Skip to main content

web3-flashbots.py

Project description

This library works by injecting 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 FlashbotProvider which injects the correct header on post

Example

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

ETH_ACCOUNT_SIGNATURE: LocalAccount = Account.from_key(os.environ.get("ETH_SIGNATURE_KEY"))


w3 = Web3(HTTPProvider("http://localhost:8545"))
flashbot(w3, ETH_ACCOUNT_SIGNATURE)

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

Development and testing

Setup and run (mev-)geth with Websocket support:

geth --http --http.api eth,net,web3,txpool --syncmode full

Install poetry

Poetry will automatically fix your venv and all packages needed

poetry install

Tips: PyCharm has a poetry plugin

Linting

It's advisable to run black with default rules for linting

sudo pip install black # Black should be installed with a global entrypoint
black .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flashbots-1.0.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

flashbots-1.0.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file flashbots-1.0.0.tar.gz.

File metadata

  • Download URL: flashbots-1.0.0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for flashbots-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3549561f225b79384febfd92c795ce5e05e3e3657e385733deb87754da6d3d0a
MD5 75f7e000d4cba191bef7838ef9dcc13e
BLAKE2b-256 84a378fce521922af15ffd29c011dfb5b08d2be10cf546695bf35d6dda804f56

See more details on using hashes here.

File details

Details for the file flashbots-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: flashbots-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for flashbots-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 600aecb4720a1b3a847768e3465a0227f7e2a5d85f3c02fc6862647429712a36
MD5 93ea39a7688439663c6c7367bf9b8f79
BLAKE2b-256 601bc71cd10fcdcba0f0934fb9075a721b06a18858e04cb7970e11b91666987c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page