Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eth-prototype-0.6.0.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

eth_prototype-0.6.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file eth-prototype-0.6.0.tar.gz.

File metadata

  • Download URL: eth-prototype-0.6.0.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10

File hashes

Hashes for eth-prototype-0.6.0.tar.gz
Algorithm Hash digest
SHA256 6466c16190c01f857c736c25c475dc532a8c71ee8957b1e74e12fedf86f2c597
MD5 849ba121a5078b4e543c5f28b31b3cec
BLAKE2b-256 a1885a76ca6434010b5d554dba65cf7b98ef1dfb5903002a16a4b0d7490d029d

See more details on using hashes here.

File details

Details for the file eth_prototype-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: eth_prototype-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.10

File hashes

Hashes for eth_prototype-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b0d85cc1424e47336bee698cc1e315eed67a21d6f34bceb16afadc8b2d1b5c1
MD5 68e7ee9fbe5bd35853f06bdcc3734612
BLAKE2b-256 4fccc177593b6e97e1ef3133a0ddff2164b571edfa17b7a0437a56961c5d3dbe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page