[
    {
        "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
            }
        ],
        "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
            }
        ]
    }
]
