diff options
Diffstat (limited to 'packages')
40 files changed, 187 insertions, 100 deletions
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json index 64054d288..d37988e26 100644 --- a/packages/0x.js/package.json +++ b/packages/0x.js/package.json @@ -85,7 +85,7 @@ "@types/web3-provider-engine": "^14.0.0", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "web3-provider-engine": "14.0.6" }, "publishConfig": { diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json index 842ac024a..d30bc291d 100644 --- a/packages/abi-gen-wrappers/package.json +++ b/packages/abi-gen-wrappers/package.json @@ -38,7 +38,7 @@ "@0x/web3-wrapper": "^3.2.4", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "shx": "^0.2.2" }, "dependencies": { diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index 7f968893c..229b16906 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -37,7 +37,7 @@ "ethereum-types": "^1.1.6", "glob": "^7.1.2", "handlebars": "^4.0.11", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "mkdirp": "^0.5.1", "sleep": "^5.1.1", "tmp": "^0.0.33", @@ -48,15 +48,15 @@ "@0x/tslint-config": "^2.0.2", "@types/glob": "5.0.35", "@types/handlebars": "^4.0.36", - "@types/mkdirp": "^0.5.1", + "@types/mkdirp": "^0.5.2", "@types/node": "*", "@types/sleep": "^0.0.7", "@types/tmp": "^0.0.33", - "@types/yargs": "^10.0.0", - "chai": "^4.1.2", + "@types/yargs": "^11.0.0", + "chai": "^4.0.1", "dirty-chai": "^2.0.1", "make-promises-safe": "^1.1.0", - "mocha": "^5.2.0", + "mocha": "^4.1.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", "tslint": "5.11.0", diff --git a/packages/assert/package.json b/packages/assert/package.json index 38481d6f0..aed39d736 100644 --- a/packages/assert/package.json +++ b/packages/assert/package.json @@ -47,7 +47,7 @@ "@0x/json-schemas": "^2.1.7", "@0x/typescript-typings": "^3.0.8", "@0x/utils": "^3.0.1", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "valid-url": "^1.0.9" }, "publishConfig": { diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json index 0f79ac06a..05d28e3ee 100644 --- a/packages/asset-buyer/package.json +++ b/packages/asset-buyer/package.json @@ -47,11 +47,11 @@ "@0x/utils": "^3.0.1", "@0x/web3-wrapper": "^3.2.4", "ethereum-types": "^1.1.6", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "devDependencies": { "@0x/tslint-config": "^2.0.2", - "@types/lodash": "^4.14.116", + "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", "@types/node": "*", "chai": "^4.0.1", diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json index db09b16a1..28c7aa2f4 100644 --- a/packages/base-contract/package.json +++ b/packages/base-contract/package.json @@ -45,7 +45,7 @@ "@0x/web3-wrapper": "^3.2.4", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/connect/package.json b/packages/connect/package.json index 15a4c12f1..4f00b2249 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -50,8 +50,8 @@ "@0x/types": "^1.5.2", "@0x/typescript-typings": "^3.0.8", "@0x/utils": "^3.0.1", - "lodash": "^4.17.5", - "query-string": "^5.0.1", + "lodash": "^4.17.11", + "query-string": "^6.0.0", "sinon": "^4.0.0", "uuid": "^3.3.2", "websocket": "^1.0.25" @@ -61,7 +61,7 @@ "@types/fetch-mock": "^6.0.3", "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", - "@types/query-string": "^5.0.1", + "@types/query-string": "^5.1.0", "@types/sinon": "^2.2.2", "@types/uuid": "^3.4.3", "@types/websocket": "^0.0.39", diff --git a/packages/contract-addresses/package.json b/packages/contract-addresses/package.json index 260322081..77a1ffc56 100644 --- a/packages/contract-addresses/package.json +++ b/packages/contract-addresses/package.json @@ -29,7 +29,7 @@ "typescript": "3.0.1" }, "dependencies": { - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index cc7dc1a3e..9394c3c0e 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -45,7 +45,7 @@ "@types/mocha": "^2.2.42", "@types/node": "*", "@types/sinon": "^2.2.2", - "@types/uuid": "^3.4.2", + "@types/uuid": "^3.4.3", "@types/web3-provider-engine": "^14.0.0", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", @@ -83,8 +83,8 @@ "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "js-sha3": "^0.7.0", - "lodash": "^4.17.5", - "uuid": "^3.1.0" + "lodash": "^4.17.11", + "uuid": "^3.3.2" }, "publishConfig": { "access": "public" diff --git a/packages/dev-tools-pages/package.json b/packages/dev-tools-pages/package.json index feab72856..b4e93d6c6 100644 --- a/packages/dev-tools-pages/package.json +++ b/packages/dev-tools-pages/package.json @@ -46,7 +46,7 @@ "@types/node": "*", "@types/react": "^16.4.2", "@types/react-dom": "^16.0.7", - "@types/react-loadable": "^5.4.1", + "@types/react-loadable": "^5.4.2", "@types/react-lottie": "^1.2.0", "@types/react-router-dom": "^4.0.4", "@types/react-tabs": "^2.3.0", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 4ab1d6439..f1f37f638 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -49,7 +49,7 @@ "@types/web3-provider-engine": "^14.0.0", "chai": "^4.0.1", "ethereum-types": "^1.1.6", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json index d882aba76..d4afd2187 100644 --- a/packages/fill-scenarios/package.json +++ b/packages/fill-scenarios/package.json @@ -38,7 +38,7 @@ "@0x/web3-wrapper": "^3.2.4", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/instant/package.json b/packages/instant/package.json index f7e15a3e0..147a47da8 100644 --- a/packages/instant/package.json +++ b/packages/instant/package.json @@ -55,15 +55,15 @@ "bowser": "^1.9.4", "copy-to-clipboard": "^3.0.8", "ethereum-types": "^1.1.6", - "lodash": "^4.17.5", - "polished": "^2.2.0", + "lodash": "^4.17.11", + "polished": "^1.9.2", "react": "^16.5.2", "react-dom": "^16.5.2", "react-redux": "^5.0.7", "redux": "^4.0.0", "redux-devtools-extension": "^2.13.5", "rollbar": "^2.5.0", - "styled-components": "^4.0.2", + "styled-components": "^4.1.1", "ts-optchain": "^0.1.1" }, "devDependencies": { @@ -72,10 +72,10 @@ "@types/enzyme": "^3.1.14", "@types/enzyme-adapter-react-16": "^1.0.3", "@types/jest": "^23.3.5", - "@types/lodash": "^4.14.116", + "@types/lodash": "4.14.104", "@types/node": "*", - "@types/react": "^16.4.16", - "@types/react-dom": "^16.0.8", + "@types/react": "16.4.16", + "@types/react-dom": "16.0.6", "@types/react-redux": "^6.0.9", "@types/redux": "^3.6.0", "@types/styled-components": "4.0.1", @@ -103,7 +103,7 @@ "typedoc": "0.13.0", "typescript": "3.0.1", "webpack": "^4.20.2", - "webpack-cli": "^3.1.1", + "webpack-cli": "3.1.2", "webpack-dev-server": "^3.1.9" }, "publishConfig": { diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json index 3b082f075..d08946fef 100644 --- a/packages/metacoin/package.json +++ b/packages/metacoin/package.json @@ -41,11 +41,11 @@ "@0x/typescript-typings": "^3.0.8", "@0x/utils": "^3.0.1", "@0x/web3-wrapper": "^3.2.4", - "@types/mocha": "^5.2.2", + "@types/mocha": "^2.2.42", "copyfiles": "^2.0.0", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "run-s": "^0.0.0" }, "devDependencies": { diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 3ca4e8d6b..4096aa913 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -38,7 +38,7 @@ "@0x/dev-utils": "^1.0.24", "@0x/tslint-config": "^2.0.2", "@0x/types": "^1.5.2", - "@types/yargs": "^10.0.0", + "@types/yargs": "^11.0.0", "make-promises-safe": "^1.1.0", "npm-run-all": "^4.1.2", "shx": "^0.2.2", @@ -61,7 +61,7 @@ "@ledgerhq/hw-app-eth": "^4.3.0", "ethereum-types": "^1.1.6", "ethers": "~4.0.4", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "optionalDependencies": { "@ledgerhq/hw-transport-node-hid": "^4.3.0" diff --git a/packages/monorepo-scripts/package.json b/packages/monorepo-scripts/package.json index 187a80c93..b1e1f3ca1 100644 --- a/packages/monorepo-scripts/package.json +++ b/packages/monorepo-scripts/package.json @@ -32,13 +32,13 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/monorepo-scripts/README.md", "devDependencies": { - "@types/glob": "^5.0.33", + "@types/glob": "5.0.35", "@types/mkdirp": "^0.5.2", "@types/node": "*", "@types/opn": "^5.1.0", "@types/rimraf": "^2.0.2", "@types/semver": "5.5.0", - "@types/yargs": "^10.0.0", + "@types/yargs": "^11.0.0", "depcheck": "^0.6.9", "make-promises-safe": "^1.1.0", "npm-run-all": "^4.1.2", @@ -55,7 +55,7 @@ "es6-promisify": "^5.0.0", "glob": "^7.1.2", "isomorphic-fetch": "2.2.1", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "mkdirp": "^0.5.1", "moment": "2.21.0", "opn": "^5.3.0", diff --git a/packages/monorepo-scripts/src/deps_versions.ts b/packages/monorepo-scripts/src/deps_versions.ts index 1053906b7..0d01a2e3c 100644 --- a/packages/monorepo-scripts/src/deps_versions.ts +++ b/packages/monorepo-scripts/src/deps_versions.ts @@ -3,7 +3,7 @@ import chalk from 'chalk'; import * as fs from 'fs'; import { sync as globSync } from 'glob'; -import * as _ from 'lodash'; +import * as path from 'path'; import { utils } from './utils/utils'; @@ -17,11 +17,34 @@ interface VersionsByDependency { [depName: string]: Versions; } -const PACKAGE_JSON_GLOB = '../*/package.json'; +interface ParsedDependencies { + ignored: VersionsByDependency; + included: VersionsByDependency; +} + +const PACKAGE_JSON_GLOB = '../../*/package.json'; + +const config = JSON.parse(fs.readFileSync(path.join(__dirname, '../../../package.json')).toString()).config; +const dependenciesWithIgnoredVersions: string[] = config.ignoreDependencyVersions.split(' '); +const packagesWithIgnoredVersions: string[] = config.ignoreDependencyVersionsForPackage.split(' '); + +if (require.main === module) { + const dependencies = parseDependencies(); + const ignoredMultiples = getDependenciesWithMultipleVersions(dependencies.ignored); + const multiples = getDependenciesWithMultipleVersions(dependencies.included); + printVersionsByDependency(multiples); + utils.log(`├── ${chalk.bold('IGNORED')}`); + printVersionsByDependency(ignoredMultiples); + if (Object.keys(multiples).length !== 0) { + utils.log( + `Some dependencies have multiple versions. Please fix by trying to find compatible versions. As a last resort, you can add space-separated exceptions to root package.json config.ignoreDependencyVersions`, + ); + process.exit(1); + } +} -// tslint:disable:no-unused-variable -function getDependencies(path: string): Dependencies { - const file = fs.readFileSync(path).toString(); +function getDependencies(_path: string): Dependencies { + const file = fs.readFileSync(_path).toString(); const parsed = JSON.parse(file); const dependencies = { ...parsed.dependencies, @@ -30,27 +53,49 @@ function getDependencies(path: string): Dependencies { return dependencies; } -const files = globSync(PACKAGE_JSON_GLOB); -const versionsByDependency: VersionsByDependency = {}; -files.map(path => { - const [_1, packageName, _2] = path.split('/'); - const dependencies = getDependencies(path); - _.map(dependencies, (version: string, depName: string) => { - if (_.isUndefined(versionsByDependency[depName])) { - versionsByDependency[depName] = {}; - } - versionsByDependency[depName][packageName] = version; +function parseDependencies(): ParsedDependencies { + const files = globSync(path.join(__dirname, PACKAGE_JSON_GLOB)); + const parsedDependencies: ParsedDependencies = { + ignored: {}, + included: {}, + }; + files.map(_path => { + const pathParts = _path.split('/'); + const packageName = pathParts[pathParts.length - 2]; + const packageCategory = packagesWithIgnoredVersions.includes(packageName) ? 'ignored' : 'included'; + const dependencies = getDependencies(_path); + Object.keys(dependencies).forEach((depName: string) => { + const category = dependenciesWithIgnoredVersions.includes(depName) ? 'ignored' : packageCategory; + if (parsedDependencies[category][depName] === undefined) { + parsedDependencies[category][depName] = {}; + } + const version = dependencies[depName]; + parsedDependencies[category][depName][packageName] = version; + }); }); -}); + return parsedDependencies; +} + +function getDependenciesWithMultipleVersions(versionsByDependency: VersionsByDependency): VersionsByDependency { + return Object.keys(versionsByDependency) + .filter((depName: string) => hasMultipleVersions(versionsByDependency[depName])) + .reduce<VersionsByDependency>((obj, depName: string) => { + obj[depName] = versionsByDependency[depName]; + return obj; + }, {}); +} -_.map(versionsByDependency, (versions: Versions, depName: string) => { - if (_.uniq(_.values(versions)).length === 1) { - delete versionsByDependency[depName]; - } else { +function printVersionsByDependency(versionsByDependency: VersionsByDependency): void { + Object.keys(versionsByDependency).forEach((depName: string) => { + const versions: Versions = versionsByDependency[depName]; utils.log(chalk.bold(depName)); - _.map(versions, (version: string, packageName: string) => { - utils.log(`├── ${packageName} -> ${version}`); + Object.keys(versions).forEach((packageName: string) => { + utils.log(`├── ${packageName} -> ${versions[packageName]}`); }); - } -}); -// tslint:disable:no-unused-variable + }); +} + +function hasMultipleVersions(versions: Versions): boolean { + const uniques = new Set(Object.values(versions)); + return uniques.size > 1; +} diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index 7a4d4aa84..4fa49a58f 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -68,7 +68,7 @@ "ethereumjs-abi": "0.6.5", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json index 895c64813..dad36b04f 100644 --- a/packages/order-watcher/package.json +++ b/packages/order-watcher/package.json @@ -80,7 +80,7 @@ "ethereum-types": "^1.1.6", "ethereumjs-blockstream": "6.0.0", "ethers": "~4.0.4", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "websocket": "^1.0.25" }, "publishConfig": { diff --git a/packages/pipeline/package.json b/packages/pipeline/package.json index 908734687..a8b89c7b5 100644 --- a/packages/pipeline/package.json +++ b/packages/pipeline/package.json @@ -30,11 +30,11 @@ "@0x/tslint-config": "^2.0.2", "@types/axios": "^0.14.0", "@types/ramda": "^0.25.38", - "chai": "^4.1.2", - "chai-as-promised": "^7.1.1", + "chai": "^4.0.1", + "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", "dirty-chai": "^2.0.1", - "mocha": "^5.2.0", + "mocha": "^4.1.0", "tslint": "5.11.0", "typescript": "3.0.1" }, @@ -42,7 +42,7 @@ "@0x/connect": "^3.0.13", "@0x/contract-addresses": "^2.2.0", "@0x/contract-artifacts": "^1.3.0", - "@0x/contract-wrappers": "^3.0.0", + "@0x/contract-wrappers": "^5.0.1", "@0x/dev-utils": "^1.0.24", "@0x/order-utils": "^3.1.2", "@0x/subproviders": "^2.1.11", diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index f8f2b6276..dc592f2a0 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -30,7 +30,7 @@ "@types/styled-components": "4.0.0", "make-promises-safe": "^1.1.0", "shx": "^0.2.2", - "tslint": "^5.9.1", + "tslint": "5.11.0", "typescript": "3.0.1" }, "dependencies": { @@ -45,7 +45,7 @@ "@types/react-scroll": "1.5.3", "basscss": "^8.0.3", "compare-versions": "^3.0.1", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "material-ui": "^0.20.0", "react": "^16.5.2", "react-dom": "^16.5.2", @@ -53,7 +53,7 @@ "react-scroll": "0xproject/react-scroll#pr-330-and-replace-state", "react-tooltip": "^3.2.7", "semver": "5.5.0", - "styled-components": "^4.0.1" + "styled-components": "^4.1.1" }, "publishConfig": { "access": "public" diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index 4be4742b0..b527e51a3 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -29,7 +29,7 @@ "@0x/tslint-config": "^2.0.2", "make-promises-safe": "^1.1.0", "shx": "^0.2.2", - "tslint": "^5.9.1", + "tslint": "5.11.0", "typescript": "3.0.1" }, "dependencies": { @@ -37,7 +37,7 @@ "@material-ui/core": "^3.0.1", "@types/is-mobile": "0.3.0", "@types/lodash": "4.14.104", - "@types/material-ui": "0.18.0", + "@types/material-ui": "^0.20.0", "@types/node": "*", "@types/react": "*", "@types/react-dom": "*", @@ -48,15 +48,15 @@ "basscss": "^8.0.3", "change-case": "^3.0.2", "is-mobile": "^0.2.2", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "material-ui": "^0.20.0", "react": "^16.5.2", "react-dom": "^16.5.2", - "react-highlight": "0xproject/react-highlight#fix/react-version", + "react-highlight": "0xproject/react-highlight", "react-markdown": "^3.2.2", - "react-router-dom": "^4.1.1", + "react-router-dom": "^4.3.1", "react-scroll": "0xproject/react-scroll#pr-330-and-replace-state", - "styled-components": "^4.0.1", + "styled-components": "^4.1.1", "valid-url": "^1.0.9" }, "publishConfig": { diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json index 0b53cffd5..eab0e5a2b 100644 --- a/packages/sol-compiler/package.json +++ b/packages/sol-compiler/package.json @@ -48,7 +48,7 @@ "@types/mkdirp": "^0.5.2", "@types/pluralize": "^0.0.29", "@types/require-from-string": "^1.2.0", - "@types/semver": "^5.5.0", + "@types/semver": "5.5.0", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", @@ -79,7 +79,7 @@ "chokidar": "^2.0.4", "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "mkdirp": "^0.5.1", "pluralize": "^7.0.0", "require-from-string": "^2.0.1", diff --git a/packages/sol-coverage/package.json b/packages/sol-coverage/package.json index 805e2e670..259c20256 100644 --- a/packages/sol-coverage/package.json +++ b/packages/sol-coverage/package.json @@ -33,7 +33,7 @@ "@0x/subproviders": "^2.1.11", "@0x/typescript-typings": "^3.0.8", "ethereum-types": "^1.1.6", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "devDependencies": { "@0x/tslint-config": "^2.0.2", diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json index 179f45e81..8dfe236e0 100644 --- a/packages/sol-doc/package.json +++ b/packages/sol-doc/package.json @@ -30,17 +30,17 @@ "@0x/utils": "^3.0.1", "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", - "lodash": "^4.17.10", - "yargs": "^12.0.2" + "lodash": "^4.17.11", + "yargs": "^10.0.3" }, "devDependencies": { "@0x/tslint-config": "^2.0.2", - "chai": "^4.1.2", + "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", "dirty-chai": "^2.0.1", "make-promises-safe": "^1.1.0", - "mocha": "^5.2.0", + "mocha": "^4.1.0", "shx": "^0.2.2", "source-map-support": "^0.5.0", "tslint": "5.11.0" diff --git a/packages/sol-profiler/package.json b/packages/sol-profiler/package.json index 4fe2928c7..57821795d 100644 --- a/packages/sol-profiler/package.json +++ b/packages/sol-profiler/package.json @@ -33,7 +33,7 @@ "@0x/subproviders": "^2.1.11", "@0x/typescript-typings": "^3.0.8", "ethereum-types": "^1.1.6", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "devDependencies": { "@0x/tslint-config": "^2.0.2", diff --git a/packages/sol-resolver/package.json b/packages/sol-resolver/package.json index 0518cde95..a59ef9dca 100644 --- a/packages/sol-resolver/package.json +++ b/packages/sol-resolver/package.json @@ -32,7 +32,7 @@ "dependencies": { "@0x/types": "^1.5.2", "@0x/typescript-typings": "^3.0.8", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/sol-trace/package.json b/packages/sol-trace/package.json index 25e81a82a..ba302daf7 100644 --- a/packages/sol-trace/package.json +++ b/packages/sol-trace/package.json @@ -35,7 +35,7 @@ "chalk": "^2.3.0", "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "loglevel": "^1.6.1" }, "devDependencies": { diff --git a/packages/sol-tracing-utils/package.json b/packages/sol-tracing-utils/package.json index 929c73b84..0cd0858d4 100644 --- a/packages/sol-tracing-utils/package.json +++ b/packages/sol-tracing-utils/package.json @@ -52,10 +52,11 @@ "@types/solidity-parser-antlr": "^0.2.0", "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", + "ethers": "~4.0.4", "glob": "^7.1.2", "chalk": "^2.3.0", "istanbul": "^0.4.5", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "loglevel": "^1.6.1", "mkdirp": "^0.5.1", "rimraf": "^2.6.2", @@ -66,7 +67,7 @@ "@0x/tslint-config": "^2.0.2", "@types/istanbul": "^0.4.30", "@types/loglevel": "^1.5.3", - "@types/mkdirp": "^0.5.1", + "@types/mkdirp": "^0.5.2", "@types/mocha": "^2.2.42", "@types/node": "*", "@types/rimraf": "^2.0.2", diff --git a/packages/sol-tracing-utils/src/trace_collection_subprovider.ts b/packages/sol-tracing-utils/src/trace_collection_subprovider.ts index 6f833b0fc..7fde1f9b8 100644 --- a/packages/sol-tracing-utils/src/trace_collection_subprovider.ts +++ b/packages/sol-tracing-utils/src/trace_collection_subprovider.ts @@ -3,6 +3,7 @@ import { Callback, ErrorCallback, NextCallback, Subprovider } from '@0x/subprovi import { logUtils } from '@0x/utils'; import { CallDataRPC, marshaller, Web3Wrapper } from '@0x/web3-wrapper'; import { JSONRPCRequestPayload, Provider, TxData } from 'ethereum-types'; +import { utils } from 'ethers'; import * as _ from 'lodash'; import { Lock } from 'semaphore-async-await'; @@ -96,6 +97,18 @@ export abstract class TraceCollectionSubprovider extends Subprovider { } return; + case 'eth_sendRawTransaction': + if (!this._config.shouldCollectTransactionTraces) { + next(); + } else { + const txData = utils.parseTransaction(payload.params[0]); + if (txData.to === null) { + txData.to = constants.NEW_CONTRACT; + } + next(logAsyncErrors(this._onTransactionSentAsync.bind(this, txData))); + } + return; + case 'eth_call': if (!this._config.shouldCollectCallTraces) { next(); diff --git a/packages/sra-spec/package.json b/packages/sra-spec/package.json index 9c4c0a24f..1afe3d945 100644 --- a/packages/sra-spec/package.json +++ b/packages/sra-spec/package.json @@ -41,14 +41,14 @@ "devDependencies": { "@0x/tslint-config": "^2.0.2", "@types/mocha": "^2.2.42", - "@types/node": "^10.5.3", + "@types/node": "*", "chai": "^4.0.1", "chokidar-cli": "^1.2.0", "copyfiles": "^2.0.0", "dirty-chai": "^2.0.1", "discharge": "^0.7.1", - "mocha": "^4.0.1", - "npm-run-all": "^4.1.3", + "mocha": "^4.1.0", + "npm-run-all": "^4.1.2", "nyc": "^11.0.1", "redoc-cli": "^0.6.1", "shx": "^0.2.2", diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index b54cc11db..4a7e36075 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -49,7 +49,7 @@ "ganache-core": "^2.3.3", "hdkey": "^0.7.1", "json-rpc-error": "2.0.0", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "semaphore-async-await": "^1.5.1", "web3-provider-engine": "14.0.6" }, diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json index da7477be4..609f00b03 100644 --- a/packages/testnet-faucets/package.json +++ b/packages/testnet-faucets/package.json @@ -28,8 +28,8 @@ "ethereumjs-tx": "^1.3.5", "ethereumjs-util": "^5.1.1", "express": "^4.15.2", - "lodash": "^4.17.5", - "rollbar": "^0.6.5" + "lodash": "^4.17.11", + "rollbar": "^2.5.0" }, "devDependencies": { "@0x/tslint-config": "^2.0.2", diff --git a/packages/tslint-config/package.json b/packages/tslint-config/package.json index f90321edb..6f738c8d8 100644 --- a/packages/tslint-config/package.json +++ b/packages/tslint-config/package.json @@ -40,7 +40,7 @@ "typescript": "3.0.1" }, "dependencies": { - "lodash": "^4.17.5", + "lodash": "^4.17.11", "tslint": "5.11.0", "tslint-eslint-rules": "5.4.0", "tslint-react": "^3.2.0", diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index 0fb199e58..df415040b 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -1,5 +1,14 @@ [ { + "version": "4.0.1", + "changes": [ + { + "note": "ABI Decode NULL as False", + "pr": 1582 + } + ] + }, + { "version": "4.0.0", "changes": [ { diff --git a/packages/utils/package.json b/packages/utils/package.json index b6be39210..e6364c77a 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -49,14 +49,14 @@ "@types/node": "*", "abortcontroller-polyfill": "^1.1.9", "bignumber.js": "~8.0.2", - "chalk": "^2.4.1", + "chalk": "^2.3.0", "detect-node": "2.0.3", "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", - "isomorphic-fetch": "^2.2.1", + "isomorphic-fetch": "2.2.1", "js-sha3": "^0.7.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/utils/src/abi_encoder/evm_data_types/bool.ts b/packages/utils/src/abi_encoder/evm_data_types/bool.ts index 23298bc88..ffccd6e53 100644 --- a/packages/utils/src/abi_encoder/evm_data_types/bool.ts +++ b/packages/utils/src/abi_encoder/evm_data_types/bool.ts @@ -36,7 +36,8 @@ export class BoolDataType extends AbstractBlobDataType { public decodeValue(calldata: RawCalldata): boolean { const valueBuf = calldata.popWord(); const valueHex = ethUtil.bufferToHex(valueBuf); - const valueNumber = new BigNumber(valueHex, constants.HEX_BASE); + // Hack @hysz: there are some cases where `false` is encoded as 0x instead of 0x0. + const valueNumber = valueHex === '0x' ? new BigNumber(0) : new BigNumber(valueHex, constants.HEX_BASE); if (!(valueNumber.isEqualTo(0) || valueNumber.isEqualTo(1))) { throw new Error(`Failed to decode boolean. Expected 0x0 or 0x1, got ${valueHex}`); } diff --git a/packages/utils/test/abi_encoder/evm_data_types_test.ts b/packages/utils/test/abi_encoder/evm_data_types_test.ts index 4814ce28b..c146890e0 100644 --- a/packages/utils/test/abi_encoder/evm_data_types_test.ts +++ b/packages/utils/test/abi_encoder/evm_data_types_test.ts @@ -489,6 +489,24 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => { const argsEncodedFromSignature = dataTypeFromSignature.encode(args); expect(argsEncodedFromSignature).to.be.deep.equal(expectedEncodedArgs); }); + it('Null should decode as False', async () => { + // Hack @hysz: there are some cases where `false` is encoded as 0x instead of 0x0. + // Create DataType object + const testDataItem = { name: 'Boolean', type: 'bool' }; + const dataType = new AbiEncoder.Bool(testDataItem); + // Construct args to be encoded + const args = false; + // Encode Args and validate result + const encodedArgs = '0x'; + const expectedEncodedArgs = '0x0000000000000000000000000000000000000000000000000000000000000000'; + // Decode Encoded Args and validate result + const decodedArgs = dataType.decode(encodedArgs); + expect(decodedArgs).to.be.deep.equal(args); + // Validate signature + const dataTypeFromSignature = AbiEncoder.create(dataType.getSignature(true)); + const argsEncodedFromSignature = dataTypeFromSignature.encode(args); + expect(argsEncodedFromSignature).to.be.deep.equal(expectedEncodedArgs); + }); }); describe('Integer', () => { diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index f28cc36ca..c31226499 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -61,7 +61,7 @@ "ethereum-types": "^1.1.6", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/packages/website/package.json b/packages/website/package.json index ce7ed395f..7ce752622 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -97,7 +97,7 @@ "@types/rc-slider": "^8.6.0", "@types/react": "^16.7.7", "@types/react-copy-to-clipboard": "^4.2.0", - "@types/react-dom": "^16.0.7", + "@types/react-dom": "^16.0.6", "@types/react-helmet": "^5.0.6", "@types/react-redux": "^4.4.37", "@types/react-scroll": "1.5.3", |