Prototype Ethereum Smart Contracts in Python
Project description
Prototype Ethereum Smart Contracts in Python
Description
Library with base classes to prototype Ethereum Smart Contracts in Python. This includes:
wadray: classes for fixed number of decimals math implemented with integers.
contracts: classes to simulate contracts in Python with features like rollback on exception, external methods, views. Also classes for common contracts like ERC20 (tokens), ERC721 (NFTs) and AccessControl.
brwrappers: classes to wrap ethereum contracts called thru [brownie](https://github.com/eth-brownie/brownie/) but with a pythonic interface
w3wrappers: classes to wrap ethereum contracts called thru [web3py](https://web3py.readthedocs.io/) but with a pythonic interface
Tox Tests
The tox tests run in three variants:
default: only uses and tests the prototype libraries, no blockchain.
default-w3: users and tests two variants: prototype and w3wrappers (wrappers using web3py).
default-br: users and tests two variants: prototype and brwrappers (wrappers using brownie).
It’s not possible for now running all the tests together because of incompatibilities between brownie and web3[tester].
To run the tox default-br tests, you need an environment with Brownie, SOLC and other requirements.
You can do it using a Docker image an a few commands
docker run -it -v $PWD:/code -w /code gnarvaja/eth-dev:1.0.0 bash
gnarvaja/eth-dev:eth-proto-brownie
pip install tox
brownie pm install OpenZeppelin/openzeppelin-contracts@4.3.2
brownie pm install OpenZeppelin/openzeppelin-contracts-upgradeable@4.3.2
tox -e py39-br
docker run -it -v $PWD:/code -w /code gnarvaja/eth-dev:eth-proto-brownie bash
tox -e py39-br
Note
This project has been set up using PyScaffold 4.0.2. For details and usage information on PyScaffold see https://pyscaffold.org/.
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_prototype-0.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66086e286b420ff8dbe8c5d734cc70f96565b22fe18d085dbc5851abd2051834 |
|
MD5 | a2523b5b410ef66d620d100bd767c874 |
|
BLAKE2b-256 | fdc1344978a4a76b5ac53d175f59a289f68f9cbcbc852c4ff3ccc19af797368f |