* Re-usable cache
By use of branch as a cache key, we invalidate the cache very often.
This leads to incresed builds time. By use of cache based on checksum of
yarn.lock, we may drop the build time.
It will increase the time every time checksum has changed. In our case,
it happens multiple times per month.
* Skip job run if no changes applied
* Skip tests if no changes applied
* Skip tests if no changes applied
* Add asset-swapper deprecation notice in README.md
* Remove asset-swapper references from the top-level README
* Remove asset-swapper from circleci config
* Set asset-swapper private to prevent it from being published
* Remove asset-swapper from `nonContractPackages`
* Disable asset-swapper build and test scripts
* Draft. PoC pseudo code showing general idea for resuing SOR path creation logic and adding multihop support.
* Add actual Balancer SDK function calls.
* Update to handle buys.
* Correct taker>maker for buy.
* Draft. PoC pseudo code showing general idea for resuing SOR path creation logic and adding multihop support.
* make it build
* rebase
* add BalancerV2Batch protocol
* add BalancerV2Batch protocol
* get balancer v2 multihop working
* fix BalancerV2Batch for sells (buys still iffy)
* fix buys, appease linter and prettier
* remove unused RPC URL from balancer sdk construction
* update changelogs
* clean up comments
add event loop yield in `BalancerV2SwapInfoCache.loadTopPools()`
* add negative result check on balancerv2batch swap output
* compiler hack
* reintroduce CompilerHack
* delete unused multibridge sampler
* remove compilerhack
* reintroduce compilerhack
* try to fix CI compile errors
* plz work
* plz work
* pretty plz work
* yay it works, also address feedback
* appease linter
* deploy new FQTs
Co-authored-by: johngrantuk <johngrantuk@googlemail.com>
Co-authored-by: Lawrence Forman <me@merklejerk.com>
* add balancer v2
* fetch balancer v2 pools from subgraph
* feat: initial stab at a Balancer V2 Sampler WIP
* feat: add sampling for buys and fix build issues WIP [untested]
* fix: BalancerV2Sampler implementation issues, works on Kovan
* chore: BalancerV2 sampling boilerplate
* fix: update Balancer V2 mainnet address
* fix: consolidate differences between the 2 working branches
* fix: use mainnet Balancer V2 subgraph
* fix: stack too deep by minimizing and inline Balancer V2 vault interface
* fix: address review comments and clean up
* fix: sampler vault interface and pools cache assuming a pool has swaps
* address more review comments
* fix: TS type issues and add a comment about deadline argument
* fix: pools_cache_tests incorrect token addresses, prettier incompat
* fix: make ERC20BridgeSampler support BalancerV2 non view sampler fns
* fix: use a struct for passing encoded bridge data for Balancer V2
* chore: add changelog entries
* fix: improve gas accuracy of gas schedule for Balancer V2 & Maker Psm
* fix: don't exclude sources with stale caches & wait for cache refresh
* rebase
* `@0x/asset-swapper`: Fix stack too deep errors in sampler
* `@0x/asset-swapper`: Add uniswap V3 sampler.
* `@0x/contracts-zero-ex`: Add UniswapV3 support to FQT
* `@0x/protocol-utils`: Update BridgeProtocols.
`@0x/asset-swapper`: Add sell integration for UniswapV3.
* `@0x/asset-swapper`: Remove unnecessary swap quote consumer constructor arg.
`@0x/asset-swapper`: Enable UniswapV3 on ropsten.
* `@0x/asset-swapper`: UniswapV3 fixes
* `@0x/asset-swapper`: Fix stuff based on latest deployed testnet contracts
* `@0x/asset-swapper`: Remove UniV3 from mainnet sources for now
* `@0x/asset-swapper`: Tweak univ3 gas schedule
* fix CI?
* `@0x/contracts-test-utils`: Set default ganache gas limit to 100e6
Co-authored-by: xianny <xianny@gmail.com>
Co-authored-by: Kim Persson <kimpersson88@gmail.com>
Co-authored-by: Lawrence Forman <me@merklejerk.com>
Co-authored-by: Jacob Evans <jacob@dekz.net>
* 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
* generate wrappers in @0x/contract-wrappers and delete abi-gen-wrappers
* trim exports from contract-wrappers
* separate contract-wrappers tests to get rid of dependency cycle
* remove dummy token contracts
* temporarily skip coordinator test until we can upgrade coordinator server
* 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
* abi-gen/test: recompile contract fixtures for 3.0
It seems this hadn't been done since the merge with the 3.0 branch.
* Sync `monorepo$ yarn test` exclusions to CI config
* sra-spec: correct typo
* contract-wrappers: TODO after coord.-server update
* utils: fix typo in comment
* Refactor networkId to chainId everywhere
* Update CHANGELOGs
* .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