* Remove pre-release suffixes from version numbers
* For wrapper test, pull latest ganache image first
* For wrapper test, unpin ganache, use beta snapshot
* In docs, advise using beta ganache snapshot
Because we haven't yet published the non-beta snapshot
* Unpin package interdependencies
* unpin tests from beta 0xorg/ganache-cli version
* use beta ganache snapshot
* Set release date in CHANGELOGs
* In testing deployment, stop testing pre-releases
* Include rmtree("build") in all clean commands
* Fix clean not cleaning what it thought it was
* In monorepo script, install pkgs 1st then dev deps
* Stop pinning ganache snapshot version
* In test setup, wait longer for mesh to start up
* Fix broken hyperlinks in docs
* fix missing \n that was breaking doc rendering
* In monorepo script comment, fix typo, and clarify
* Use pre-release ver's for tests against deployment
* Pre-release version number bumps
* pin sra_client dev deps to prereleases
for testing against deployed package
* middlewares: incl doctest in tests of deployment
* Unpin mesh, use new snapshot, & pay protocol fees
* .gitignore gen'd wrappers for new contracts
* test build_tx() & support for empty TxParams.from_
* fix doc: fill TAKERAssetAmount, not maker...
* CI/test-python: give LK ID of chain, not network
For CircleCI job test-python, change docker config for
launch-kit-backend to set an environment variable for the chain ID,
not for the network ID. This was failing on all branches after a recent
update to the `0xorg/launch-kit-backend:v3` tag.
* Update docker config used for local testing
* Update documentation of test environment
* .gitignore migrations/0x_ganache_snapshot
* .gitignore new-ish Python contract wrappers
These should have been added back when we started generating these
wrappers.
* rm superfluous contract artifact in Python package
All of the contract artifacts were removed from the Python package
recently, because now they're copied from the monorepo/packages area as
an automated build step. Somehow this one artifact slipped through the
cracks.
* Eliminate circular dependency
This was preventing the Exchange wrapper from ever importing its
validator!
* Improve output of monorepo-level parallel script
- Capture stderr (and have it included in stdout) so that it doesn't
leak onto the console for commands that didn't actually fail.
- Include all error output in the Exception object (eliminate print
statement).
* Silence new versions of linters
Newer versions care about this stuff. Old versions didn't, and we don't
either.
* Support Rich Reverts via Web3.py middleware
* Fix bug in generated wrappers' bytes handling
`bytes.fromhex(bytes.decode('utf-8')` is just plain wrong. It would
work for some cases, but is not working when trying to fill orders with
the latest Exchange contract.
* Migrate to Exchange v3
* Fix typo in DevUtils documentation
* Include new contracts in docs
* Re-enable Python checks in CI
* Accept strings for bytes
* Fix CircleCI build artifacts for gen'd python
I swear the previous way was working before, but it wasn't working now,
so this fixes it.
* Accept a provider OR a Web3 object
In various places. This allows the caller to install middleware (which
in web3.py is installed on a Web3 object, not on a provider) before
executing any RPC calls, which is important for the case where one wants
to produce signatures locally before submitting to a remote node.
* wrapper base: don't assume there are accounts
* Eliminate some inline linter directives
* make CHANGELOGs be REVERSE chronological
* Update CHANGELOG entries and bump version numbers
* @0x/contract-addresses: Put addr's in JSON, not TS
This allows easier consumption by other languages. (Specifically, it
eliminates the overhead of keeping the Python addresses package in sync
with the TypeScript one.)
* sra_client.py: incl. docker in `./setup.py clean`
* sra_client.py: Migrate to protocol v3
Removed script that existed only to exclude runs of sra_client builds
(parallel_without_sra_client). Now `parallel` is used by CI,
re-including sra_client in CI checks.
* abi-gen/templates/Py: clarify if/else logic
In response to
https://github.com/0xProject/0x-monorepo/pull/2284#discussion_r342200906
* sra_client.py: Update CHANGELOG and bump version
* contract_addresses/setup.py: rm unnecessary rm
* json_schemas.py: corrections to dev dependencies
* In tests against deployment, also run doctests
* contract_wrappers example: rm xtra Order attribute
Thanks to @steveklebanoff for catching this.
https://github.com/0xProject/0x-monorepo/pull/2284#pullrequestreview-312065368
* 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
* Exercise doctests as a test not as a linter
* Add a contract artifact doctest, and exercise it
* Clean up linter issues
* Change asset data decoding output type
Previously, it was a TypedDict, but that was causing problems. Sphinx
seems to be broken, such that none of the fields of the class were being
rendered into the doc.
Thinking on it further, I decided that a NamedTuple makes more sense
here anyways, since tuples are immutable and this output value isn't
something someone should ever build or modify. And, NamedTuple is
getting its fields properly rendered by Sphinx.
* Add type annotations to JSON schemas docs
* Add doc publish metadata file for middlewares pkg
* Improve documentation
Note that none of the changes to .py files impact functionality in any
way, because the changes are restricted to "docstrings", which to the
Python interpreter are simply no-op statements.
However, one caveat to that is that much of these docstring changes DO
affect the functionality of automated test runs, because all of the code
examples (blocks beginning with `>>> `) are "doctests", which are
exercised via the test framework.
The index.rst files are the top-level templates for generating the
documentation, and the "automodule"/"autoclass"/etc statements pull in
the docstrings from the source code.
* correct package name in doc URL
* Move sra_client module into zero_ex namespace
* Add functions to encode asset data to bytes
* Fix: SRA client was deserializing orders weirdly
The generated code was transforming the order structure, from the camel
case field name format in the spec, into the snake case field name
format expected by Python convention. With this problem in place, the
only way to take an order from a relayer and send it to a contract (for
fill, cancel, etc) was to manually transform the field names, one by
one, into a new structure.
* Fix problem with Web3/JSON order conversion utils
* doctest: maker, trade ZRX for WETH, not vice versa
* Remove redundant test
* Construct order in native Python, not JSON
Then convert it to JSON before sending it to the relayer.
* doctest: simplify asset units
* Add doctests for filling and cancelling
* Minor doctetst copy edits; whitespace
* Rename function, and add optional parameter
* Tweak docstrings on JSON conversion functions.
* Demo asset data decoding to view asset pairs
* Demo selecting an order from the order book
And have taker take it.
* Rename variable
* Abstract ganache from examples
Doing that exposed excessive use of the verbose
NETWORK_TO_ADDRESSES[NetworkId.Ganache] construct, so simplified that,
which ripped into eliminating other temporary variables that had been
used to hold specific contract addresses.
Also cleaned up some misplaced import statements.
* Add missing SRA client doc publication metadata
* Ran prettier on new SRA client doc pub metadata
* Remove local env customizations in doc metadata
* Eliminate temporary variable
* Rename variable
* Show `pip install` in every package's doc
* Doc NetorkID & pagination params as int, not float
* Clean up unmatched parenthesis in docs
These tests have worked multiple times in Circle CI, but now they're not, and it seems to be misbehaving intermittently, so just disabling them for now.
End-to-end demos of constructing and signing an order and submitting it to a Relayer. Docs are generated from the code, and include usage examples that are verified through automated testing.
* Code generation scripts
* Generated code
* Change test config to hit 0x-launch-kit
* Ran prettier on generated code
* First test case, of get_asset_pairs()
* Use launch kit docker image to faciliate CI tests
* Fix markdown rendering for GitHub and PyPI
* Add URL for PyPI to link back to GitHub
* Add one-line package description to README.md
* Remove git_push.sh
* Remove unimplemented tests
* Add sra_client to top-level README package list
* Remove repeated-everywhere long description
* Add shorcuts for publishing
* Remove TypeScript examples