Skip to main content

web3-flashbots.py

Project description

This library works by injecting flashbots 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.

Quickstart

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.

Goerli

To use goerli, add the goerli relay RPC to the flashbot function arguments.

flashbot(w3, ETH_ACCOUNT_SIGNATURE, "https://relay-goerli.flashbots.net")

Development and testing

Install poetry

Poetry will automatically fix your venv and all packages needed.

poetry install

Tips: PyCharm has a poetry plugin

Simple Goerli Example

See examples/simple.py for environment variable definitions.

poetry shell
ETH_SENDER_KEY=<sender_private_key> \nPROVIDER_URL=https://eth-goerli.alchemyapi.io/v2/<alchemy_key> \nETH_SIGNER_KEY=<signer_private_key> \npython examples/simple.py

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.1.post1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

flashbots-1.0.1.post1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file flashbots-1.0.1.post1.tar.gz.

File metadata

  • Download URL: flashbots-1.0.1.post1.tar.gz
  • Upload date:
  • Size: 9.6 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.1.post1.tar.gz
Algorithm Hash digest
SHA256 b256c144642dc9e4b9446646b8c570206afd2d03ede628ab200b078b38b81540
MD5 cc4a7d9402765c83f91e077ccc74ff38
BLAKE2b-256 bd12753d915cc7cea82a62b2a70ef471e655e319cab18671224ec6c7387144a4

See more details on using hashes here.

Provenance

File details

Details for the file flashbots-1.0.1.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for flashbots-1.0.1.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 593841d55984e9dc7f838833042afd7c76e0712ea6d70b84a88cad0b831c9f81
MD5 6380a83ca3c4c57c8d56c02a733d46a7
BLAKE2b-256 c09da15402f807174e4c011dfbb2207810fc1a8b856797027a39bf6492f43662

See more details on using hashes here.

Provenance

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