跳转到主要内容

用于以太坊智能合约部署、测试和交互的Python框架。

项目描述

Brownie

Pypi Status Docs Status

Brownie是一个基于Python的开发和测试框架,旨在针对以太坊虚拟机的智能合约。

Brownie已不再积极维护。未来的发布可能会零星出现 - 或根本不会出现。请查看Ape框架,以满足您的所有Python以太坊开发需求。

功能

  • 全面支持Solidity (>=0.4.22) 和 Vyper (>=0.1.0-beta.16)
  • 通过pytest进行合约测试,包括基于跟踪的覆盖率评估
  • 通过hypothesis进行基于属性和有状态的测试
  • 强大的调试工具,包括Python风格的跟踪和自定义错误字符串
  • 内置控制台,用于快速项目交互

依赖关系

使用7.9.2版本的ganache进行测试,但通常建议使用hardhat,因为ganache已被弃用。

安装

通过pipx

推荐通过 pipx 安装 Brownie。pipx 将 Brownie 安装到虚拟环境中,并使其可通过命令行直接使用。安装后,使用 Brownie 之前无需激活虚拟环境。

安装 pipx

python3 -m pip install --user pipx
python3 -m pipx ensurepath

使用 pipx 安装 Brownie

pipx install eth-brownie

升级到最新版本

pipx upgrade eth-brownie

使用最新主分支或其他分支作为版本

pipx install git+https://github.com/eth-brownie/brownie.git@master

通过 pip

您可以通过 pip 安装最新发布版本

pip install eth-brownie

通过 setuptools

您可以通过克隆仓库并使用 setuptools 来获取最新版本

git clone https://github.com/eth-brownie/brownie.git
cd brownie
python3 setup.py install

作为库

如果您想在您的项目中安装 brownie(而不是作为独立的 CLI 工具)

export BROWNIE_LIB=1
pip install eth-brownie

这将解锁所有依赖项的版本。您需要确保您有自己的 requirements.txt 文件,以确保上游的升级不会让任何人感到意外。

用于开发

开发时有一些额外的工具很有帮助

git clone https://github.com/eth-brownie/brownie.git
cd brownie
python3 -m venv venv
./venv/bin/pip install wheel
./venv/bin/pip install -e . -r requirements-dev.txt

升级依赖项的固定版本很容易

./venv/bin/pip-compile --upgrade
./venv/bin/pip-compile --upgrade requirements-dev.in
./venv/bin/pip-compile --upgrade requirements-windows.in

即使是小版本的补丁升级在过去也破坏了一些东西,因此在升级后务必要运行所有测试!

快速使用

要初始化新的 Brownie 项目,首先创建一个新的文件夹。在文件夹内,输入

brownie init

接下来,输入 brownie --help 查看基本使用信息。

文档和支持

Brownie 文档托管在 Read the Docs

如果您对如何使用 Brownie 有任何疑问,请在 Ethereum StackExchange 上提问,或者加入我们的 Gitter

测试

要运行测试,首先安装开发依赖项

pip install -e . -r requirements-dev.txt

然后使用 tox 运行完整的测试套件,或使用 pytest 对特定的 Python 版本运行测试。如果您使用 pytest,必须包括 -p no:pytest-brownie 标志以防止它加载 Brownie 插件。

使用 Docker

您可以使用在 docker-compose.yml 文件中提供的沙盒容器在 Docker 环境中进行测试。

此容器提供了使用 Python 3.6 解释器进行测试所需的所有内容。

启动测试环境

docker-compose up -d

要打开到容器的会话

docker-compose exec sandbox bash

要运行任意命令,使用 bash -c 前缀。

docker-compose exec sandbox bash -c ''

例如,要运行 brownie/tests/test_format_input.py 中的测试

docker-compose exec sandbox bash -c 'python -m pytest tests/convert/test_format_input.py'

连接到 Docker 化的 RPC 客户端

您还可以连接到已经在 Docker 容器中运行的 RPC 客户端。

例如,对于运行 ganache-cli,您只需启动官方 ganache-cli Docker 镜像

docker run -p 8545:8545 trufflesuite/ganache-cli

然后在您的宿主机的另一个终端中连接到它

brownie console

如果您将 RPC 客户端绑定到特定的主机名,例如 ganache,则可以为此创建一个独立的 brownie 网络

brownie networks add Development dev cmd=ganache-cli host=http://ganache:8545

然后连接到它

brownie console --network dev

贡献

总是欢迎帮助!如果您发现问题,请随时提交问题,如果您解决了问题,请提交拉取请求。

在提交拉取请求之前,请查看我们的 贡献指南,如果您有任何问题,请加入 Brownie 的 Gitter 频道

许可

本项目采用 MIT 许可协议 许可。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分发

eth_brownie-1.20.6.tar.gz (208.9 kB 查看哈希值)

上传时间 源代码

构建分发版

eth_brownie-1.20.6-py3-none-any.whl (219.9 kB 查看哈希值)

上传时间 Python 3

由以下支持