* feat: integrate Rust router with asset-swapper WIP
* fix: produce outputFees in the format the Rust router expects
* fix: correct output fee calc and only use the rust router for sells
* fix: make sure numbers sent to the rust router are integers
* hack: try to debug why rust router output is being overestimated WIP
* refactor: clean up router debugging code
* fix: don't use negative output fees for sells
* feat: try VIP sources in isolation and compare with routing all sources
* fix: adjust for FQT overhead when choosing between VIP, all sources WIP
* fix: pass gasPrice to path_optimizer for EP overhead calculations
* feat: buy support with the Rust Router WIP
* chore: WIP commit trying to get buys working
* refactor: use samples instead of fills for the Rust router
* feat: add vip handling hack to sample based routing
* fix: revert to 200 samplings for rust router when using pure samples
* refactor: remove old hacky Path based Rust code, add back feature toggle
* fix: scale both fill output and adjustedOutput my same factor as input
* feat: initial plumbing for supporting RFQ/Limit orders
* fix: incorrect bump of input amount by one base unit before routing
* fix: add fake samples for rfq/limit orders to fulfill the 3 sample req
* fix pass rfq orders in the correct format to the rust router
* chore: remove debugging logs and clean up code & comments
* fix: use published version of @0x/neon-router
* hack: scale routed amounts to account for precision loss of number/f64
* refactor: clean up code and address initial review comments
* fix: only remove trailing 0 output samples before passing to the router
* refactor: consolidate eth to output token calc into ethToOutputAmount fn
* fix: interpolate input between samples on output amount instead of price
* fix: return no path when we have no samples, add sanity asserts
* refactor: fix interpolation comment wording
* fix: remove double adjusted source route input amount
* chore: update changelog for asset-swapper
* fix: KyberDmm
* fix: pass buyToken to kyberDmm and require that path ends with buyToken
* Pass BigNumber down to FastABI
* Address Feedback
Co-authored-by: Kim Persson <kimpersson88@gmail.com>
* fix: add separate priceComparisonsReport to fix missing quoteReport data
* chore: remove notice about unconfirmed Uniswap V3 addresses
* refactor: move price comparisons computation logic into separate method
* chore: add AS changelog entry
* 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>
* 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
Co-authored-by: Kim Persson <kimpersson88@gmail.com>
Co-authored-by: Lawrence Forman <me@merklejerk.com>
* Cull paths which cannot improve price
* fixes and rename
* optimizations
* disable ABI optimization for sampler
* fix lint
* use fastabi
* Update to fastabi 0.0.2
* update packages
* Fix NaN case
* update to published packages
* rebased
* Update generated wrappers
* add tx origin blacklist to RFQ options
* Fix typo
* use set instead of array
* make sure tx origin is lower case
* changed default blacklist value from array to set
* baseline adapter code [WIP]
* fixed adapter logic, quote_requester instantiation
* modified quote-requestor test to include alt implementation
* type changes, fixes to quote requestor test
* small fixes
* working tests, made alt utils more readable
* lint errors
* added alt indicative quote tests, minor fixes
* export alt MM market offering types
* altered alt market offering to have id instead of symbols
* addressed minor comments
* updated changelog
* got rid of unnecessary, large if-block, fixed the buy-sell assignment to be from the MM's perspective
* extra logging for debugging
* fixed existingOrder size
* get rid of only flag on test, get rid of extra logging
* prettier
* `@0x/contracts-erc20-bridge-sampler`: Add TwoHopSampler + refactor
* `@0x/asset-swapper`: Refactor + add two-hop skeleton
* Round out two-hop support in asset-swapper
* Add BalancerSampler, use it for two-hop quotes
* Fix bugs discovered from simbot
* rebases are hard
* Add intermediate token to MultiHop source breakdown
* Fix market buy bugs
* Use hybrid on-chain/off-chain sampling for Balancer
* Another day, another rebase
* Update changelogs
* Address PR feedback, CI fixes
* Address more PR feedback
* Bancor Bridge contract
* refactor Quote and FillData types
* BancorService (wrapper for the Bancor SDK)
* disable bancor while waiting for bancor SDK update
* add bancor to test
* feat: mStable
* deploy and CHANGELOG
* `@0x/contracts-utils`: Add more testnet addresses.
* `@0x/contract-addresses`: Deply Mstable on testnets
* `@0x/contract-addresses`: Remove testnet deployments of mStable :-)
* move `erc20-bridge-sampler` into `asset-swapper`
remove `DevUtils` dependency from sampler contract.
* `@0x/asset-swapper`: Add ERC20BridgeSampler support for validating orders in maker fees denominated in non-maker assets.
`@0x/asset-swapper`: Add tests for `NativeOrderSampler`.
* `@0x/asset-swapper`: Return `0` sample if native order asset data is unsupported.
* `@0x/asset-swapper`: Fix failing test.
* feat: ExchangeProxy FQT fruit rollup (#2645)
* feat: Optimize Bridges in ExchangeProxy
* compile and most work
* work around to trust the delecall contract
* force allowances
* Update Kyber/Eth2Dai bridges
* Remove memory state where not required
* cleanup
* Combine Bridges into one adapter
* mixins
* refactor out ZeroExBridge
* move out interface
* comment out hacks
* update migrations
* remove simbot hacks
* AdapterAddresses and mStable
* Share constructor arg
* fix migration
* Remove whitespace
* `@0x/contracts-zero-ex`: BridgeAdapter -- revert if bridge address is 0.
* `@0x/contract-addresses`: Deploy FQT.
Co-authored-by: Lawrence Forman <me@merklejerk.com>
Co-authored-by: Lawrence Forman <lawrence@0xproject.com>
* update ganache contract addresses
* fix: asset-swapper empty batch call (#2669)
* update ganache contract addresses
* fix: asset-swapper prevent empty sampler batch call
* add sampler to migrations
* change migrations version
* Use contract-wrappers and artifacts
* remove extra data
* remove deps, set sampler to NULL_ADDRESS
* all the exports
* noop sell rate too
* update ganache contract addresses
Co-authored-by: Lawrence Forman <me@merklejerk.com>
Co-authored-by: Lawrence Forman <lawrence@0xproject.com>