[ { "timestamp": 1605302002, "version": "3.2.14", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1604385937, "version": "3.2.13", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1604376968, "version": "3.2.12", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1604355662, "version": "3.2.11", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1603851023, "version": "3.2.10", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1603833198, "version": "3.2.9", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1603265572, "version": "3.2.8", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1594788383, "version": "3.2.7", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1592969527, "version": "3.2.6", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1583220306, "version": "3.2.5", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1582837861, "version": "3.2.4", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1582677073, "version": "3.2.3", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1582623685, "version": "3.2.2", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1581748629, "version": "3.2.1", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "3.2.0", "changes": [ { "note": "Flip `LibExchangeRichErrorDecoder` to an actual library.", "pr": 2462 }, { "note": "Remove dependency on `DevUtils` for asset data encoding/decoding", "pr": 2462 } ], "timestamp": 1581204851 }, { "timestamp": 1580988106, "version": "3.1.2", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1580811564, "version": "3.1.1", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "3.1.0", "changes": [ { "note": "Uses updated event decoding to properly decodes arrays and objects.", "pr": 2443 } ], "timestamp": 1579682890 }, { "timestamp": 1578272714, "version": "3.0.3", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1576540892, "version": "3.0.2", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1575931811, "version": "3.0.1", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "3.0.0", "changes": [ { "note": "Drastically reduced bundle size by adding .npmignore, only exporting specific artifacts/wrappers/utils", "pr": 2330 }, { "note": "Introduced new export ExchangeRevertErrors", "pr": 2321 }, { "note": "Round up in `marketBuyOrdersNoThrow()` so `marketBuyOrdersFillOrKill()` doesn't throw up.", "pr": 2338 }, { "note": "LocalBalanceStore.create and constructor now require an instance of DevUtilsContract", "pr": 2304 }, { "note": "In LocalBalanceStore, `transferAsset` is now `transferAssetAsync`", "pr": 2304 }, { "note": "Test utility classes AssetWrapper, MatchOrderTester, and OrderFactoryFromScenario constructors now require an instance of DevUtilsContract", "pr": 2304 }, { "note": "In OrderFactoryFromScenario, `generateOrder` is now `generateOrderAsync`", "pr": 2304 }, { "note": "Use new/cheaper reentrancy guard/mutex", "pr": 1699 }, { "note": "Update domain separator", "pr": 1742 }, { "note": "Refactor `executeTransaction` to take `ZeroExTransaction` struct as input", "pr": 1753 }, { "note": "Refactor example contracts that use `executeTransaction`", "pr": 1753 }, { "note": "Upgrade all string reverts to rich reverts", "pr": 1761 }, { "note": "Add support for `SignatureType.OrderValidator` for orders", "pr": 1774 }, { "note": "Add support for `SignatureType.WalletOrderValidator` for orders", "pr": 1774 }, { "note": "Add a `bytes` return value to `executeTransaction`, which is equal to the encoded return data of the underlying Exchange function call", "pr": 1793 }, { "note": "Implement `batchExecuteTransactions`", "pr": 1793 }, { "note": "Refactor preSign to be compatible with `executeTransaction`", "pr": 1793 }, { "note": "Remove ZRX fees in lieu of arbitrary maker and taker fee tokens.", "pr": 1819 }, { "note": "Incorporate Multi-asset and ERC1155 tests into `fillOrder` and `matchOrders` tests", "pr": 1819 }, { "note": "Swap fill order from maker -> taker to taker -> maker", "pr": 1819 }, { "note": "Avoid redundant transfer in `fillOrder()` and `matchOrders()` when maker/taker is the same as feeRecipient and assets are the same", "pr": 1819 }, { "note": "Implement `cancelOrderNoThrow` and `batchCancelOrdersNoThrow` functions", "pr": 1827 }, { "note": "`executeTransaction` will now revert if the input transaction is expired", "pr": 1832 }, { "note": "Log an `TransactionExecuted` event when an `executeTransaction` call is successful", "pr": 1832 }, { "note": "Return a FillResults array for batch fill variants", "pr": 1834 }, { "note": "Add `MixinTransferSimulator` contract for simulating multiple transfers on-chain", "pr": 1868 }, { "note": "Add `EIP1271Wallet` signature type", "pr": 1885 }, { "note": "Remove `WalletOrderValidator` and `OrderValidator` signature types", "pr": 1885 }, { "note": "Make the regular `Validator` signature type have EIP1271 behavior", "pr": 1885 }, { "note": "Always check signature types that are validated via contract (not just on first fill).", "pr": 1885 }, { "note": "Remove unecessary rich revert error types.", "pr": 1885 }, { "note": "Add `IEIP1271Wallet` interface", "pr": 1885 }, { "note": "Add `validatorAddress` field to `SignatureValidatorError` rich reverts", "pr": 1885 }, { "note": "Make `calculateMatchedFillResults` public", "pr": 1885 }, { "note": "Updated RichErrors to the library pattern", "pr": 1913 }, { "note": "Rewrote _dispatchTransferFrom in Solidity", "pr": 2020 }, { "note": "Add `TestIsolatedExchange` contract and `IsolatedExchangeWrapper` test class", "pr": 2031 }, { "note": "Add `ReferenceFunctions` as package export.", "pr": 2031 }, { "note": "Remove `TestExchangeMath.sol`. Exchange math functions are now tested in the `exchange-libs` package and reference implementations are available there as well.", "pr": 2031 }, { "note": "Remove functions from `TestExchangeInternals.sol` that are no longer tested in this package.", "pr": 2031 }, { "note": "Remove `_assertValidFill()`", "pr": 2031 }, { "note": "Add `wrapper_unit_tests` tests and `TestWrapperFunctions` contract", "pr": 2042 }, { "note": "Disallow `signerAddress == 0` in signature validation functions.", "pr": 2042 }, { "note": "Update `Wallet` signature type behavior to be in line with v2.1.", "pr": 2042 }, { "note": "Add (semi) automated reentrancy tests and remove manual ones", "pr": 2042 }, { "note": "Refactor to use new `LibFillResults`, `LibOrder`, `LibZeroExTransaction`, and `LibMath` to libraries", "pr": 2055 }, { "note": "Remove `LibExchangeRichErrors` and `IExchangeRichErrors`", "pr": 2055 }, { "note": "Use built in selectors instead of `LibExchangeSelectors` constants", "pr": 2055 }, { "note": "Move `calculateFillResults` and `calculateMatchedFillResults` to `LibFillResults` in `exchange-libs` package", "pr": 2055 }, { "note": "Compile and export all contracts, artifacts, and wrappers by default", "pr": 2055 }, { "note": "Rename `marketSellOrders` and `marketBuyOrders` back to `marketSellOrdersNoThrow` and `marketBuyOrdersNoThrow`.", "pr": 2075 }, { "note": "Introduce new `marketSellOrdersFillOrKill` and `marketBuyOrdersFillOrKill` functions.", "pr": 2075 }, { "note": "Use `abi.decode()` in `LibExchangeRichErrorDecoder` over `LibBytes`.", "pr": 2075 }, { "note": "Overridden functions in `ReentrancyTester` now return sane values.", "pr": 2075 } ], "timestamp": 1575296764 }, { "version": "2.2.0-beta.4", "changes": [ { "note": "Dependencies updated" } ], "timestamp": 1575290197 }, { "version": "2.2.0-beta.3", "changes": [ { "note": "Dependencies updated" } ], "timestamp": 1574238768 }, { "version": "2.2.0-beta.2", "changes": [ { "note": "Drastically reduced bundle size by adding .npmignore, only exporting specific artifacts/wrappers/utils", "pr": 2330 }, { "note": "Introduced new export ExchangeRevertErrors", "pr": 2321 }, { "note": "Round up in `marketBuyOrdersNoThrow()` so `marketBuyOrdersFillOrKill()` doesn't throw up.", "pr": 2338 } ], "timestamp": 1574030254 }, { "version": "2.2.0-beta.1", "changes": [ { "note": "LocalBalanceStore.create and constructor now require an instance of DevUtilsContract", "pr": 2304 }, { "note": "In LocalBalanceStore, `transferAsset` is now `transferAssetAsync`", "pr": 2304 }, { "note": "Test utility classes AssetWrapper, MatchOrderTester, and OrderFactoryFromScenario constructors now require an instance of DevUtilsContract", "pr": 2304 }, { "note": "In OrderFactoryFromScenario, `generateOrder` is now `generateOrderAsync`", "pr": 2304 } ], "timestamp": 1573159180 }, { "version": "2.2.0-beta.0", "changes": [ { "note": "Use new/cheaper reentrancy guard/mutex", "pr": 1699 }, { "note": "Update domain separator", "pr": 1742 }, { "note": "Refactor `executeTransaction` to take `ZeroExTransaction` struct as input", "pr": 1753 }, { "note": "Refactor example contracts that use `executeTransaction`", "pr": 1753 }, { "note": "Upgrade all string reverts to rich reverts", "pr": 1761 }, { "note": "Add support for `SignatureType.OrderValidator` for orders", "pr": 1774 }, { "note": "Add support for `SignatureType.WalletOrderValidator` for orders", "pr": 1774 }, { "note": "Add a `bytes` return value to `executeTransaction`, which is equal to the encoded return data of the underlying Exchange function call", "pr": 1793 }, { "note": "Implement `batchExecuteTransactions`", "pr": 1793 }, { "note": "Refactor preSign to be compatible with `executeTransaction`", "pr": 1793 }, { "note": "Remove ZRX fees in lieu of arbitrary maker and taker fee tokens.", "pr": 1819 }, { "note": "Incorporate Multi-asset and ERC1155 tests into `fillOrder` and `matchOrders` tests", "pr": 1819 }, { "note": "Swap fill order from maker -> taker to taker -> maker", "pr": 1819 }, { "note": "Avoid redundant transfer in `fillOrder()` and `matchOrders()` when maker/taker is the same as feeRecipient and assets are the same", "pr": 1819 }, { "note": "Implement `cancelOrderNoThrow` and `batchCancelOrdersNoThrow` functions", "pr": 1827 }, { "note": "`executeTransaction` will now revert if the input transaction is expired", "pr": 1832 }, { "note": "Log an `TransactionExecuted` event when an `executeTransaction` call is successful", "pr": 1832 }, { "note": "Return a FillResults array for batch fill variants", "pr": 1834 }, { "note": "Add `MixinTransferSimulator` contract for simulating multiple transfers on-chain", "pr": 1868 }, { "note": "Add `EIP1271Wallet` signature type", "pr": 1885 }, { "note": "Remove `WalletOrderValidator` and `OrderValidator` signature types", "pr": 1885 }, { "note": "Make the regular `Validator` signature type have EIP1271 behavior", "pr": 1885 }, { "note": "Always check signature types that are validated via contract (not just on first fill).", "pr": 1885 }, { "note": "Remove unecessary rich revert error types.", "pr": 1885 }, { "note": "Add `IEIP1271Wallet` interface", "pr": 1885 }, { "note": "Add `validatorAddress` field to `SignatureValidatorError` rich reverts", "pr": 1885 }, { "note": "Make `calculateMatchedFillResults` public", "pr": 1885 }, { "note": "Updated RichErrors to the library pattern", "pr": 1913 }, { "note": "Rewrote _dispatchTransferFrom in Solidity", "pr": 2020 }, { "note": "Add `TestIsolatedExchange` contract and `IsolatedExchangeWrapper` test class", "pr": 2031 }, { "note": "Add `ReferenceFunctions` as package export.", "pr": 2031 }, { "note": "Remove `TestExchangeMath.sol`. Exchange math functions are now tested in the `exchange-libs` package and reference implementations are available there as well.", "pr": 2031 }, { "note": "Remove functions from `TestExchangeInternals.sol` that are no longer tested in this package.", "pr": 2031 }, { "note": "Remove `_assertValidFill()`", "pr": 2031 }, { "note": "Add `wrapper_unit_tests` tests and `TestWrapperFunctions` contract", "pr": 2042 }, { "note": "Disallow `signerAddress == 0` in signature validation functions.", "pr": 2042 }, { "note": "Update `Wallet` signature type behavior to be in line with v2.1.", "pr": 2042 }, { "note": "Add (semi) automated reentrancy tests and remove manual ones", "pr": 2042 }, { "note": "Refactor to use new `LibFillResults`, `LibOrder`, `LibZeroExTransaction`, and `LibMath` to libraries", "pr": 2055 }, { "note": "Remove `LibExchangeRichErrors` and `IExchangeRichErrors`", "pr": 2055 }, { "note": "Use built in selectors instead of `LibExchangeSelectors` constants", "pr": 2055 }, { "note": "Move `calculateFillResults` and `calculateMatchedFillResults` to `LibFillResults` in `exchange-libs` package", "pr": 2055 }, { "note": "Compile and export all contracts, artifacts, and wrappers by default", "pr": 2055 }, { "note": "Rename `marketSellOrders` and `marketBuyOrders` back to `marketSellOrdersNoThrow` and `marketBuyOrdersNoThrow`.", "pr": 2075 }, { "note": "Introduce new `marketSellOrdersFillOrKill` and `marketBuyOrdersFillOrKill` functions.", "pr": 2075 }, { "note": "Use `abi.decode()` in `LibExchangeRichErrorDecoder` over `LibBytes`.", "pr": 2075 }, { "note": "Overridden functions in `ReentrancyTester` now return sane values.", "pr": 2075 } ], "timestamp": 1570135330 }, { "timestamp": 1568744790, "version": "2.1.14", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1567521715, "version": "2.1.13", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1566446343, "version": "2.1.12", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1565296576, "version": "2.1.11", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "2.1.10", "changes": [ { "note": "Updated calls to .deployFrom0xArtifactAsync to include artifact dependencies.", "pr": 1995 } ], "timestamp": 1564607468 }, { "timestamp": 1563957393, "version": "2.1.9", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1563193019, "version": "2.1.8", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1563047529, "version": "2.1.7", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1563006338, "version": "2.1.6", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1558712885, "version": "2.1.5", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1557961111, "version": "2.1.4", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1557799313, "version": "2.1.3", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1557507213, "version": "2.1.2", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "2.1.1", "changes": [ { "note": "Dependencies updated" } ], "timestamp": 1554997931 }, { "version": "2.1.0", "changes": [ { "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } ], "timestamp": 1553183790 }, { "version": "2.0.0", "changes": [ { "note": "Do not reexport external dependencies", "pr": 1682 }, { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 }, { "note": "Integration testing for ERC1155Proxy", "pr": 1673 } ], "timestamp": 1553091633 }, { "timestamp": 1551479279, "version": "1.0.9", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1551299797, "version": "1.0.8", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1551220833, "version": "1.0.7", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1551130135, "version": "1.0.6", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1549733923, "version": "1.0.5", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "1.0.4", "changes": [ { "note": "Dependencies updated" } ], "timestamp": 1549547375 }, { "version": "1.0.3", "changes": [ { "note": "Fake publish to enable pinning" } ], "timestamp": 1549504360 }, { "timestamp": 1549452781, "version": "1.0.2", "changes": [ { "note": "Dependencies updated" } ] }, { "timestamp": 1549373905, "version": "1.0.1", "changes": [ { "note": "Dependencies updated" } ] }, { "version": "1.0.0", "changes": [ { "note": "Move Exchange contract out of contracts-protocol to new package", "pr": 1539 }, { "note": "Move example contracts out of contracts-examples to new package", "pr": 1539 } ] } ]