A Python framework for Ethereum smart contract deployment, testing and interaction.
Project description
Brownie
Brownie is a Python framework for deploying, testing and interacting with Ethereum smart contracts.
Dependencies
- ganache-cli
- pip
- python3 version 3.6 or greater, python3-dev, python3-tk
As Brownie relies on py-solc-x, you do not need solc installed locally but you must install all required solc dependencies.
Installation
You can install the latest release via pip
:
$ pip install eth-brownie
Or clone the repository and use setuptools
for the most up-to-date version:
$ python3 setup.py install
Quick Usage
To set up the default folder and file structure for Brownie use:
$ brownie init
Next, type brownie --help
for basic usage information.
Documentation
Brownie documentation is hosted at Read the Docs.
Testing
To run the tests, first install the developer dependencies:
$ pip install -r requirements-dev.txt
Then use tox
to run the complete suite against the full set of build targets, or pytest
to run tests against a specific version of Python. If you are using pytest
you must include the -p no:pytest-brownie
flag to prevent it from loading the Brownie plugin.
Using Docker
You can use a sandbox container provided in the docker-compose.yml file for testing inside a Docker environment.
This container provides everything you need to test using a Python 3.6 interpreter.
Start the test environment:
docker-compose up -d
To open a session to the container:
docker-compose exec sandbox bash
To run arbitrary commands, use the bash -c
prefix.
docker-compose exec sandbox bash -c ''
For example, to run the tests in brownie/tests/test_format_input.py
:
docker-compose exec sandbox bash -c 'python -m pytest tests/convert/test_format_input.py'
Contributing
Help is always appreciated! Feel free to open an issue if you find a problem, or a pull request if you've solved an issue.
Join the Brownie Gitter channel if you have any questions.
Pre-Commit Hooks
We use pre-commit hooks, primarily to ensure consistent formatting among contributors.
If you haven't already, install all dev dependencies in requirements-dev.txt
to enable pre-commit hooks.
Install pre-commit locally from the brownie root folder:
pre-commit install
Commiting will now automatically run the local pre-commit hooks.
If, for some reason, you need to force the commit without running the pre-commit hooks, you can manually disable the pre-commit.
git commit -m "commit message" --no-verify
License
This project is licensed under the MIT license.
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
Hashes for eth_brownie-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38259b06cbfdd98041c821dbf28516bb36b650cb35fabc5d6a57c5bb64f45abf |
|
MD5 | 995afd67416c19bafe584cae4139681b |
|
BLAKE2b-256 | 6980508a6d93f83f0d14fa9cb96e2a4f1c5c938a7255df8188840bb4c914c708 |