* Install Py packages in dep. order, not in parallel
Install Python packages in dependency order, not in parallel.
* sra_client.py: Add `./setup.py clean`
* Fix python package dependency ordering...
...and include a script to produce the proper ordering.
* sra_client.py: reformat whitespace in doctest
* contract_wrappers.py: don't auto-import wrappers
This was discovered while minimizing CircleCI steps to dianose a problem
with running the Launch Kit Backend in CircleCI.
These classes should be imported via the
zero_ex.contract_wrappers.exchange and
zero_ex.contract_wrappers.erc20_token modules, respectively. We
permitted importing them from just zero_ex.contract_wrappers back when
they were the only wrappers we had, but now that we have so many
different contracts being wrapped, this is just another list to keep
manually updated (which, obviously is error prone, since it slipped
through the cracks already), so it's better to just not support this
type of import.
* abi-gen/Py: doc contract method attributes
Without this, generated documentation was not including the class
members that represent the contract methods, rendering the usage
unclear.
* sra_client.py: disable tests in CI
* abi-gen/Py: strip repeated spaces from devdoc
* contract_wrappers.py: gen docs for all wrappers...
...except for the dummy tokens.
* sra_client.py/test: change launch kit docker image
Previously these teses were using 0xorg/launch-kit-ci, but that was a
one-off thing created just for CI, back before there was a regularly
maintained docker image of Launch Kit.
Changed to use 0xorg/launch-kit-backend since it's regularly
maintained/updated.
Because the -backend image is using a different Linux distribution
(Alpine), the commands used to wait for ganache startup also had to
change.
The tag used, 74bcc39, is provisional due to the pending Issue at
https://github.com/0xProject/0x-launch-kit-backend/issues/73 . When
that issue is resolved, the tag suffix on the imag name should be
removed.
* Migrate from Web3.py 4.x to 5.x
* sra_client.py: checksum address in doctest
Due to problem with launch-kit-backend, documented at
https://github.com/0xProject/0x-launch-kit-backend/issues/73 ,
we need to checksum the makerAddress, in the order retrieved from the
relayer, before filling it, otherwise Web3.py gives this error:
InvalidAddress('Web3.py only accepts checksum addresses. The software
that gave you this non-checksum address should be considered unsafe,
please file it as a bug on their platform. Try using an ENS name
instead. Or, if you must accept lower safety, use
Web3.toChecksumAddress(lower_case_address).',
'0x5409ed021d9299bf6814279a6a1411a7e866a631')
* Update CHANGELOGs
* sra_client.py: make CHANGELOG be REVESE chrono.
Formerly CHANGELOG was in chronological order. Now it's in reverse
chronological order.
* abi-gen/Py: fix missing space in sanitized devdoc
* Rename existing wrapper, to match contract name
* base contract: make member var public
* json_schemas.py: stop storing copies of schemas!
* .gitignore generated erc20_token.py wrapper
* json schemas: allow uppercase digits in address
* existing exchange wrapper: re-order methods
to match method order in Solidity contract, to reduce noise in upcoming
diffs of newly generated code vs. old manually-written code.
* existing exchange wrapper: rename method params
To match contract method param names
* existing exchange wrapper: remove redundant member
* existing exchange wrapper: make signatures bytes
Not strings.
* abi-gen/test-cli: show context on diff failure
* abi-gen-templates/Py: fix broken event interface
Previous changes had removed the `token_address` parameter from all
generated methods, but this instance was missed because there weren't
tests/examples using events for the first contract for which wrappers
were generated (ERC20Token).
* abi-gen: remove unused method parameters
* abi-gen: convert Py method params to snake case
* abi-gen: rewrite Python tuple handling
* python-generated-wrappers: include Exchange
* abi-gen-templates/Py: easy linter fixes
* abi-gen-templates/Py: satisfy docstring linters
* abi-gen-templates/Py: normalize bytes before use
* contract_wrappers.py: replace Exchange w/generated
* contract_wrappers.py: rm manually written Exchange
* contract_wrappers.py/doctest: rename variables
* abi-gen: fix misspelling in docstring
Co-Authored-By: Fabio B <me@fabioberger.com>
* Py docs: error on warning, and test build in CI
* abi-gen: doc Py bytes params as requiring UTF-8
* abi-gen: git mv diff.sh test-cli/
* abi-gen: put Py wrapper in module folder, not file
This leaves space for user-defined additions to the same module, such as
for custom types, as shown herein.
* abi-gen: customizable param validation for Python
* contract_wrappers.py: JSON schema Order validation
* CircleCI Build Artifacts
For abi-gen command-line test output, for generated Python contract
wrappers as output by abi-gen, for generated Python contract wrappers as
reformatted and included in the Python package area, and for the "build"
output folder in each Python package, which includes the generated
documentation.
* CHANGELOG updates for all components
* abi-gen: grammar in comments
Co-Authored-By: Fabio B <me@fabioberger.com>
* abi-gen: CHANGELOG spelling correction
Co-Authored-By: Fabio B <me@fabioberger.com>
* order_utils.py: reverse (chronological) CHANGELOG
* abi-gen-templates: reset CHANGELOG patch version
* CHANGELOGs: use multiple entries where appropriate
* abi-gen: enable devdoc solc output in test-cli
* abi-gen-templates/Py: consolidate return type
* abi-gen/test-cli: non-pure fixture contract method
Added a method to the "dummy" test fixture contract that isn't pure.
All of the other prior method cases were pure.
* abi-gen/Py: fix const methods missing return type
* abi-gen/Py: fix wrong return types on some methods
Specifically, wrapper methods wrapping contract methods that modify
contract state and return no return value. There was no test case for
this. Now there is.
* contract_wrappers.py: rm generated code in `clean`
* Parallelize Py monorepo scripts (test, lint, etc)
* Refine Order for Web3 compat. & add conversions
Changed some of the fields in the Order class so that it can be passed
to our contracts via Web3.
Added conversion utilities so that an Order can be easily converted to
and from a JSON-compatible dict (specifically by encoding/decoding the
`bytes` fields), to facilitate validation against the JSON schema.
Also modified JSON order schema to accept integers in addition to
stringified integers.
* Fixes for json_schemas
Has-types indicator file, py.typed, was not being included in package.
Schemas were not being properly gathered into package installation.
* Add test/demo of Exchange.getOrderInfo()
* web3 bug workaround
* Fix problem packaging contract artifacts
* Move contract addresses to their own package
* Move contract artifacts to their own package
* Add scripts to install, test & lint all components
* prettierignore files in local python dev env
* Correct missing coverage analysis for sra_client
* CI cache lint: don't save, re-use from test-python
* tag hacks as hacks
* correct merge mistake
* remove local strip_0x() in favor of eth_utils
* remove json schemas from old order_utils location
* correct merge mistake
* doctest json schemas via command-line, not code