Sitelet https://web.archive.org/web/20191215190818/https://github.com/iamdefinitelyahuman/brownie
Skip to content
A Python framework for Ethereum smart contract testing, debugging, interaction and deployment.
Python Dockerfile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github update tests and docs Sep 11, 2019
brownie dev revert string bugfixes Dec 3, 2019
docs changelog, bump version Nov 28, 2019
tests add test cases Dec 3, 2019
.gitignore add ethpm-config.yaml Nov 15, 2019
.pre-commit-config.yaml add genesis_hash property Sep 24, 2019
.travis.yml add python 3.8 to CI, explicitly support in setup.py Nov 4, 2019
CHANGELOG.md update changelog Dec 3, 2019
CONTRIBUTING.md changelog, docs, bump version May 12, 2019
Dockerfile add Dockerfile for tests, update README Sep 16, 2019
LICENSE Initial commit Nov 2, 2018
MANIFEST.in add ethpm-config.yaml Nov 15, 2019
README.md add Dockerfile for tests, update README Sep 16, 2019
docker-compose.yml add Dockerfile for tests, update README Sep 16, 2019
pyproject.toml black max-line-length to 100 Sep 17, 2019
requirements-dev.txt cli test cases Nov 22, 2019
requirements.txt
setup.cfg omit _cli/gui.py from coverage report Dec 12, 2019
setup.py changelog, bump version Nov 28, 2019
tox.ini fix imports Nov 27, 2019

README.md

Brownie

Pypi Status Build Status Docs Status Coverage Status

Brownie is a Python framework for deploying, testing and interacting with Ethereum smart contracts.

Dependencies

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.

You can’t perform that action at this time.