Files
protocol/packages/asset-swapper/CHANGELOG.json
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

1022 lines
27 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"version": "6.0.0",
"changes": [
{
"note": "Pull top 250 Balancer pairs on initialization",
"pr": 113
},
{
"note": "Support v4 `RFQ` and `Limit` orders",
"pr": 113
},
{
"note": "Refactor to consume latest `FillQuoteTransformer`",
"pr": 113
},
{
"note": "Enable `fillData` for all sources, no longer optional",
"pr": 113
},
{
"note": "Support `tx.origin` in RFQT quote requestor",
"pr": 113
}
]
},
{
"version": "5.8.2",
"changes": [
{
"note": "Fix error when Multihop data is not present",
"pr": 80
}
],
"timestamp": 1611869778
},
{
"timestamp": 1611648096,
"version": "5.8.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.8.0",
"changes": [
{
"note": "Automatically Discover Kyber reserves for tokens using `getTradingReserves`",
"pr": 111
},
{
"note": "Return `CallResults` from the Sampler",
"pr": 111
}
],
"timestamp": 1610510890
},
{
"version": "5.7.0",
"changes": [
{
"note": "Add SPDX license identifiers to solidity files",
"pr": 105
}
]
},
{
"timestamp": 1609802516,
"version": "5.6.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.6.1",
"changes": [
{
"note": "Fix fillAmount `ExchangeProxySwapQuoteConsumer` encoding when quote is a BuyQuote"
}
],
"timestamp": 1609387311
},
{
"version": "5.6.0",
"changes": [
{
"note": "Added Mooniswap V2 factory address",
"pr": 100
}
],
"timestamp": 1609113560
},
{
"timestamp": 1608692071,
"version": "5.5.3",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1608245516,
"version": "5.5.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1608149382,
"version": "5.5.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.5.0",
"changes": [
{
"note": "Bancor now supported in all pairs",
"pr": 88
}
],
"timestamp": 1608105788
},
{
"timestamp": 1607485227,
"version": "5.4.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1607381756,
"version": "5.4.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.4.0",
"changes": [
{
"note": "Add `takerAssetToEthRate` and `makerAssetToEthRate` to swap quote response",
"pr": 49
}
],
"timestamp": 1607373752
},
{
"timestamp": 1607036724,
"version": "5.3.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.3.0",
"changes": [
{
"note": "Added Crypto.com",
"pr": 43
},
{
"note": "Add `getQuoteInfoMinBuyAmount` to quote consumer utils",
"pr": 62
},
{
"note": "Add `unoptimizedQuoteInfo` and `unoptimizedOrders` to SwapQuoteBase",
"pr": 62
},
{
"note": "Add `unoptimizedPath` to OptimizerResult",
"pr": 62
},
{
"note": "Enable PLP VIP feature and add gasCost field to LiquidityProviderRegistry",
"pr": 65
}
],
"timestamp": 1606961263
},
{
"version": "5.2.0",
"changes": [
{
"note": "Update Gas schedules",
"pr": 34
},
{
"note": "Return the maker/taker token decimals from the sampler as part of the `SwapQuote`",
"pr": 34
},
{
"note": "Disable off-chain sampling for Balancer and CREAM",
"pr": 41
}
],
"timestamp": 1605763885
},
{
"version": "5.1.1",
"changes": [
{
"note": "Disable PLP VIP feature in EP swap quote consumer",
"pr": 36
}
],
"timestamp": 1605320370
},
{
"version": "5.1.0",
"changes": [
{
"note": "Add support for LiquidityProvider feature in the swap quote consumer",
"pr": 16
},
{
"note": "Remove support for MultiBridge 😞",
"pr": 16
}
],
"timestamp": 1605302002
},
{
"timestamp": 1604620645,
"version": "5.0.3",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1604385937,
"version": "5.0.2",
"changes": [
{
"note": "Dependencies updated"
},
{
"note": "adding Curve pools: PAX, hBTC, metapools: gUSD, hUSD, USDn, mUSD, tBTC",
"pr": 26
}
]
},
{
"timestamp": 1604376968,
"version": "5.0.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "5.0.0",
"changes": [
{
"note": "Support multiple `Shells` by supplying the `pool` address",
"pr": 17
},
{
"note": "Make use of Token Adjacency in more places. Moved as a parameter for the quote",
"pr": 24
}
],
"timestamp": 1604355662
},
{
"version": "4.8.1",
"changes": [
{
"note": "Fix Gas schedule with `SnowSwap` and `Bancor`",
"pr": 15
}
],
"timestamp": 1603851023
},
{
"version": "4.8.0",
"changes": [
{
"note": "Moved Bridge addresses into Asset-swapper",
"pr": 4
},
{
"note": "Updated Sampler to Solidity 0.6",
"pr": 4
}
],
"timestamp": 1603833198
},
{
"timestamp": 1603487270,
"version": "4.7.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "4.7.0",
"changes": [
{
"note": "Return quoteReport from SwapQuoter functions",
"pr": 2627
},
{
"note": "Allow an empty override for sampler overrides",
"pr": 2637
},
{
"note": "Potentially heavy CPU functions inside the optimizer now yield to the event loop. As such they are now async.",
"pr": 2637
},
{
"note": "Support more varied curves",
"pr": 2633
},
{
"note": "Make path optimization go faster",
"pr": 2640
},
{
"note": "Adds `getBidAskLiquidityForMakerTakerAssetPairAsync` to return more detailed sample information",
"pr": 2641
},
{
"note": "Fix regression where a split on the same source was collapsed into a single fill",
"pr": 2654
},
{
"note": "Add support for buy token affiliate fees",
"pr": 2658
},
{
"note": "Fix optimization of buy paths",
"pr": 2655
},
{
"note": "Fix depth buy scale",
"pr": 2659
},
{
"note": "Adjust fill by ethToInputRate when ethToOutputRate is 0",
"pr": 2660
},
{
"note": "Add Bancor as liquidity source",
"pr": 2650
},
{
"note": "Added `mStable`",
"pr": 2662
},
{
"note": "Merge `erc20-bridge-sampler` into this package",
"pr": 2664
},
{
"note": "Added `Mooniswap`",
"pr": 2675
},
{
"note": "Stop requiring takerAddress for RFQ-T indicative quotes",
"pr": 2684
},
{
"note": "Added two-hop support",
"pr": 2647
},
{
"note": "Move ERC20BridgeSampler interfaces into `interfaces` directory",
"pr": 2647
},
{
"note": "Use on-chain sampling (sometimes) for Balancer",
"pr": 2647
},
{
"note": "Re-worked `Kyber` quotes supporting multiple reserves",
"pr": 2683
},
{
"note": "Enable Quote Report to be generated with an option `shouldGenerateQuoteReport`. Default is `false`",
"pr": 2687
},
{
"note": "Add `refundReceiver` to `ExchangeProxySwapQuoteConsumer` options.",
"pr": 2657
},
{
"note": "Use `IZeroExContract` in EP swap quote consumer.",
"pr": 2657
},
{
"note": "Set `rfqtTakerAddress` to null in EP consumer",
"pr": 2692
},
{
"note": "Return Mooniswap pool in sampler and encode it in bridge data",
"pr": 2692
},
{
"note": "Added `Swerve`",
"pr": 2698
},
{
"note": "Added `SushiSwap`",
"pr": 2698
},
{
"note": "Add uniswap VIP support",
"pr": 2703
},
{
"note": "Add `includedSources` support",
"pr": 2703
},
{
"note": "Added `Curve` Tripool",
"pr": 2708
},
{
"note": "Pass back fillData from quote reporter",
"pr": 2702
},
{
"note": "Fix Balancer sampling",
"pr": 2711
},
{
"note": "Respect max slippage in EP consumer",
"pr": 2712
},
{
"note": "Introduced Path class, exchangeProxyOverhead parameter",
"pr": 2691
},
{
"note": "Added `Shell`",
"pr": 2722
},
{
"note": "Fix exchange proxy overhead gas being scaled by gas price",
"pr": 2723
},
{
"note": "Remove 0x-API swap/v0-specifc code from asset-swapper",
"pr": 2725
},
{
"note": "Added `DODO`",
"pr": 2701
},
{
"note": "Fix for some edge cases with `includedSources` and `MultiHop`",
"pr": 2730
},
{
"note": "Introduced `excludedFeeSources` to disable sources when determining the price of an asset in ETH",
"pr": 2731
},
{
"note": "Support `DODO` Trade Allowed parameter to automatically disable the pool",
"pr": 2732
},
{
"note": "Added `SwerveBridge` and `SnowSwapBridge` deployed addresses",
"pr": 7
}
],
"timestamp": 1603265572
},
{
"version": "4.6.0",
"changes": [
{
"note": "Use internal Eth Gas Station proxy",
"pr": 2614
},
{
"note": "Renamed RFQT request parameters",
"pr": 2582
},
{
"note": "Fix worst case asset amount calculations.",
"pr": 2615
},
{
"note": "Specify EthGasStation url as an optional parameter",
"pr": 2617
},
{
"note": "Singleton Gas Price Oracle",
"pr": 2619
},
{
"note": "\"Fix\" forwarder buys of low decimal tokens.",
"pr": 2618
},
{
"note": "Add Balancer support",
"pr": 2613
},
{
"note": "Consolidate UniswapV2 sources, Curve sources in `ERC20BridgeSource` enum",
"pr": 2613
},
{
"note": "Change gas/fee schedule values from constants to functions returning numbers",
"pr": 2613
},
{
"note": "Specify overrides to the ERC20Sampler contract, by default the latest bytecode is the override",
"pr": 2629
}
],
"timestamp": 1594788383
},
{
"version": "4.5.0",
"changes": [
{
"note": "Add support for private liquidity providers",
"pr": 2505
},
{
"note": "Big refactor of market operation utils",
"pr": 2513
},
{
"note": "Remove `dustFractionThreshold`, `noConflicts` options.",
"pr": 2513
},
{
"note": "Revamp fill optimization algorithm",
"pr": 2513
},
{
"note": "Add fallback orders to quotes via `allowFallback` option.",
"pr": 2513
},
{
"note": "Add `maxFallbackSlippage` option.",
"pr": 2513
},
{
"note": "Fix fee schedule not being scaled by gas price.",
"pr": 2522
},
{
"note": "Fix quote optimizer bug not properly accounting for fees.",
"pr": 2526
},
{
"note": "Fix `getBatchMarketBuyOrdersAsync` throwing NO_OPTIMAL_PATH",
"pr": 2533
},
{
"note": "Add DFB support + refactor swap quote calculator utils",
"pr": 2536
},
{
"note": "Add support for RFQ-T, querying maker-hosted endpoints for quotes to be submitted by the taker",
"pr": 2541
},
{
"note": "Add support for indicative (non-committal) quotes via RFQ-T",
"pr": 2555
},
{
"note": "Collapse `LiquidityProvider` into `DexForwarderBridge`",
"pr": 2560
},
{
"note": "Added Curve `sUSD`",
"pr": 2563
},
{
"note": "Fix sporadically failing quote simulation tests",
"pr": 2564
},
{
"note": "Apply Native order penalty inline with the target amount",
"pr": 2565
},
{
"note": "Remove Kyber exclusion when Uniswap/Eth2Dai is present",
"pr": 2575
},
{
"note": "Expose fills object in asset-swapper quote orders",
"pr": 2583
},
{
"note": "Increase timeout for tests",
"pr": 2587
},
{
"note": "Add support for Uniswap V2",
"pr": 2599
},
{
"note": "Add support for MultiBridge",
"pr": 2593
},
{
"note": "Fix Uniswap V2 path ordering",
"pr": 2601
},
{
"note": "Add exchange proxy support",
"pr": 2591
}
],
"timestamp": 1592969527
},
{
"version": "4.4.0",
"changes": [
{
"note": "Add support for ERC721 assets",
"pr": 2491
},
{
"note": "Add destroy for gas heartbeat",
"pr": 2492
},
{
"note": "Added `BUSD` Curve",
"pr": 2506
},
{
"note": "Updated `Compound` Curve address",
"pr": 2506
}
],
"timestamp": 1583220306
},
{
"version": "4.3.2",
"changes": [
{
"note": "Fix order native pruning by fill amount",
"pr": 2500
}
],
"timestamp": 1582837861
},
{
"timestamp": 1582677073,
"version": "4.3.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "4.3.0",
"changes": [
{
"note": "Add `fees` to `GetMarketOrdersOpts`",
"pr": 2481
},
{
"note": "Incorporate fees into fill optimization",
"pr": 2481
}
],
"timestamp": 1582623685
},
{
"version": "4.2.0",
"changes": [
{
"note": "Use `batchCall()` version of the `ERC20BridgeSampler` contract",
"pr": 2477
},
{
"note": "Support for sampling Curve contracts",
"pr": 2483
}
],
"timestamp": 1581748629
},
{
"timestamp": 1581204851,
"version": "4.1.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "4.1.1",
"changes": [
{
"note": "Fix bug with liquidity source breakdown",
"pr": 2472
},
{
"note": "Prune orders before creating a dummy order for the Sampler",
"pr": 2470
},
{
"note": "Bump sampler gas limit to 60e6",
"pr": 2471
}
],
"timestamp": 1580988106
},
{
"version": "4.1.0",
"changes": [
{
"note": "Allow contract addresses to be passed as optional constructor ags instead of hardcoding",
"pr": 2461
},
{
"note": "Add swap quote liquidity source breakdown",
"pr": 2465
}
],
"timestamp": 1580811564
},
{
"version": "4.0.1",
"changes": [
{
"note": "Fix underestimated protocol fee in worst case quote.",
"pr": 2452
}
],
"timestamp": 1579744659
},
{
"version": "4.0.0",
"changes": [
{
"note": "Upgrade to new `Forwarder` contract with flat affiliate fees.",
"pr": 2432
},
{
"note": "Remove `getSmartContractParamsOrThrow()` from `SwapQuoteConsumer`s.",
"pr": 2432
},
{
"note": "Added `getBatchMarketBuySwapQuoteForAssetDataAsync` on `SwapQuoter`",
"pr": 2427
},
{
"note": "Add exponential sampling distribution and `sampleDistributionBase` option to `SwapQuoter`",
"pr": 2427
},
{
"note": "Compute more accurate best quote price",
"pr": 2427
},
{
"note": "Change Exchange sell function from `marketSellOrdersNoThrow` to `marketSellOrdersFillOrKill`",
"pr": 2450
}
],
"timestamp": 1579682890
},
{
"version": "3.0.3",
"changes": [
{
"note": "Ignore zero sample results from the sampler contract.",
"pr": 2406
},
{
"note": "Increase default `runLimit` from `1024` to `4096`.",
"pr": 2406
},
{
"note": "Increase default `numSamples` from `8` to `10`",
"pr": 2406
},
{
"note": "Fix ordering of optimized orders.",
"pr": 2406
},
{
"note": "Fix best and worst quotes being reversed sometimes.",
"pr": 2406
},
{
"note": "Fix rounding of quoted asset amounts.",
"pr": 2406
},
{
"note": "Undo bridge slippage in best case quote calculation.",
"pr": 2406
},
{
"note": "Compare equivalent asset data when validating quotes and checking fee asset data.",
"pr": 2421
}
],
"timestamp": 1578272714
},
{
"version": "3.0.2",
"changes": [
{
"note": "Fix gasPrice from `ethgasstation` to be in WEI instead of GWEI",
"pr": 2393
},
{
"note": "Add aggregator utils",
"pr": 2353
}
],
"timestamp": 1576540892
},
{
"timestamp": 1575931811,
"version": "3.0.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "3.0.0",
"changes": [
{
"note": "Refactor of logic for marketBuy/marketSell order pruning and selecting, introduced protocol fees, and refactored types used by the package",
"pr": 2272
},
{
"note": "Incorporate paying protocol fees.",
"pr": 2350
},
{
"note": "Update BigNumber version to ~9.0.0",
"pr": 2342
},
{
"note": "All references to network ID have been removed, and references to chain ID have been introduced instead",
"pr": 2313
}
],
"timestamp": 1575296764
},
{
"version": "2.1.0-beta.4",
"changes": [
{
"note": "Dependencies updated"
}
],
"timestamp": 1575290197
},
{
"version": "2.1.0-beta.3",
"changes": [
{
"note": "Refactor of logic for marketBuy/marketSell order pruning and selecting, introduced protocol fees, and refactored types used by the package",
"pr": 2272
},
{
"note": "Incorporate paying protocol fees.",
"pr": 2350
}
],
"timestamp": 1574238768
},
{
"version": "2.1.0-beta.2",
"changes": [
{
"note": "Update BigNumber version to ~9.0.0",
"pr": 2342
}
],
"timestamp": 1573159180
},
{
"version": "2.1.0-beta.1",
"changes": [
{
"note": "All references to network ID have been removed, and references to chain ID have been introduced instead",
"pr": 2313
}
],
"timestamp": 1573159180
},
{
"version": "2.1.0-beta.0",
"changes": [
{
"note": "Dependencies updated"
}
],
"timestamp": 1570135330
},
{
"version": "2.0.0",
"changes": [
{
"note": "AssetSwapper to use `@0x/orderbook` to fetch and subscribe to order updates",
"pr": 2056
}
],
"timestamp": 1568744790
},
{
"timestamp": 1567521715,
"version": "1.0.3",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1566446343,
"version": "1.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1565296576,
"version": "1.0.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "1.0.0",
"changes": [
{
"note": "Added optimization utils to consumer output",
"pr": 1988
},
{
"note": "Expanded test coverage",
"pr": 1980
}
],
"timestamp": 1564604963
},
{
"timestamp": 1563957393,
"version": "0.0.5",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1563193019,
"version": "0.0.4",
"changes": [
{
"note": "Switched MarketOperation type to enum and expanded default constants configuration",
"pr": 1959
},
{
"note": "Added additional options to control asset-swapper behavior and optimized consumer output",
"pr": 1966
}
]
},
{
"timestamp": 1563047529,
"version": "0.0.3",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1563006338,
"version": "0.0.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "0.0.1",
"changes": [
{
"note": "Refactored asset-buyer into asset-swapper to support ERC<>ERC marketSell and marketBuy operations",
"pr": 1845
}
]
}
]