用于以太坊智能合约部署、测试和交互的Python框架。
项目描述
Brownie
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 许可协议 许可。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发版
eth_brownie-1.20.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9705e2575b7cc988130956228a98c237e1ba2c682d4bc722b7097f0129b721d2 |
|
MD5 | 19e8d2300d87745d13a7fb60cf6ece25 |
|
BLAKE2b-256 | 8689ff06f9185c2bbd3401b7eff2d1dfaf0c07c49f13e7db9474ab1763c96146 |
eth_brownie-1.20.6-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dffffcb29cef4a9c5a2e8a0c6ea57ef6a10a0952687cf49e61860bbe83140f33 |
|
MD5 | bba1d9c0f230a6a6fee8c7849d323c33 |
|
BLAKE2b-256 | c63e002873a388fac7ad982bca1147be0bdf1538aae131f3e7fd089fb5eb4bd9 |