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
File details
Details for the file eth-prototype-0.4.0.tar.gz
.
File metadata
- Download URL: eth-prototype-0.4.0.tar.gz
- Upload date:
- Size: 38.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2548f57cd120c31f3fd0a86e97ba035af09a203ac9dc3ab2096cbef36c89573 |
|
MD5 | 78f2538ba0a1f2058fea4ad45daf5d73 |
|
BLAKE2b-256 | 50c123deb17bc9215371134477687082aeb4e8f8d63ceadd1705ec7533d65419 |
File details
Details for the file eth_prototype-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: eth_prototype-0.4.0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a9b6df487ac002fe77be4fc3a8a7437188b56f9a3b52d496c40ecf9e32f1bfe |
|
MD5 | 313a9655bb0e620fda24a4208f0f418f |
|
BLAKE2b-256 | 931aeb03541eb299045f4170807c0888b263a42bc5b0c2f6a9f2bba61d9cb68f |