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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file flashbots-1.0.2.tar.gz
.
File metadata
- Download URL: flashbots-1.0.2.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73d9ad0a6eea2c22f607761f81f60011a118a028986e9f1f70db739e3729ee66 |
|
MD5 | 2a9377ad72efd062b592364e3e36aaea |
|
BLAKE2b-256 | f6097891f1d0aac8ba9d521b98eff436513895f184dfeb32de170cb23cbc517d |
File details
Details for the file flashbots-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: flashbots-1.0.2-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b70570ec737f9744a580c69aec1e040c25406837b65fef8ead424914017e07d9 |
|
MD5 | cf01560650efe6ac4657f526e7f4b96a |
|
BLAKE2b-256 | bb1104e2be0b0fd85fbd010b2f3273b9e4e4aecce02a51f9ca6a5bcfd8b038a8 |