* .gitignore gen'd Python staking contract wrappers * abi-gen/test-cli: check Python type hints in lint * sra_client.py: Update doc for replicating examples * abi-gen/Py: fix call() return type incl. tx hash Previously, generated wrappers for contract methods were including type hints that suggested that a call() (as opposed to a send_transaction()) might return either the underlying return type or a transaction hash. This doesn't make sense because a call() will never return a TX hash. Now, the type hint just has the return type of the underlying method. * abi-gen: fix test_cli:lint checking wrong code test_cli:lint is meant to be a rudimentary test of the code generated by abi-gen. However, previously, this script was incorporated into `yarn lint`, and in CircleCI `static-tests` runs independently of `build`. Consequently, the runs of test_cli:lint were checking the OLD code, which was previously generated and checked in to git, NOT the code generated with the version of abi-gen represented by the git repo. Now, test_cli:lint happens during `yarn test` rather than `yarn lint`, because `yarn test` IS dependent on `yarn build`. * contract_wrappers.py: fix misplaced doc Previously, the routines `order_to_jsdict()` and `jsdict_to_order()` were moved from contract_wrappers.exchange.types to contract_wrappers.order_conversions. However, the module-level docstring describing those routines was accidentally left behind in exchange.types. * abi-gen/Py: stop documenting return types for TXs Previously the send_transaction() interface included docstring documentation for the return types of the contract method, but that doesn't make any sense because send_transaction() returns a transaction hash rather than any actual return values. * abi-gen/Py: stop gen'ing send_tx for const methods * abi-gen/Py: add build_tx to contract methods * abi-gen/Py: fix incorrect method return types Fixes #2298 . * abi-gen/Py: rm validator arg to no-input methods * abi-gen: mv Py Handlebars helpers to own module Move all existing Python-related Handlebars helpers to the newly created python_handlebars_helpers module. * abi-gen: refactor internal interface No functionality is changed. Sole purpose of this commit is to facilitate an upcoming commit. * abi-gen: refactor internal interface No functionality is changed. Sole purpose of this commit is to facilitate an upcoming commit. * abi-gen/Py: name tuples w/internalType, not hash Use the new `internalType` field on the `DataItem`s in the contract artifact to give generated tuple classes a better name than just hashing their component field names. * Fix CI errors * abi-gen/Py/wrapper: make internal member private * Update CHANGELOGs
0x-contract-wrappers
0x contract wrappers for those developing on top of 0x protocol.
Read the documentation
Installing
pip install 0x-contract-wrappers
Contributing
We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
Please read our contribution guidelines before getting started.
Install Code and Dependencies
This package contains code generated via npm package @0x/abi-gen. Preparing this package for development or installation requires running ./setup.py pre_install
, which will invoke abi-gen to write the files to the src hierarchy. It expects to find abi-gen and the contract artifacts at the relative directory locations in the monorepo.
After code generation, ensure that you have installed Python >=3.6 and Docker, and then:
pip install -e .[dev]
Test
Tests depend on a running ganache instance and with the 0x contracts deployed in it. For convenience, a docker container is provided that has ganache-cli and a snapshot containing the necessary contracts. A shortcut is provided to run that docker container: ./setup.py ganache
. With that running, the tests can be run with ./setup.py test
.
Clean
./setup.py clean --all
Lint
./setup.py lint
Build Documentation
./setup.py build_sphinx
More
See ./setup.py --help-commands
for more info.