[ { "version": "0.34.0", "changes": [ { "note": "Fix the bug causing `zeroEx.exchange.fillOrdersUpToAsync` validation to fail if there were some extra orders passed", "pr": "470" } ] }, { "version": "0.33.2", "changes": [ { "note": "Consolidate all `console.log` calls into `logUtils` in the `@0xproject/utils` package", "pr": "452" }, { "note": "Consolidate `Order`, `SignedOrder`, and `ECSignature` into the `@0xproject/types` package", "pr": "456" } ], "timestamp": 1521327600, "isPublished": true }, { "version": "0.33.1", "changes": [ { "note": "Add missing EthersJs typescript typings as dependency" } ], "timestamp": 1520463600, "isPublished": true }, { "version": "0.33.0", "changes": [ { "note": "Validate and lowercase all addresses in public methods", "pr": "373" }, { "note": "Improve validation to force passing contract addresses on private networks", "pr": "385" }, { "note": "Change `LogErrorContractEventArgs.errorId` type from `BigNumber` to `number`", "pr": "413" }, { "note": "Rename all public `_unsubscribeAll` methods to `unsubscribeAll`", "pr": "415" }, { "note": "Move web3 typings from devDep to dep since cannot use this package without it", "pr": "429" } ], "timestamp": 1520118000, "isPublished": true }, { "version": "0.32.2", "changes": [ { "note": "Fix publishing issue where .npmignore was not properly excluding undesired content", "pr": "389" } ], "timestamp": 1518130800, "isPublished": true }, { "version": "0.32.1", "changes": [ { "note": "Reorganized `BlockParamLiteral` export into `@0xproject/types` package", "pr": "355" }, { "note": "Now using `abi-gen` package to generate ContractEventArgs types", "pr": "371" } ], "timestamp": 1517958000, "isPublished": true }, { "version": "0.32.0", "changes": [ { "note": "Add `zeroEx.etherToken.getContractAddressIfExists`", "pr": "350" }, { "note": "Fixed the bug causing order watcher to throw if there is an event with the same signature but different indexed fields", "pr": "366" } ], "timestamp": 1517785200, "isPublished": true }, { "version": "0.31.1", "changes": [ { "note": "Fix the bug causing order watcher to throw if makerToken === zrx", "pr": "357" } ], "timestamp": 1517439600, "isPublished": true }, { "version": "0.31.0", "changes": [ { "note": "Add the `shouldAddPersonalMessagePrefix` parameter to `signOrderHashAsync` so that the" } ], "timestamp": 1517266800, "isPublished": true }, { "version": "0.30.2", "changes": [ { "note": "Add Rinkeby testnet addresses to artifacts ", "pr": "337" }, { "note": "Move @0xproject/types to dependencies from devDependencies fixing missing type errors" } ], "timestamp": 1517180400, "isPublished": true }, { "version": "0.30.1", "changes": [ { "note": "Fix a bug allowing negative fill values ", "pr": "212" }, { "note": "Fix a bug that made it impossible to pass a custom ZRX address ", "pr": "341" } ], "timestamp": 1516748400, "isPublished": true }, { "version": "0.30.0", "changes": [ { "note": "Add an error parameter to the order watcher callback", "pr": "312" }, { "note": "Fix a bug making it impossible to catch some errors from awaitTransactionMinedAsync", "pr": "312" }, { "note": "Fix a bug in fillOrdersUpTo validation making it impossible to fill up to if user doesn't have enough balance to fully fill all the orders", "pr": "321" } ], "timestamp": 1516143600, "isPublished": true }, { "version": "0.29.1", "changes": [ { "note": "Fixed bignumber config issue #301", "pr": "305" } ], "timestamp": 1515625200, "isPublished": true }, { "version": "0.29.0", "changes": [ { "note": "Assert baseUnit amount supplied to `toUnitAmount` is integer amount.", "pr": "287" }, { "note": "`toBaseUnitAmount` throws if amount supplied has too many decimals", "pr": "287" } ], "timestamp": 1514415600, "isPublished": true }, { "version": "0.28.0", "changes": [ { "note": "Add `etherTokenAddress` arg to `depositAsync` and `withdrawAsync` methods on `zeroEx.etherToken`", "pr": "267" }, { "note": "Removed accidentally included `unsubscribeAll` method from `zeroEx.proxy`, `zeroEx.etherToken` and `zeroEx.tokenRegistry`", "pr": "267" }, { "note": "Removed `etherTokenContractAddress` from `ZeroEx` constructor arg `ZeroExConfig`", "pr": "267" }, { "note": "Rename `SubscriptionOpts` to `BlockRange`", "pr": "272" }, { "note": "Add `zeroEx.etherToken.subscribe`, `zeroEx.etherToken.unsubscribe`, `zeroEx.etherToken.unsubscribeAll`", "pr": "277" }, { "note": "Add `zeroEx.etherToken.getLogsAsync`", "pr": "277" }, { "note": "Add new public types `BlockParamLiteral`, `EtherTokenEvents`, `EtherTokenContractEventArgs`, `DepositContractEventArgs`, `WithdrawalContractEventArgs`", "pr": "277" }, { "note": "Support `Deposit` and `Withdraw` events on etherToken", "pr": "277" }, { "note": "Improve the error message when taker is not a string", "pr": "278" } ], "timestamp": 1513724400, "isPublished": true }, { "version": "0.27.1", "changes": [ { "note": "Export `TransactionOpts` type" } ], "timestamp": 1511823600, "isPublished": true }, { "version": "0.27.0", "changes": [ { "note": "Make `ZeroExConfig` required parameter of `ZeroEx` constructor", "pr": "233" }, { "note": "Add a required property `networkId` to `ZeroExConfig`", "pr": "233" }, { "note": "Make all `getContractAddress` functions, `zeroEx.exchange.subscribe`, `zeroEx.exchange.getZRXTokenAddress` sync", "pr": "233" }, { "note": "Remove `ZeroExError.ContractNotFound` and replace it with contract-specific errors", "pr": "233" }, { "note": "Make `DecodedLogEvent` contain `LogWithDecodedArgs` under log key instead of merging it in like web3 does", "pr": "234" }, { "note": "Rename `removed` to `isRemoved` in `DecodedLogEvent`", "pr": "234" }, { "note": "Add config allowing to specify gasPrice and gasLimit for every transaction sending method", "pr": "235" }, { "note": "All transaction sending methods now call `estimateGas` if no gas amount was supplied", "pr": "235" }, { "note": "Modify order validation methods to validate against the `latest` block, not against the `pending` block", "pr": "236" } ], "timestamp": 1511823600, "isPublished": true }, { "version": "0.26.0", "changes": [ { "note": "Add post-formatter for logs converting `blockNumber`, `logIndex`, `transactionIndex` from hexes to numbers", "pr": "231" }, { "note": "Remove support for Async callback types when used in Subscribe functions", "pr": "222" }, { "note": "In OrderWatcher subscribe to ZRX Token Transfer and Approval events when maker token is different", "pr": "225" } ], "timestamp": 1511218800, "isPublished": true }, { "version": "0.25.1", "changes": [ { "note": "Standardise on Cancelled over Canceled", "pr": "217" }, { "note": "Add missing `DecodedLogEvent` type to exported types", "pr": "205" }, { "note": "Normalized the transactionReceipt status to be `null|0|1`, 1 meaning transaction execution successful, 0 unsuccessful and `null` if it is a pre-byzantinium transaction.", "pr": "200" } ], "timestamp": 1510527600, "isPublished": true }, { "version": "0.23.0", "changes": [ { "note": "Fixed unhandled promise rejection error in subscribe methods", "pr": "209" }, { "note": "Subscribe callbacks now receive an error object as their first argument" } ], "timestamp": 1510441200, "isPublished": true }, { "version": "0.22.6", "changes": [ { "note": "Add a timeout parameter to transaction awaiting", "pr": "206" } ], "timestamp": 1510268400, "isPublished": true }, { "version": "0.22.5", "changes": [ { "note": "Re-publish v0.22.4 to fix publishing issue" } ], "timestamp": 1510009200, "isPublished": true }, { "version": "0.22.4", "changes": [ { "note": "Upgraded bignumber.js to a new version that ships with native typings" } ], "timestamp": 1508882400, "isPublished": true }, { "version": "0.22.3", "changes": [ { "note": "Fixed an issue with new version of testrpc and unlimited proxy allowance", "pr": "199" } ], "timestamp": 1508882400, "isPublished": true }, { "version": "0.22.2", "changes": [ { "note": "Fixed rounding of maker fill amount and incorrect validation of partial fees", "pr": "197" } ], "timestamp": 1508796000, "isPublished": true }, { "version": "0.22.0", "changes": [ { "note": "Started using `OrderFillRequest` interface instead of `OrderFillOrKillRequest` interface for `zeroEx.exchange.batchFillOrKill`", "pr": "187" }, { "note": "Removed `OrderFillOrKillRequest`", "pr": "187" } ], "timestamp": 1508104800, "isPublished": true }, { "version": "0.21.4", "changes": [ { "note": "Made 0x.js more type-safe by making `getLogsAsync` and `subscribe/subscribeAsync` generics parametrized with arg type", "pr": "194" } ], "timestamp": 1507845600, "isPublished": true }, { "version": "0.21.3", "changes": [ { "note": "Fixed a bug causing order fills to throw `INSUFFICIENT_TAKER_ALLOWANCE`", "pr": "193" } ], "timestamp": 1507759200, "isPublished": true }, { "version": "0.21.2", "changes": [ { "note": "Exported `ContractEventArg` as a public type", "pr": "190" } ], "timestamp": 1507672800, "isPublished": true }, { "version": "0.21.1", "changes": [ { "note": "Fixed a bug in subscriptions", "pr": "189" } ], "timestamp": 1507672800, "isPublished": true }, { "version": "0.21.0", "changes": [ { "note": "Complete rewrite of subscription logic", "pr": "182" }, { "note": "Subscriptions no longer return historical logs. If you want them - use `getLogsAsync`" }, { "note": "Subscriptions now use [ethereumjs-blockstream](https://github.com/ethereumjs/ethereumjs-blockstream) under the hood" }, { "note": "Subscriptions correctly handle block re-orgs (forks)" }, { "note": "Subscriptions correctly backfill logs (connection problems)" }, { "note": "They no longer setup filters on the underlying nodes, so you can use them with infura without a filter Subprovider" }, { "note": "Removed `ContractEventEmitter` and added `LogEvent`" }, { "note": "Renamed `zeroEx.token.subscribeAsync` to `zeroEx.token.subscribe`" }, { "note": "Added `zeroEx.token.unsubscribe` and `zeroEx.exchange.unsubscribe`" }, { "note": "Renamed `zeroEx.exchange.stopWatchingAllEventsAsync` to `zeroEx.exhange.unsubscribeAll`" }, { "note": "Renamed `zeroEx.token.stopWatchingAllEventsAsync` to `zeroEx.token.unsubscribeAll`" }, { "note": "Fixed the batch fills validation by emulating all balance & proxy allowance changes", "pr": "185" } ], "timestamp": 1507586400, "isPublished": true }, { "version": "0.20.0", "changes": [ { "note": "Add `zeroEx.token.getLogsAsync`", "pr": "178" }, { "note": "Add `zeroEx.exchange.getLogsAsync`", "pr": "178" }, { "note": "Fixed fees validation when one of the tokens transferred is ZRX", "pr": "181" } ], "timestamp": 1507154400, "isPublished": true }, { "version": "0.19.0", "changes": [ { "note": "Made order validation optional ", "pr": "172" }, { "note": "Added Ropsten testnet support", "pr": "173" }, { "note": "Fixed a bug causing awaitTransactionMinedAsync to DDos backend nodes", "pr": "175" } ], "timestamp": 1506636000, "isPublished": true }, { "version": "0.18.0", "changes": [ { "note": "Added `zeroEx.exchange.validateOrderFillableOrThrowAsync` to simplify orderbook pruning", "pr": "170" } ], "timestamp": 1506376800, "isPublished": true }, { "version": "0.17.0", "changes": [ { "note": "Made `zeroEx.exchange.getZRXTokenAddressAsync` public", "pr": "171" } ], "timestamp": 1506376800, "isPublished": true }, { "version": "0.16.0", "changes": [ { "note": "Added the ability to specify custom contract addresses to be used with 0x.js", "pr": "165" }, { "note": "ZeroExConfig.exchangeContractAddress" }, { "note": "ZeroExConfig.tokenRegistryContractAddress" }, { "note": "ZeroExConfig.etherTokenContractAddress" }, { "note": "Added `zeroEx.tokenRegistry.getContractAddressAsync`", "pr": "165" } ], "timestamp": 1505858400, "isPublished": true }, { "version": "0.15.0", "changes": [ { "note": "Added the ability to specify a historical `blockNumber` at which to query the blockchain's state when calling a token or exchange method", "pr": "161" } ], "timestamp": 1504821600, "isPublished": true }, { "version": "0.14.2", "changes": [ { "note": "Fixed an issue with bignumber.js types not found", "pr": "160" } ], "timestamp": 1504735200, "isPublished": true }, { "version": "0.14.1", "changes": [ { "note": "Fixed an issue with Artifact type not found", "pr": "159" } ], "timestamp": 1504735200, "isPublished": true }, { "version": "0.14.0", "changes": [ { "note": "Added `zeroEx.exchange.throwLogErrorsAsErrors` method to public interface", "pr": "157" }, { "note": "Fixed an issue with overlapping async intervals in `zeroEx.awaitTransactionMinedAsync`", "pr": "157" }, { "note": "Fixed an issue with log decoder returning `BigNumber`s as `strings`", "pr": "157" } ], "timestamp": 1504648800, "isPublished": true }, { "version": "0.13.0", "changes": [ { "note": "Made all the functions submitting transactions to the network to immediately return transaction hash", "pr": "151" }, { "note": "Added `zeroEx.awaitTransactionMinedAsync`", "pr": "151" }, { "note": "Added `TransactionReceiptWithDecodedLogs`, `LogWithDecodedArgs`, `DecodedLogArgs` to public types", "pr": "151" }, { "note": "Added signature validation to `validateFillOrderThrowIfInvalidAsync`", "pr": "152" } ], "timestamp": 1504648800, "isPublished": true }, { "version": "0.12.1", "changes": [ { "note": "Added the support for web3@1.x.x provider", "pr": "142" }, { "note": "Added the optional `zeroExConfig` parameter to the constructor of `ZeroEx`", "pr": "139" }, { "note": "Added the ability to specify `gasPrice` when instantiating `ZeroEx`", "pr": "139" } ], "timestamp": 1504303200, "isPublished": true }, { "version": "0.11.0", "changes": [ { "note": "Added `zeroEx.token.setUnlimitedProxyAllowanceAsync`", "pr": "137" }, { "note": "Added `zeroEx.token.setUnlimitedAllowanceAsync`", "pr": "137" }, { "note": "Added `zeroEx.token.UNLIMITED_ALLOWANCE_IN_BASE_UNITS`", "pr": "137" } ], "timestamp": 1503525600, "isPublished": true }, { "version": "0.10.4", "changes": [ { "note": "Fixed a bug where checksummed addresses were being pulled from artifacts and not lower-cased.", "pr": "135" } ], "timestamp": 1503525600, "isPublished": true }, { "version": "0.10.1", "changes": [ { "note": "Added `zeroEx.exchange.validateFillOrderThrowIfInvalidAsync`", "pr": "128" }, { "note": "Added `zeroEx.exchange.validateFillOrKillOrderThrowIfInvalidAsync`", "pr": "128" }, { "note": "Added `zeroEx.exchange.validateCancelOrderThrowIfInvalidAsync`", "pr": "128" }, { "note": "Added `zeroEx.exchange.isRoundingErrorAsync`", "pr": "128" }, { "note": "Added `zeroEx.proxy.getContractAddressAsync`", "pr": "130" }, { "note": "Added `zeroEx.tokenRegistry.getTokenAddressesAsync`", "pr": "132" }, { "note": "Added `zeroEx.tokenRegistry.getTokenAddressBySymbolIfExistsAsync`", "pr": "132" }, { "note": "Added `zeroEx.tokenRegistry.getTokenAddressByNameIfExistsAsync`", "pr": "132" }, { "note": "Added `zeroEx.tokenRegistry.getTokenBySymbolIfExistsAsync`", "pr": "132" }, { "note": "Added `zeroEx.tokenRegistry.getTokenByNameIfExistsAsync`", "pr": "132" }, { "note": "Added clear error message when checksummed address is passed to a public method", "pr": "124" }, { "note": "Fixes the description of `shouldThrowOnInsufficientBalanceOrAllowance` in docs", "pr": "127" } ], "timestamp": 1503525600, "isPublished": true }, { "version": "0.9.3", "changes": [ { "note": "Update contract artifacts to include latest Kovan and Mainnet deploys", "pr": "118" } ], "timestamp": 1503352800, "isPublished": true }, { "version": "0.9.2", "changes": [ { "note": "*This version was unpublished because of a publishing issue.*" }, { "note": "Update contract artifacts to include latest Kovan and Mainnet deploys", "pr": "118" } ], "timestamp": 1503266400, "isPublished": true }, { "version": "0.9.1", "changes": [ { "note": "Fixed the bug causing `zeroEx.token.getBalanceAsync()` to fail if no addresses available", "pr": "120" } ], "timestamp": 1502834400, "isPublished": true }, { "version": "0.9.0", "changes": [ { "note": "Migrated to the new version of smart contracts", "pr": "101" }, { "note": "Removed the ability to call methods on multiple authorized Exchange smart contracts", "pr": "106" }, { "note": "Made `zeroEx.getOrderHashHex` a static method", "pr": "107" }, { "note": "Cached `net_version` requests and invalidate the cache on calls to `setProvider`", "pr": "95" }, { "note": "Renamed `zeroEx.exchange.batchCancelOrderAsync` to `zeroEx.exchange.batchCancelOrdersAsync`" }, { "note": "Renamed `zeroEx.exchange.batchFillOrderAsync` to `zeroEx.exchange.batchFillOrdersAsync`" }, { "note": "Updated to typescript v2.4", "pr": "104" }, { "note": "Fixed an issue with incorrect balance/allowance validation when ZRX is one of the tokens traded", "pr": "109" } ], "timestamp": 1501020000, "isPublished": true }, { "version": "0.8.0", "changes": [ { "note": "Added the ability to call methods on different authorized versions of the Exchange smart contract", "pr": "82" }, { "note": "Updated contract artifacts to reflect latest changes to the smart contracts (0xproject/contracts#59)" }, { "note": "Added `zeroEx.proxy.isAuthorizedAsync` and `zeroEx.proxy.getAuthorizedAddressesAsync`", "pr": "89" }, { "note": "Added `zeroEx.token.subscribeAsync`", "pr": "90" }, { "note": "Made contract invalidation functions private", "pr": "90" }, { "note": "`zeroEx.token.invalidateContractInstancesAsync`" }, { "note": "`zeroEx.exchange.invalidateContractInstancesAsync`" }, { "note": "`zeroEx.proxy.invalidateContractInstance`" }, { "note": "`zeroEx.tokenRegistry.invalidateContractInstance`" }, { "note": "Fixed the bug where `zeroEx.setProviderAsync` didn't invalidate etherToken contract's instance" } ], "timestamp": 1499119200, "isPublished": true }, { "version": "0.7.1", "changes": [ { "note": "Added the ability to convert Ether to wrapped Ether tokens and back via `zeroEx.etherToken.depostAsync` and `zeroEx.etherToken.withdrawAsync`", "pr": "81" } ], "timestamp": 1498428000, "isPublished": true }, { "version": "0.7.0", "changes": [ { "note": "Added Kovan smart contract artifacts", "pr": "78" }, { "note": "Started returning fillAmount from `fillOrderAsync` and `fillUpToAsync`", "pr": "72" }, { "note": "Started returning cancelledAmount from `cancelOrderAsync`", "pr": "72" }, { "note": "Renamed type `LogCancelArgs` to `LogCancelContractEventArgs` and `LogFillArgs` to `LogFillContractEventArgs`" } ], "timestamp": 1498082400, "isPublished": true }, { "version": "0.6.2", "changes": [ { "note": "Reduced bundle size" }, { "note": "Improved documentation" } ], "timestamp": 1497996000, "isPublished": true }, { "version": "0.6.1", "changes": [ { "note": "Improved documentation" } ], "timestamp": 1497823200, "isPublished": true }, { "version": "0.6.0", "changes": [ { "note": "Made `ZeroEx` class accept `Web3Provider` instance instead of `Web3` instance" }, { "note": "Added types for contract event arguments" } ], "timestamp": 1497823200, "isPublished": true }, { "version": "0.5.2", "changes": [ { "note": "Fixed the bug in `postpublish` script that caused that only unminified UMD bundle was uploaded to release page" } ], "timestamp": 1497477600, "isPublished": true }, { "version": "0.5.1", "changes": [ { "note": "Added `postpublish` script to publish to Github Releases with assets." } ], "timestamp": 1497477600, "isPublished": true } ]