CHANGELOG
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Flip `LibExchangeRichErrorDecoder` to an actual library. (#2462)
* Remove dependency on `DevUtils` for asset data encoding/decoding (#2462)
* Dependencies updated
* Dependencies updated
* Uses updated event decoding to properly decodes arrays and objects. (#2443)
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Drastically reduced bundle size by adding .npmignore, only exporting specific artifacts/wrappers/utils (#2330)
* Introduced new export ExchangeRevertErrors (#2321)
* Round up in `marketBuyOrdersNoThrow()` so `marketBuyOrdersFillOrKill()` doesn't throw up. (#2338)
* LocalBalanceStore.create and constructor now require an instance of DevUtilsContract (#2304)
* In LocalBalanceStore, `transferAsset` is now `transferAssetAsync` (#2304)
* Test utility classes AssetWrapper, MatchOrderTester, and OrderFactoryFromScenario constructors now require an instance of DevUtilsContract (#2304)
* In OrderFactoryFromScenario, `generateOrder` is now `generateOrderAsync` (#2304)
* Use new/cheaper reentrancy guard/mutex (#1699)
* Update domain separator (#1742)
* Refactor `executeTransaction` to take `ZeroExTransaction` struct as input (#1753)
* Refactor example contracts that use `executeTransaction` (#1753)
* Upgrade all string reverts to rich reverts (#1761)
* Add support for `SignatureType.OrderValidator` for orders (#1774)
* Add support for `SignatureType.WalletOrderValidator` for orders (#1774)
* Add a `bytes` return value to `executeTransaction`, which is equal to the encoded return data of the underlying Exchange function call (#1793)
* Implement `batchExecuteTransactions` (#1793)
* Refactor preSign to be compatible with `executeTransaction` (#1793)
* Remove ZRX fees in lieu of arbitrary maker and taker fee tokens. (#1819)
* Incorporate Multi-asset and ERC1155 tests into `fillOrder` and `matchOrders` tests (#1819)
* Swap fill order from maker -> taker to taker -> maker (#1819)
* Avoid redundant transfer in `fillOrder()` and `matchOrders()` when maker/taker is the same as feeRecipient and assets are the same (#1819)
* Implement `cancelOrderNoThrow` and `batchCancelOrdersNoThrow` functions (#1827)
* `executeTransaction` will now revert if the input transaction is expired (#1832)
* Log an `TransactionExecuted` event when an `executeTransaction` call is successful (#1832)
* Return a FillResults array for batch fill variants (#1834)
* Add `MixinTransferSimulator` contract for simulating multiple transfers on-chain (#1868)
* Add `EIP1271Wallet` signature type (#1885)
* Remove `WalletOrderValidator` and `OrderValidator` signature types (#1885)
* Make the regular `Validator` signature type have EIP1271 behavior (#1885)
* Always check signature types that are validated via contract (not just on first fill). (#1885)
* Remove unecessary rich revert error types. (#1885)
* Add `IEIP1271Wallet` interface (#1885)
* Add `validatorAddress` field to `SignatureValidatorError` rich reverts (#1885)
* Make `calculateMatchedFillResults` public (#1885)
* Updated RichErrors to the library pattern (#1913)
* Rewrote _dispatchTransferFrom in Solidity (#2020)
* Add `TestIsolatedExchange` contract and `IsolatedExchangeWrapper` test class (#2031)
* Add `ReferenceFunctions` as package export. (#2031)
* Remove `TestExchangeMath.sol`. Exchange math functions are now tested in the `exchange-libs` package and reference implementations are available there as well. (#2031)
* Remove functions from `TestExchangeInternals.sol` that are no longer tested in this package. (#2031)
* Remove `_assertValidFill()` (#2031)
* Add `wrapper_unit_tests` tests and `TestWrapperFunctions` contract (#2042)
* Disallow `signerAddress == 0` in signature validation functions. (#2042)
* Update `Wallet` signature type behavior to be in line with v2.1. (#2042)
* Add (semi) automated reentrancy tests and remove manual ones (#2042)
* Refactor to use new `LibFillResults`, `LibOrder`, `LibZeroExTransaction`, and `LibMath` to libraries (#2055)
* Remove `LibExchangeRichErrors` and `IExchangeRichErrors` (#2055)
* Use built in selectors instead of `LibExchangeSelectors` constants (#2055)
* Move `calculateFillResults` and `calculateMatchedFillResults` to `LibFillResults` in `exchange-libs` package (#2055)
* Compile and export all contracts, artifacts, and wrappers by default (#2055)
* Rename `marketSellOrders` and `marketBuyOrders` back to `marketSellOrdersNoThrow` and `marketBuyOrdersNoThrow`. (#2075)
* Introduce new `marketSellOrdersFillOrKill` and `marketBuyOrdersFillOrKill` functions. (#2075)
* Use `abi.decode()` in `LibExchangeRichErrorDecoder` over `LibBytes`. (#2075)
* Overridden functions in `ReentrancyTester` now return sane values. (#2075)
* Dependencies updated
* Dependencies updated
* Drastically reduced bundle size by adding .npmignore, only exporting specific artifacts/wrappers/utils (#2330)
* Introduced new export ExchangeRevertErrors (#2321)
* Round up in `marketBuyOrdersNoThrow()` so `marketBuyOrdersFillOrKill()` doesn't throw up. (#2338)
* LocalBalanceStore.create and constructor now require an instance of DevUtilsContract (#2304)
* In LocalBalanceStore, `transferAsset` is now `transferAssetAsync` (#2304)
* Test utility classes AssetWrapper, MatchOrderTester, and OrderFactoryFromScenario constructors now require an instance of DevUtilsContract (#2304)
* In OrderFactoryFromScenario, `generateOrder` is now `generateOrderAsync` (#2304)
* Use new/cheaper reentrancy guard/mutex (#1699)
* Update domain separator (#1742)
* Refactor `executeTransaction` to take `ZeroExTransaction` struct as input (#1753)
* Refactor example contracts that use `executeTransaction` (#1753)
* Upgrade all string reverts to rich reverts (#1761)
* Add support for `SignatureType.OrderValidator` for orders (#1774)
* Add support for `SignatureType.WalletOrderValidator` for orders (#1774)
* Add a `bytes` return value to `executeTransaction`, which is equal to the encoded return data of the underlying Exchange function call (#1793)
* Implement `batchExecuteTransactions` (#1793)
* Refactor preSign to be compatible with `executeTransaction` (#1793)
* Remove ZRX fees in lieu of arbitrary maker and taker fee tokens. (#1819)
* Incorporate Multi-asset and ERC1155 tests into `fillOrder` and `matchOrders` tests (#1819)
* Swap fill order from maker -> taker to taker -> maker (#1819)
* Avoid redundant transfer in `fillOrder()` and `matchOrders()` when maker/taker is the same as feeRecipient and assets are the same (#1819)
* Implement `cancelOrderNoThrow` and `batchCancelOrdersNoThrow` functions (#1827)
* `executeTransaction` will now revert if the input transaction is expired (#1832)
* Log an `TransactionExecuted` event when an `executeTransaction` call is successful (#1832)
* Return a FillResults array for batch fill variants (#1834)
* Add `MixinTransferSimulator` contract for simulating multiple transfers on-chain (#1868)
* Add `EIP1271Wallet` signature type (#1885)
* Remove `WalletOrderValidator` and `OrderValidator` signature types (#1885)
* Make the regular `Validator` signature type have EIP1271 behavior (#1885)
* Always check signature types that are validated via contract (not just on first fill). (#1885)
* Remove unecessary rich revert error types. (#1885)
* Add `IEIP1271Wallet` interface (#1885)
* Add `validatorAddress` field to `SignatureValidatorError` rich reverts (#1885)
* Make `calculateMatchedFillResults` public (#1885)
* Updated RichErrors to the library pattern (#1913)
* Rewrote _dispatchTransferFrom in Solidity (#2020)
* Add `TestIsolatedExchange` contract and `IsolatedExchangeWrapper` test class (#2031)
* Add `ReferenceFunctions` as package export. (#2031)
* Remove `TestExchangeMath.sol`. Exchange math functions are now tested in the `exchange-libs` package and reference implementations are available there as well. (#2031)
* Remove functions from `TestExchangeInternals.sol` that are no longer tested in this package. (#2031)
* Remove `_assertValidFill()` (#2031)
* Add `wrapper_unit_tests` tests and `TestWrapperFunctions` contract (#2042)
* Disallow `signerAddress == 0` in signature validation functions. (#2042)
* Update `Wallet` signature type behavior to be in line with v2.1. (#2042)
* Add (semi) automated reentrancy tests and remove manual ones (#2042)
* Refactor to use new `LibFillResults`, `LibOrder`, `LibZeroExTransaction`, and `LibMath` to libraries (#2055)
* Remove `LibExchangeRichErrors` and `IExchangeRichErrors` (#2055)
* Use built in selectors instead of `LibExchangeSelectors` constants (#2055)
* Move `calculateFillResults` and `calculateMatchedFillResults` to `LibFillResults` in `exchange-libs` package (#2055)
* Compile and export all contracts, artifacts, and wrappers by default (#2055)
* Rename `marketSellOrders` and `marketBuyOrders` back to `marketSellOrdersNoThrow` and `marketBuyOrdersNoThrow`. (#2075)
* Introduce new `marketSellOrdersFillOrKill` and `marketBuyOrdersFillOrKill` functions. (#2075)
* Use `abi.decode()` in `LibExchangeRichErrorDecoder` over `LibBytes`. (#2075)
* Overridden functions in `ReentrancyTester` now return sane values. (#2075)
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Updated calls to <contract wrapper>.deployFrom0xArtifactAsync to include artifact dependencies. (#1995)
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Run Web3ProviderEngine without excess block polling (#1695)
* Do not reexport external dependencies (#1682)
* Upgrade contracts to Solidity 0.5.5 (#1682)
* Integration testing for ERC1155Proxy (#1673)
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Dependencies updated
* Fake publish to enable pinning
* Dependencies updated
* Dependencies updated
* Move Exchange contract out of contracts-protocol to new package (#1539)
* Move example contracts out of contracts-examples to new package (#1539)