跳转到主要内容

未提供项目描述

项目描述

pyrevm

Blazing-fast Python bindings to revm

py rust

快速入门

make install
make test

示例用法

这里我们展示了如何从Ethereum主网分叉并模拟来自 vitalik.eth 的交易。

from pyrevm import EVM, Env, BlockEnv

address = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"  # vitalik.eth
address2 = "0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

fork_url = "https://mainnet.infura.io/v3/c60b0bb42f8a4c6481ecd229eddaca27"

# set up an evm
evm = EVM(
    # can fork from a remote node
    fork_url=fork_url,
    # can set tracing to true/false
    tracing=True,
    # can configure the environment
    env=Env(
        block=BlockEnv(timestamp=100)
    )
)

vb_before = evm.basic(address)
assert vb_before != 0

# Execute the tx
evm.message_call(
    caller=address,
    to=address2,
    value=10000
    # data
)

assert vb_before != evm.basic(address)
assert evm.basic(address2).balance == 10000

跟踪

同时支持跟踪

from pyrevm import EVM

EVM(tracing=True)

交易

支持检查点

from pyrevm import EVM

evm = EVM()
checkpoint = evm.snapshot()
evm.message_call(
    caller=...,
    to=...,
    value=...,
)
evm.revert(checkpoint)  # or: evm.commit() to clear all checkpoints

注意:与Rust库相比,Python库不会自动提交到数据库。

更多使用示例请参阅pytests

开发

我们使用Poetry进行虚拟环境管理,并使用Maturin作为我们的Rust <> Python FFI构建系统。Rust绑定是由PyO3提供的宏自动生成的。

要构建库,请运行make build。要运行测试,请运行make test

注意:如果用于生产构建,请使用make build-prod,否则性能将降低。

要发布到PyPI,请创建一个新的GitHub发布。这将运行.github/workflows/release.yml操作,并将源+二进制轮次发布到PyPI。

基准测试

待办事项

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

pyrevm-0.3.3.tar.gz (55.6 kB 查看哈希值)

上传时间:

构建分发

pyrevm-0.3.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686

pyrevm-0.3.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686

pyrevm-0.3.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686

pyrevm-0.3.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp312-none-win_amd64.whl (3.9 MB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

pyrevm-0.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp312-cp312-macosx_11_0_arm64.whl (4.0 MB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

pyrevm-0.3.3-cp312-cp312-macosx_10_12_x86_64.whl (4.1 MB 查看哈希值)

上传时间: CPython 3.12 macOS 10.12+ x86-64

pyrevm-0.3.3-cp311-none-win_amd64.whl (3.9 MB 查看哈希值)

上传时间: CPython 3.11 Windows x86-64

pyrevm-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp311-cp311-macosx_11_0_arm64.whl (4.0 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

pyrevm-0.3.3-cp311-cp311-macosx_10_12_x86_64.whl (4.1 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.12+ x86-64

pyrevm-0.3.3-cp310-none-win_amd64.whl (3.9 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

pyrevm-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp310-cp310-macosx_11_0_arm64.whl (4.0 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

pyrevm-0.3.3-cp310-cp310-macosx_10_12_x86_64.whl (4.1 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.12+ x86-64

pyrevm-0.3.3-cp39-none-win_amd64.whl (3.9 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pyrevm-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp38-none-win_amd64.whl (3.9 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pyrevm-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686

pyrevm-0.3.3-cp37-none-win_amd64.whl (3.9 MB 查看哈希值)

上传于 CPython 3.7 Windows x86-64

pyrevm-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

pyrevm-0.3.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (6.1 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面