Jacob Evans
9727f0cebe
feat: Enable partial Native order fills. Union intermediary tokens ( #309 )
...
* feat: Enable partial Native order fills
* change intermediary tokens to be a UNION.
Hint to cvxCRV and CRV
* Pin asset-swapper to use contracts-zero-ex 0.27.0 for now
* feat: Retire Eth2Dai/Oasis
2021-08-19 15:21:23 +10:00
Lawrence Forman
164a5d44d9
bsc<->development rebase ( #189 )
...
* FQT: Pack Protocol/source name into source ID (#162 )
* `@0x/contracts-zero-ex`: Encode protocol ID and source name in bridge source ID
`@0x/asset-swapper`: Use new bridge source ID encoding.
* fix linter issues
* contracts cleanup (#164 )
* `@0x/contracts-zero-ex`: Add PancakeSwapFeature
* `@0x/contracts-zero-ex`: Remove tokenspender/allowance target/greedy tokens stuff.'
`@0x/contract-addresses`: Add BSC addresses. Remove exchangeProxyAllowanceTarget.
`@0x/migrations`: Remove exchangeProxyAllowanceTarget.
* Update contracts/zero-ex/contracts/src/features/IPancakeSwapFeature.sol
Co-authored-by: mzhu25 <mchl.zhu.96@gmail.com >
* `@0x/contracts-zero-ex`: Add sushiswap support to PancakeSwap
* `@0x/contract-artifacts`: Regenerate artifacts
`@0x/contract-wrappers`: Regenerate wrappers
* `@0x/contract-addresses`: Add BSC addresses
Co-authored-by: mzhu25 <mchl.zhu.96@gmail.com >
Co-authored-by: mzhu25 <mchl.zhu.96@gmail.com >
* feat: Better chain support (#163 )
* feat: Better chain support
* feat: better chain support refactor deployment constants (#166 )
* proliferate the chainId
* Refactor sampler to remove DeploymentConstants dependency and fixed addresses
* Rework WETH out, replacing with address(0)
* wat
* hack DeploymentConstants for now
* proliferate the chainId
* Refactor sampler to remove DeploymentConstants dependency and fixed addresses
* remove duped network addresses
* Rework the bridge source encoder
* Use the constants NATIVE_FEE_TOKEN in EP consumer
* `@0x/contract-addresses`: Fix WBNB address (#170 )
Co-authored-by: Lawrence Forman <lawrence@0xproject.com >
* multichain enable cakez vip (#171 )
* feat: Better chain support
* feat: better chain support refactor deployment constants (#166 )
* proliferate the chainId
* Refactor sampler to remove DeploymentConstants dependency and fixed addresses
* Rework WETH out, replacing with address(0)
* wat
* hack DeploymentConstants for now
* proliferate the chainId
* Refactor sampler to remove DeploymentConstants dependency and fixed addresses
* remove duped network addresses
* `asset-swapper`: enable pancake VIP route generation
Co-authored-by: Jacob Evans <jacob@dekz.net >
Co-authored-by: Lawrence Forman <me@merklejerk.com >
* `@0x/contracts-zero-ex`: Fix `PancakeSwapFeature` sushi values (#172 )
* `@0x/contracts-zero-ex`: Fix `PancakeSwapFeature` sushi values
* `@0x/contracts-zero-ex`: I am a bad protocologist
Co-authored-by: Lawrence Forman <me@merklejerk.com >
* feat: BSC Nerve + Dodo + Nerve + Ellipsis (#181 )
* feat: BSC Nerve + DODO v1
* CHANGELOGs
* Remove extra balance fetch
* Add Belt
* Added Ellipsis
* Update FQT address
* `@0x/contracts-zero-ex`: Delete TokenSpenderFeature and get stuff compiling
* `@0x/asset-swapper`: fix compilation
* prettier
* `@0x/asset-swapper`: Truncate LiquidityProvider source ID name
* Update packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts
Co-authored-by: Jacob Evans <jacob@dekz.net >
* Update packages/asset-swapper/src/utils/market_operation_utils/sampler_operations.ts
Co-authored-by: Jacob Evans <jacob@dekz.net >
* `@0x/contracts-zero-ex`: Fix BakerySwap on PackageSwapFeature (#190 )
* address review comments
Co-authored-by: mzhu25 <mchl.zhu.96@gmail.com >
Co-authored-by: Jacob Evans <jacob@dekz.net >
Co-authored-by: Lawrence Forman <me@merklejerk.com >
2021-03-31 18:49:44 -04:00
Jacob Evans
3f4bb933d1
feat: v4 final ( #136 )
...
* v4 FillQuoteTransformer (#104 )
* Update FQT to support v4 orders
* `@0x/contracts-zero-ex`: Tweak FQT
`@0x/contracts-zero-ex`: Drop `ERC20BridgeTransfer` event and add `PartialQuoteFill` event.
* `@0x/contracts-utils`: Add `LibSafeMathV06.downcastToUint128()`
* `@0x/protocol-utils`: Update transformer utils for V4 FQT
* `@0x/contracts-zero-ex`: Fixing FQT tests...
* `@0x/contracts-zero-ex`: rename FQT bridge event
* `@0x/contracts-zero-ex`: Un-`only` tests
* `@0x/migrations`: Update `BridgeAdapter` deployment
* `@0x/contracts-integrations`: Delete `mtx_tests`
* `@0x/protocol-utils`: Address review comments
* `@0x/contracts-zero-ex`: Address review comments
* `@0x/migrations`: Update migrations
Co-authored-by: Michael Zhu <mchl.zhu.96@gmail.com >
Co-authored-by: Lawrence Forman <me@merklejerk.com >
* v4: Asset-swapper (main branch) (#113 )
* refactor quote_requestor
* WIP v4/asset-swapper: Clean up SwapQuoter and remove @0x/orderbook
* Start replacing SignedOrder everywhere
* wip: new order type
* wip
* remove order-utils from most places
* hack: Play around with VerboseX types (#119 )
* hack: Play around with VerboseX types
* More hacks
* Fix up the bridgeData encodings
* Rework Orderbook return type
* feat: Don't charge a protocol fee for RFQ orders WIP (#121 )
* fix simple build errors
* simplify types a little
* remove SwapQuoteCalculator: unnecessary abstraction
* Fix all ./src build errors; make types consistent
* export more types for use in 0x API; modify Orderbook interface
* stop overriding APIOrder
* feat: RFQ v4 + consolidated bridge encoders (#125 )
* feat: check if taker address is contract
* Rework bridge data
* Worst case adjustments
* RFQT v4
* Future/v4 validate orders (#126 )
* RFQT v4
* v4 validate native orders
* use default invalid signature
* refactor rfqt validations in swap quoter
* fix types
* fix RFQT unlisted api key
* remove priceAwareRFQFlag
* adjust maker/taker amounts
* update JSON schemas
* filter zero fillable orders
Co-authored-by: xianny <xianny@gmail.com >
* fix type export
Co-authored-by: xianny <xianny@gmail.com >
* remove order-utils as much as possible
* work on tests compile
* Comment out quote reporter test
* updated tests
* restore order-utils accidental changes
* some lints
* Remove old fill_test
* ts lint disable for now
* update quote report
* Re-enable quote report tests
* make fill data required field
* fix lint
* type guards
* force fillData as required
* fix lint
* fix naming
* exports
* adjust MultiBridge by slippage
* cleanups (checkpoint 1)
* cleanup types (checkpoint #2 )
* remove unused deps
* `@0x/contract-addresses`: Deploy new FQT (#129 )
Co-authored-by: Lawrence Forman <me@merklejerk.com >
* commit bump to republish
* DRY up the rfqt mocker
* fix: Balancer load top pools (#131 )
* fix: Balancer load top 250 pools
* refetch top pools on an interval
Co-authored-by: Jacob Evans <jacob@dekz.net >
Co-authored-by: Kim Persson <kimpers@users.noreply.github.com >
Co-authored-by: Lawrence Forman <lawrence@0xproject.com >
Co-authored-by: Lawrence Forman <me@merklejerk.com >
* Update post rebase
* prettier
* Remove test helpers exported in asset-swapper
* Clean up from review comments
* prettier
* lint
* recreate rfqt mocker
* change merge and INVALID_SIGNATURE
Co-authored-by: Lawrence Forman <lawrence@0xproject.com >
Co-authored-by: Michael Zhu <mchl.zhu.96@gmail.com >
Co-authored-by: Lawrence Forman <me@merklejerk.com >
Co-authored-by: Xianny <8582774+xianny@users.noreply.github.com >
Co-authored-by: Kim Persson <kimpers@users.noreply.github.com >
2021-02-10 19:20:15 +10:00
Jacob Evans
3dab892978
feat: Kyber reserve discovery using getTradingReserves ( #111 )
...
* feat: Kyber reserve discovery using getTradingReserves
* refactor sampler operations with
* Added Mooniswap v2.1
2021-01-13 13:28:15 +10:00
mzhu25
7403c0255a
Feature/liquidity provider sandbox ( #16 )
...
* Update liquidity provider feature to use sandbox
* add support for liquidity provider feature in the exchange proxy swap quote consumer
* Move to off-chain liquidity provider registry
* Update ILiquidityProvider interface
* Remove some unused artifacts and wrappers
* Consolidate ILiquidityProvider
* prettier
* lint
* Address PR feedback
* Add failover to sandbox
* Add test for failover behavior in LiquidityProviderSandbox
* Update changelogs
* Emit events for the new LiquidityProvider scenarios
* Fix swap quote consumer bug
* post-rebase fixes
* `@0x/contracts-zero-ex`: bump feature versions
* Add default field to TokenAdjacencyGraph
* update addresses
Co-authored-by: Lawrence Forman <me@merklejerk.com >
2020-11-13 12:22:21 -08:00
Jacob Evans
99f5be8378
chore: [asset swapper] sampler Solidity 0.6 + Bridge addresses in AS ( #4 )
...
* Refactor excess interfaces
* Compiles on 0.6
* Refactored into try/catch
* Rebase and Refactored to v06
* Handle invalid registry in LP
* Update packages/asset-swapper/contracts/src/LiquidityProviderSampler.sol
Co-authored-by: Lawrence Forman <lawrence@0xproject.com >
* chore: [asset-swapper] Move Bridge Addresses and Gas schedule
* curve->pool
* lint
* Refactor to fix module load order
* Move FEE Schedule
* rollup: Swerve/Sushi/SnowSwap/DODO (#7 )
* rollup: Swerve/Sushi
* DODO Rollup + Snowswap Swerve
* hardcode addresses temporarily
* rebase
* rename to SUSHISWAP_ROUTER
* CHANGELOGs
* CHANGELOGs
Co-authored-by: Lawrence Forman <lawrence@0xproject.com >
2020-10-27 15:16:09 +10:00
Jacob Evans
a2f0d5eedf
feat: better Kyber quotes ( #2683 )
...
* feat: Kyber rework
* Get additional reserves per token
2020-08-27 15:58:57 +10:00
mzhu25
bab34c2d21
Feature/bunny hop ( #2647 )
...
* `@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
2020-08-27 08:20:09 +10:00
Jacob Evans
7e8b56eef4
feat: mStable + FQT Rollup ( #2662 )
...
* 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 >
2020-08-20 08:18:44 +10:00
Jacob Evans
762e0aec2d
fix: Update to use KNP getExpectedRateAfterFee ( #2629 )
...
* Update to use KNP getExpectedRateAfterFee
* hack: use overrides instead of forking in ganache
* fix: added some tests using overrides
* override sampler
* Overrides in bridge_sampler_mainnet_test
* use getContracts to fake out tests
* chore: supply devUtils address
* feat: specify the call override by default
* CHANGELOGs
* export SamplerOverrides
* fix package.json
* fix: after rebase
2020-07-15 14:05:57 +10:00
mzhu25
ff9c9241d8
BalancerBridge ( #2613 )
...
* Add BalancerBridge and Sampler functions
* Update sampler artifacts/wrappers
* Add Balancer support to AssetSwapper + related refactoring
* Make use of GraphQL instead of sampler
* "fix" build and add mainnet BalancerBridge tests
* address some comments
* add balancer cache and fix DexSampler tests
* lint
* wip: tests for balancer sampler ops
* Fix market operation utils test
* balancer unit tests
* Return a buy quote of 0 if the buy amount exceeds the Balancer pool's balance
* Dynamic fee estimation
* Update contract addresses, export BalancerBridge wrapper
* Update changelogs
* Fix bugs discovered via simbot
* Fix issues in balancer_utils
* override `BigNumber.config` in configured_bignumber.ts
* Special case Balancer subops in too
* Address some more comments
* Address Balancer performance issue
* Performance improvements
* Address comment
* Fix tests
Co-authored-by: xianny <xianny@gmail.com >
2020-07-14 19:18:50 -07:00
Michael Zhu
44262bf747
MultiBridge support in AssetSwapper
2020-06-11 11:14:48 -07:00
Xianny
0fbbabe208
Add Uniswap V2 support to @0x/asset-swapper ( #2599 )
...
* add uniswapV2
* update changelogs
* remove unused import
* add tests for Uniswap V2 ETH
* rename UniswapV2 and UniswapV2Eth
* use correct token address path
* update contract addresses after deploy
2020-06-11 10:23:50 -07:00
Daniel Pyrathon
32e1ae2b18
added unit tests to avoid regression due to variable order
2020-03-05 16:07:49 -08:00
Lawrence Forman
0c9c68030e
@0x/asset-swapper
: Use batchCall()
version of the ERC20BridgeSampler
contract
2020-02-11 12:07:48 -07:00
Lawrence Forman
994908549d
Asset-swapper aggregator utils ( #2353 )
...
* `@0x/asset-swapper`: Add ERC20Bridge aggregator library.
* `@0x/asset-swapper`: Finish off `aggregate.ts`.
* `@0x/types`: Add `OrderWithoutDomain` type.
* `@0x/asset-swapper`: Add testing infra for sampler/aggregator.
* `@0x/types`: Add `SignedOrderWithoutDomain` type.
* `@0x/asset-swapper`: Update aggregator to take and return orders with signatures.
* `@0x/asset-swapper`: Fix broken aggregator tests.
* `@0x/asset-swapper`: Pass the sampler contract into aggregator entry points.
* `@0x/contract-artifacts`: Add `IERC20BridgeSampler` artifact.
* `@0x/contract-wrappers`: Add `IERC20BridgeSampler` wrapper.
* `@0x/asset-swapper`: Address review comments.
* fixed testing
* refactored aggregate.ts and embeded into asset-swapper
* added adjusted rates for taker and maker fees
* remove PrunedSignedOrders
* updated contract-addresses and addressed some other todos
* streamlined logic
* patched in lawrences changes
* renamed aggregator utils and removed market_utils.ts
* added ack heartbeats
* fixed bug
* patches
* added dummy order things
* Dummy with valid sig
* Tweak gas price calculation to wei
* added test coverage and fixed bugs
* fixed migrations
* Fix CHANGELOGs and types export
* Deploy latest ERC20BridgeSampler on Mainnet
* `@0x/types` Revert CHANGELOG.
* `@0x/asset-swapper`: Address review comments.
`@0x/contract-addresses`: Make kyber lowercase.
* made protocol fee multiplier async
* `@0x/asset-swapper: Fix build errors and do some code cleanup.
* use assetDataUtils where possible
2019-12-16 12:35:58 -08:00